더보기
Paper Link: https://arxiv.org/abs/1409.1556
1. Introduction
- ImageNet과 같은 대규모 공개 데이터셋의 등장
- 당시 대규모 이미지 및 비디오 인식에서 큰 성공을 거두고 있던 컨볼루션 신경망(ConvNets)
- GPU와 같은 고성능 컴퓨팅 시스템의 발전
- ConvNet 아키텍처 설계의 또 다른 중요한 측면인 '깊이'를 제안
- 모든 레이어에서 매우 작은 (3×3) 컨볼루션 필터를 사용하여 레이어를 더 깊게 쌓음으로써 네트워크의 깊이를 점진적으로 증가시킴
2. Related Works
- AlexNet
- ILSVRC 2012 winner
- Deeper architecture
- ReLU, Dropout
- Data augmentation
- Multiple GPUs
- Local Response Normalization
- ZFNet
- ILSVRC 2013 winner
- 더 작은 크기의 필터와 보폭을 적용
3.Method
Architecture
- 입력: 고정 크기 224×224 RGB 이미지
- 유일한 전처리: 평균 RGB 값을 빼기
- 상하좌우, 중앙을 포착할 수 있는 가장 작은 크기의 필터 사용 (3x3)
- Stride: 1 pixel
- Padding: 1 pixel (컨볼루션 후 해상도 유지)
- Max-pooling: 2x2 pixel window, with stride 2
- 컨볼루션 레이어 후 3개의 FC 레이어 (4096 → 4096 → 1000). 마지막 레이어는 소프트맥스 레이어
- 모든 은닉층에 ReLU를 통한 비선형성 적용
Configurations
- 표 1은 논문에서 평가된 ConvNet 구성(A에서 E)을 보여주고 모든 구성은 앞선 아키텍처를 따르며 깊이에서만 다름
- 채널 수는 64에서 시작하여 각 맥스 풀링 레이어마다 두 배로 증가
- 표 2는 해당 구성의 파라미터 수
Discussion - why 3x3 filter?
- 저자들은 네트워크 전반에 걸쳐 3x3 크기의 작은 필터를 사용하였음
- 중간에 다른 pooling이 없다고 가정했을 때 컨볼루션 결과 출력 크기 관점에서 3x3 필터 두 번 사용 = 5x5 필터 한 번 사용, 3x3 필터 세 번 사용 = 7x7 필터 한 번 사용하는 것과 같음
- 그렇다면 왜 3x3 필터를 사용했는가?
- 레이어를 더 많이 쌓음으로써 ReLU를 통한 비선형성 추가
- 파라미터 수 감소
- 위 그림과 같이 7x7 이미지에 3x3 필터 두 번 사용과 5x5 필터 한 번 사용을 비교 (입 출력 채널은 모두 C라고 가정)
- 3x3의 경우 9C^2 + 9C^2 = 18C^2
- 5x5의 경우 25C^2
- 두 경우 모두 출력 크기는 3x3xC로 동일하지만 파라미터 수는 3x3 두 번 사용하는 것이 더 적음
Training
- Basics
- 손실 함수: multinomial logistic regression (cross entropy)
- Mini-batch gradient descent (batch size: 256, momentum: 0.9)
- Learning rate starts at 0.01, decay factor = 10 (when there is no performance improvement)
- 370K iterations(74 epoch)
- Regularization
- L2 weight decay (L2 penalty parameter : 0.00005)
- Dropout for the first two FC layers (dropout ratio : 0.5)
- Weight Initilization
- 테이블 1의 네트워크 A를 무작위 초기화 후 학습
- 이후 더 깊은 아키텍처를 학습할 때, 처음 4개의 컨볼루션 레이어와 마지막 3개의 FC 레이어를 A의 가중치를 사용해 초기화하고, 중간 레이어는 무작위로 초기화
- 사전 초기화된 레이어의 학습률을 줄이지 않고 학습 중에 변경될 수 있도록 허용
- 무작위 초기화의 경우, 평균이 0이고 분산이 0.01인 정규 분포에서 샘플링
- Image size
- 입력 : 고정 크기 224x224 RGB 이미지
- 학습 시 사용되는 이미지는 SGD 반복마다 각 이미지를 리스케일링하고 224x224로 random crop
- crop된 이미지에 random horizontal flip과 RGB color shift를 적용하여 이미지 증강
- 이때 위의 그림과 같이 리스케일링된 이미지의 더 짧은 변을 S라고 정의 (S >= 224)
- S = 224인 경우 이미지의 더 짧은 변을 완전히 포함하여 전체 이미지 통계 포착 가능
- S ≫ 224인 경우 이미지의 객체 혹은 객체의 일부분을 포착
- Determining S
- Method 1: single-scale training
- S를 256이나 384 중 하나의 값으로 고정
- 먼저 S = 256을 사용하여 네트워크를 학습시키고 S = 384 네트워크의 학습 속도를 높이기 위해 사전 학습된 가중치(S = 256)를 사용하며 초기 학습률을 0.0001로 작게 설정
- Method 2: multi-scale training
- S의 값을 [256, 512]에서 랜덤 샘플링
- 이미지 내에서 객체의 크기가 다양할 수 있다는 사실을 반영
- Method 1: single-scale training
- 정리하자면 학습 시 사용되는 이미지는 결국 리스케일링 후 224x224로 random crop 되어야 하는데, 이때 리스케일링 방법을 single-scale, multi-scale 둘 중 하나의 방법으로 S의 값을 제한함으로써 정할 수 있음
Testing
- 테스트 이미지도 미리 정의된 테스트 스케일 Q로 재조정
- Q는 S와 같을 필요는 없지만, 이후에 S에 대해 여러 Q를 사용하는 것이 성능을 향상시키는 데 도움이 된다는 것이 밝혀짐
- FC Layers를 conv Layer로 변환. 아래는 세부사항
- The first FC layer to 7x7 conv. layer, last two FC layers to 1x1 conv. layer
- Configure the class score map to have the same number of classes and channels (to obtain a fixed-size vector of class scores for the image)
- If the size is larger than the existing 7x7, sum-pooling for each score map
- There is no restriction of input image size → no need to crop when inference → decrease the amount of calculation
4. Classification Experiments
Basics
- ILSVRC-2012 dataset 사용
- 1000 classes, training (1.3M), validation (50K), and testing (100K)
- Classification performance
- top-1 error: 정답을 완벽하게 맞혀야 함
- top-5 error: 상위 5개 후보까지 인정
Single Scale Evaluation (Fixing Q when testing)
- single scale training의 경우 Q = S
- multi scale training의 경우 Q = (256 + 512) / 2
- A vs. A-LRN
- LRN의 성능 향상 효과 없으므로 B부터 사용 X
- C vs. B
- C>B → C는 B에서 1x1 layer가 몇 개 추가된 것인데 이를 통해 추가적인 비선형성 (ReLU)이 성능 향상에 도움이 된다는 것을 확인
- C vs. D
- C<D → D는 C의 1x1 conv layers 위치에 1x1 대신 3x3을 넣은 것. spatial context를 이해하는 것도 중요하다는 것을 확인
- 추가적으로 B의 3x3 conv layer를 5x5로 변경해서 테스트한 결과 top-1 error가 7% 증가함 → 더 작은 필터가 유리하다는 것을 확인
- multi scale training이 single scale training보다 성능 좋음 → 학습 시 이미지 내 객체의 다양한 부분을 반영하는 것이 좋다는 것을 확인
Multi Scale Evaluation (Variable Q when testing)
- 고정 S에 대해 Q = {S – 32, S, S + 32}
- 다양한 S에 대해 Q = {Smin, 0.5(Smin + Smax), Smax}
- 테스트 시에도 다양한 Q를 사용하는 것이 성능이 높다는 것을 확인
Multi Crop Evaluation (Using cropped image when testing)
- Multi-crop: 이미지를 여러 개로 crop 하고 각각의 예측 결과를 종합하여 최종 예측
- Dense evaluation: 이미지 전체를 일단 넣고 sliding window와 같이 일정한 간격으로 결과 도출
- 두 방법을 결합하는 것이 성능 향상되었음
ConvNet Fusion
- 단일 모델의 최고 성능은 E 모델에 multi-crop & dense evaluation 적용
- 여러 모델(앙상블을 말하는 듯)의 최고 성능은 D & E 모델에 multi-crop & dense evaluation 적용
Comparison with the SOTA
- 2 nets 사용해서 6.8% 성능 → 7 nets 사용하고 6.7% 얻은 GoogLeNet과 비슷
- single net 기준으로는 7.0%으로 GoogLeNet 제침
5. Conclusion
- 3x3의 작은 필터를 사용함으로써 더 깊은 네트워크를 만들 수 있는 초석이 됨
- 상대적으로 간단한 모델 구조
- 더 적은 파라미터
References
'Paper Review' 카테고리의 다른 글
[Paper Review] Robust Sound-Guided Image Manipulation (0) | 2024.08.20 |
---|---|
[Paper Review] Going Deeper with Convolution - GoogLeNet (0) | 2024.08.08 |
[Paper Review] Deep Residual Learning for Image Recognition - ResNet (0) | 2024.08.03 |