Paper Review/Classification

[ 논문 리뷰 ] AlexNet

jennyf 2022. 7. 31. 18:42

AlexNet의 구조에 적용된 특징

 

1. 활성화 함수 ReLU

 

논문에서 활성화 함수로 ReLU를 적용했습니다.

 

저자는 tanh와 ReLU의 학습 속도를 비교했습니다.

그 결과 4층의 CNN으로 CIFAR-10을 학습시켰을 때, ReLU가 tanh보다 6배 빠르다고 합니다.

 

 

2. GPU parallelization

network를 2개의 GPU로 나누어서 학습시켰습니다. 

예를들어, 90 개의 kernel이 있다고 하면 45개를 GPU 1에 할당하고 남은 45개를 GPU 2에 할당하여 학습합니다.

 

추가적인 기법으로 GPU 두 개로 나누어 학습시키다가 -> 하나의 layer에서만 GPU를 통합시키는 것입니다.

논문에서는 3번째 Conv layer에서만 GPU를 통합시킨다고 말합니다. 

이를 통해 계산량의 허용가능한 부분까지 통신량을 정확하게 조정할 수 있다고 나와있습니다. 

 

아래 그림은 GPU 1, GPU 2 에서 학습된 kernel map 입니다.

GPU 1 에서는 색상과 관련 없는 정보를 학습하고, GPU 2 에서는 색상과 관련된 정보를 학습하는 것을 확인할 수 있습니다.

 

 

 

3. Overlapping Pooling

 

Overlapping Pooling을 통하여 overfit을 방지하고 error를 낮추었다고 합니다.

 

Pooling layer는 동일한 kernel map에 있는 인접한 neuron의 output을 요약해줍니다.

전통적으로 pooling layer는 overlay하지 않지만, AlexNet은 overlab을 해주었습니다. (kernel_size = 3, stride = 2)

 

 

Reducing Overfitting

 

AlexNet에는 6천만개의 parameters가 존재합니다. 

논문에서는 overfitting을 피하기 위해 적용한 두 가지 기법을 소개합니다. 

 

1. Data Augmentation

Data Augmentation 이란 현재 갖고 있는 데이터를 좀 더 다양하게 만들어 CNN 모델을 학습시키기 위해 만들어진 개념입니다.

이러한 기법은 적은 노력으로 다양한 데이터를 형성하게 하여 overfitting을 피하게 만들어 줍니다.

또한 Data augmentation의 연산량은 매우 적고 CPU에서 이루어지기 때문에 계산적으로 부담이 없습니다. 

 

논문에서는 2가지 data augmentation을 적용했습니다.

 

1) Generating image translation and Horizontal reflections

 

256x256 이미지에서 224x224 크기로 crop 합니다.

총 5개의 위치(중앙, 좌측 상단, 좌측 하단, 우측 상단, 우측 하단)에서 crop 합니다.

생성된 5개의 이미지를 horizontal reflection 합니다. 따라서 하나의 이미지에서 10개의 이미지가 생성됩니다.

 

2) Altering the intensities of the RGB channels in training images

iamge의 RGB pixel 값에 변화를 주었습니다. 

ImageNet의 training set에 RGB pixel 값에 대한 PCA를 적용했습니다.

 

2. Dropout

매 입력마다 dropout을 적용시키면 가중치는 공유되지만, 신경망은 서로 다른 구조를 띄게 됩니다. 

dropout의 확률을 0.5로 설정했습니다.

 

AlexNet은 두 개의 FC layer에만 dropout을 적용하였습니다.

이를 통해 overfitting을 피할 수 있었고, 수렴하는데 필요한 반복수는 두 배 증가되었다고 나와있습니다.