- Convolution 종류
- Optimizer
- overfeat
- Weight initialization
- image classification
- deep learning
- SPP-Net
- object detection
- LeNet 구현
- 딥러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
I'm Lim
[논문 요약] AlexNet 본문
1. Paper
Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Communications of the ACM 60.6 (2017): 84-90.
2. Introduction
AlexNet은 ILSVRC-2012 contest에서 기존의 머신러닝 기반 모델들을 모두 제치고, 1등을 차지한 최초의 딥러닝 모델입니다.
또한, 전년 우승작의 Top-5 error rate를 10%이상 감소시켰습니다.
3. ImageNet Dataset
1 ) Resize
AlexNet은 ImageNet 데이터셋을 이용하여 모델 학습을 진행하였습니다. 이 데이터셋은 이미지 크기가 다양한데 직사각형의 경우 Height와 Width 중 길이가 짧은 것을 256으로 맞춘 후, 256 x 256의 이미지 크기로 Center crop을 진행하였다고 합니다.
2 ) Scaling
본 논문에서는 학습 데이터셋 (train dataset) 이미지들의 평균 값만 빼는 정규화를 진행하였다고 합니다.
4. Architecture
kernel_size | stride | padding | in_channel | out_channel | input_shape | |
conv (LRN) | 11 | 4 | 0 | 3 | 96 | (3, 227, 227) |
Maxpool | 3 | 2 | (96, 55, 55) | |||
conv (LRN) | 5 | 1 | 2 | 96 | 256 | (96, 27, 27) |
Maxpool | 3 | 2 | (256, 27, 27) | |||
conv | 3 | 1 | 1 | 256 | 384 | (256, 13, 13) |
conv | 3 | 1 | 1 | 384 | 384 | (256, 13, 13) |
conv | 3 | 1 | 1 | 384 | 256 | (384, 13, 13) |
Maxpool | 3 | 2 | (256, 6, 6) | |||
linear (Dropout) | 256 * 6 * 6 | 4096 | (256 * 6 * 6, ) | |||
linear (Dropout) | 4096 | 4096 | (4096, ) | |||
linear | 4096 | 1000 | (4096, ) |
※ AlexNet의 입력으로 들어가는 이미지의 크기는 227 X 227입니다.
1 ) ReLU activation function
AlexNet 모델 학습을 위해 활성화함수를 ReLU로 사용하였고, 이는 tanh를 사용했을 때보다 훨씬 더 빠르게 학습했다고 합니다.
2 ) Overlapping Pooling
AlexNet은 기존의 관습과는 달리 Pooling 연산을 위해 kernel_size = 3, stride = 2를 적용함으로써 overlapping pooling을 시켰다고 합니다.
3 ) Local Response Normalization
격자를 보게되면 회색이 보이는 듯한 착시를 느낄 수 있는데 이것은 검은색이 너무 강하게 반응하기 때문입니다. 즉, 특정 픽셀 값이 다른 뉴런에 영향을 미친다는 의미로 해석할 수 있습니다.
이를 근거로 Local Response Normalization은 feature map의 특정 위치의 값이 너무 크지 않도록 정규화하는 방식입니다.
식을 살펴보면 $a^j_{x, y}$는 j번째 feature map에서 (x, y) 인덱스의 값입니다. 그리고, n은 normalization에 사용할 feature map의 개수입니다. 따라서, Local Response Normalization은 인접한 feature map들의 (x, y) 값을 더한 값을 원래의 값에서 나눠주는 방식이라고 볼 수 있습니다.
※ 현재는 데이터 정규화를 위해서 Local Response Normalization보다는 Batch Normalization를 사용합니다.
5. Reducing Overfitting
1 ) Data Augmentation
256 x 256 으로 down sample 된 이미지에서 227 x 227 이미지를 랜덤하게 crop 한다고 합니다. Horizontal reflection도 랜덤하게 진행한다. 이는 이미지의 개수를 29 * 29 * 2개만큼 늘리는 효과가 있다고 볼 수 있습니다 (물론 데이터 간의 상관관계는 매우 높습니다).
2 ) RGB value
쉽게 이야기하자면, Training 데이터 셋에서 중요한 성질들을 뽑아서 다시 RGB값에 더한다는 의미입니다. 이를 통해, Top-1 error를 1% 줄였다고 합니다.
3 ) Dropout
논문에서는 여섯번째, 일곱번째 레이어에 Dropout을 0.5로 주었다고 합니다. Dropout을 적용하지 않으면 Overfitting이 발생했다고 합니다.
6. Details of Learning
1 ) Optimizer
논문에서는 배치사이즈를 128로 두었습니다. Optimizer로 SGD를 사용하였고, momentum을 0.9, weight decay를 0.0005로 사용하였다고 합니다.
2 ) Weight Initialization
AlexNet은 가중치를 $W \sim N(0, 0.01^2)$으로 초기화하였다고 합니다. Bias 초기화는 두 번째, 네 번째, 다섯 번째 Conv 레이어와 모든 fully-connected 레이어에는 상수 1을 주었다고 하며, 나머지 레이어는 0으로 주었다고 합니다.
※ ReLU에는 Kaming He Initialization을 사용하는 것이 실험적으로 좋다고 합니다.
3 ) Learning rate Scheduler
Learning rate는 초기 값으로 0.01로 주고, Early Stopping 기법을 적용해 validation loss가 감소하지 않으면 10으로 나눠주었다고 합니다 (ReduceLROnPlateau).
7. Result
AlexNet 모델의 성능이 기존의 머신러닝 기법을 적용한 모델들보다 압도적으로 좋음을 확인할 수 있습니다.
Discussion
AlexNet은 이미지 분야에서 최초로 딥러닝 모델이 기존의 머신러닝 기반 모델링보다 훨씬 좋은 성능을 낼 수 있음을 보여주었다는 것에 의의가 있습니다.
'Classification > Paper' 카테고리의 다른 글
[논문 요약] ZFNet (0) | 2022.11.06 |
---|---|
[논문 요약] LeNet (0) | 2022.10.30 |