0. Reference
https://papers.nips.cc/paper_files/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html
ImageNet Classification with Deep Convolutional Neural Networks
Requests for name changes in the electronic proceedings will be accepted with no questions asked. However name changes may cause bibliographic tracking issues. Authors are asked to consider this carefully and discuss it with their co-authors prior to reque
papers.nips.cc
1. Introduction
- 해당 논문에서 Overfitting을 줄이는 방법과 Network의 성능을 향상시키고, 훈련 시간을 단축시키는 방법에 대해서 담고있다.
- 이에 대해서 함께 알아가보자.
2. The Dataset
- 해상도를 256 x 256으로 고정한다.
- 직사각형 이미지의 경우, 짧은 쪽을 256길이로 먼저 resize한다.
- 각 픽셀에 평균값을 빼서 정규화한다.
3. The Architecture
3.1. ReLU Nonlinearity
- AlexNet이 나오기 전엔, 다음과 같은 saturating nonlinear function을 사용하였다.
i) tanh(x)
ii) sigmoid(x)
- 이러한 saturating function들은 입력이 일정 범위를 넘어서면 출력 변화가 급격히 감소한다.
- Backpropagation과정에서 gradient vanishing 문제가 발생한다.
- 이러한 문제를 해결하기 위해 ReLU라는 non-saturating함수를 제안하였다.
ReLU: f(x) = max(0,x)
- ReLU의 특징은 다음과 같다.
i) non-saturating : 입력이 양수일 경우 기울기가 항상 1이므로, gradient vanish를 피할수있다.
ii) 계산이 매우 간단하다. --> tanh나 sigmoid를 사용한 네트워크보다 학습속도가 빠르다.
iii) sparsity : 음수 입력은 출력이 0이 되어, 네트워크가 sparse해진다.
3.2. Training on Multiple GPUs
- GPU는 현재 이시점보다 많이 발전이 되어 있기 때문에, 해당 섹션은 생략합니다.
3.3. Local Response Normalization
- ReLU는 Normalization을 하지 않아도 saturating을 방지할 수 있다고 한다.
- 하지만, 본 논문에서 LRN(Local Response Normalization)을 적용하면 더 성능이 좋다고 한다.
(후속 논문에선 효과가 없다고한다.)
3.4.Overlapping Pooling
- 기존의 신경망은 Non-overlapping Pooling을 진행한다.
- 본 연구에서는 Overlapping Pooling을 사용한다.
- Overlapping Pooling는 CNN의 성능을 향상시키고 overfitting을 방지한다고 한다.
(후속 논문에선 오히려 overfitting을 야기시킨다고 한다.)
3.5. Overall Architecture
- AlexNet은 총 8개의 Layer로 구성되어 있다.
- 처음 5개는 ConV Layer이고,
- 나머지 3개는 fully-connected layer이다.
- 모든 Layer의 Activation function이 ReLU로 이루어져있다.
- 최종 output layer는 softmax function을 통해 probability vector로 변환된다.
1. Input : 224 X 224 X 3 크기의 RGB 이미지
2. 첫 번째 컨볼루션 층
- 필터 수 : 96, 필터 크기 : 11 X 11 X 3, 스트라이드 : 4
- LPN 적용
3. 두 번째 컨볼루션 층
- 입력 : 첫 번째 층의 출력
- 필터 수 : 256, 필터 크기 : 5 X 5 X 48
- LPN 적용
4. 세 번째 컨볼루션 층
- 입력 : 두 번째 층의 출력
- 필터 수 : 384, 필터 크기 : 3 X 3 X 256
5. 네 번째 컨볼루션 층
필터 수: 384
필터 크기: 3×3×192
6. 다섯 번째 컨볼루션 층
필터 수: 256
필터 크기: 3×3×192
7~9. 완전 연결 층
- 각 층의 뉴런 수 : 4096개
10. 출력층 : 1000 - 클래스 소프트맥스 (1000개의 카테고리에 대한 확률 분포)
4. Reducing Overfitting
4.1. Data Augmentation
- Image data에서 overfitting을 줄이는 방법중 하나는 data augmentation이다.
- 이는 label을 변경하지 않는 선에서 데이터셋을 인위적으로 확장하는 기법을 의미한다.
- 본 논문에서 사용된 Data Augmentation은 두 가지이다.
i) Image translations and Horizontal Reflections
- 256 x 256 크기의 원본 이미지에서 임의의 224x224 패치를 추출
- 그 패치를 Horizontal Reflection을 적용하여, 데이터셋을 두배로 증강시킨다.
- 이렇게 생성된 패치들은 상호 의존성이 높은 데이터 일수 있다. 하지만, 오버피팅을 방지시켜준다.
- 만일 이러한 데이터 증강이 없다면, 과적합으로 인해 훨씬 더 작은 신경망을 사용해야 할 것이다.
ii) Altering RGB Channel Intensities
- Traning set의 모든 RGB 픽셀 값에 대해 PCA를 수행한다.
- 각 Principal Components에 임의의 가중치를 곱해 추가한다.
- 이를 통해, 빛반사나 색상변화에 강인하도록 학습을 유도하게 된다.
4.2. Dropout
- 본 논문에서 Dropout ratio는 0.5로 설정하였다.
- Dropout에 대한 설명은 해당 포스팅을 보면 도움이 될 것이다.
https://ceulkun04.tistory.com/122
'Paper Review(논문 리뷰) > Computer Vision' 카테고리의 다른 글
[논문 리뷰] [CV] Going deeper with convolutions (0) | 2025.03.18 |
---|---|
[논문 리뷰] [CV] VERY DEEP CONVOLUTIONAL NETWORKSFOR LARGE-SCALE IMAGE RECOGNITION (0) | 2025.03.17 |
[논문 리뷰] [CV] Network In Network (0) | 2025.03.17 |
[논문 리뷰] [CV] Visualizing and Understanding Convolutional Networks (1) | 2025.03.17 |
[논문 리뷰] [CV] Gradient-Based Learning Applied to Document Recognition, pytorch 구현 (0) | 2025.03.16 |