[논문 리뷰] ImageNet Classification with Deep Convolutional Neural Networks(AlexNet)
AlexNet은 2012년 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)에서 우승한 모델로, 딥러닝과 컴퓨터 비전 분야에 큰 변화를 가져온 혁신적인 모델입니다. 이전 대회의 우승 알고리즘이 얕은 구조를 가졌던 것과 달리, AlexNet은 CNN 기반의 딥러닝 알고리즘을 사용하여 뛰어난 성능을 보였습니다. AlexNet은 26.2%의 top-5 error를 기록한 2위 모델에 비해 15.3%의 top-5 error로 우승을 차지했습니다.
Datasets
본 논문에서는 ILSVRC-2010에서 제공한 데이터셋을 실험에 사용했습니다. 직사각형의 이미지가 주어졌을 때, 높이(짧은 변)를 기준으로 256으로 rescale 한 뒤, 중심을 기준으로 crop하여 입력 차원을 256 x 256으로 맞추어 전처리하였습니다.
ReLU Nonlinearity
기존의 활성화 함수로는 tanh나 sigmoid가 사용되었습니다. 그러나, 이 함수들은 미분 값이 0에 수렴하여 gradient descent 알고리즘을 통한 학습 속도가 매우 느렸습니다. 이를 해결하기 위해 ReLU(Rectified Linear Unit) 함수를 사용하였으며, 이는 f(x) = max(0, x)와 같은 형태로, 학습 속도를 크게 향상시켰습니다.
Traing on Multiple GPUs
AlexNet은 네트워크를 두 개의 GPU에 분산하여 학습을 진행했습니다. 각 GPU에 절반씩의 필터를 할당하였고, 특정 레이어에서는 모든 필터를 GPU에 관계없이 받을 수 있도록 하였습니다. GPU1은 색상과 관련없는 정보를, GPU2는 색상과 관련된 정보를 학습하였습니다.
Local Response Normalization (LRN)
ReLU 함수는 미분 값이 0에 수렴하는 문제를 해결하지만, 여전히 CNN에서는 인접한 뉴런 사이의 상호작용이 큽니다. 이를 해결하기 위해 LRN을 사용하여 정규화를 진행하였고, 이는 모델의 일반화 성능을 향상시켰습니다.
Overlapping Pooling
전통적인 CNN의 pooling 레이어는 pooling window의 크기 z와 stride의 크기 s를 같게 하여 겹치지 않게 합니다. 그러나, 본 논문에서는 pooling window의 크기를 stride보다 크게 하여 overlapping pooling을 진행(z=3, s=2)하였습니다.
Architecture
AlexNet은 다섯 개의 convolution 레이어와 세 개의 fully-connected 레이어로 구성되어 있습니다.
- 마지막 fully-connected 레이어의 출력은 1000-way softmax로 전달됩니다.
- 두 번째, 네 번째, 다섯 번째 convolution 레이어는 같은 GPU에 위치한 이전 레이어의 필터 맵들과만 연결됩니다.
- 세 번째 convolution 레이어는 두 번째 convolution 레이어의 모든 필터 맵들과 연결됩니다.
- fully-connected 레이어의 뉴런들은 이전 레이어의 모든 뉴런들과 연결됩니다.
- LRN 레이어는 첫 번째와 두 번째 convolution 레이어 뒤에 위치합니다.
- Overlapping MaxPooling 레이어는 LRN 레이어와 다섯 번째 convolution 레이어 뒤에 위치합니다.
- ReLU 함수는 모든 convolution 레이어 및 fully-connected 레이어의 출력에 적용됩니다.
Reducing Overfitting
본 논문에서는 두 가지 방법으로 오버피팅을 방지하였습니다.
- Data Augmentation:
- 좌우 반전: 256 x 256 이미지와 그 이미지를 좌우 반전시킨 이미지에서 무작위로 224 x 224 이미지를 추출하여 데이터셋 크기를 2048배 증가시켰습니다.
- RGB 채널 강도 변경: 주성분 분석(PCA)을 통해 RGB 픽셀 값 집합의 주성분을 분석하고, 이를 이용하여 데이터에 노이즈를 추가하였습니다.
- Dropout:
- 학습 과정에서 뉴런의 일부를 무작위로 비활성화하여 overfitting을 방지하는 기법입니다. Dropout을 사용하면 가중치는 공유되지만 서로 다른 구조를 띄게 되어 메모리와 파워의 낭비를 줄일 수 있습니다.
Details of learning
학습 시 momentum: 0.9, weight decay: 0.0005, batch size: 128인 stochastic gradient descent를 사용하였습니다. 가중치 W의 업데이트 규칙은 다음과 같습니다:
- 반복 횟수 i, momentum 변수 v, 학습률 e, 목적 함수를 w에 대해 편미분한 함수의 Di에 대한 평균값 <∂L/∂w|wi>Di.
- 각 레이어의 가중치는 평균이 0, 표준편차가 0.001인 정규분포에서 초기화하였습니다.
- Conv2, 4, 5 및 fully-connected 레이어들의 bias는 1로 초기화하였습니다.
Results
ILSVRC-2010 데이터셋에서 AlexNet의 top-1과 top-5 error는 각각 37.5%, 17.0%였습니다.
ILSVRC-2012 데이터셋에서는 각각 40.7%, 18.2%를 기록하였습니다.
Conclusion
AlexNet은 딥러닝과 컴퓨터 비전 분야에 큰 변화를 가져온 모델입니다. 2012년 ImageNet Challenge에서의 우승은 CNN이 이미지 인식과 분류 작업에서 강력한 도구임을 세계에 알렸습니다. AlexNet은 더 깊은 아키텍처, ReLU 활성화 함수의 사용, 오버피팅 방지를 위한 드롭아웃 기법, 그리고 2개의 GPU를 활용한 학습과 같은 혁신적인 접근 방식으로 도입하여 이전의 모델을 앞섰습니다. AlexNet은 대규모 이미지 데이터셋에서 높은 정확도를 달성함으로써, 이미지 분석과 관련된 응용 분야에 큰 가능성을 열었고, 이후의 연구자들에게 영감을 주어 더 발전된 모델들이 등장할 수 있게 하였다고 생각합니다.