1. Introduction
- 2012년 AlexNet 이후 CNN은 이미지 인식 분야에서 큰 성공을 거뒀음
- 본 논문에서는 네트워크의 깊이(depth)를 크게 늘리면 성능이 향상되는가? 를 집중적으로 연구
- 모든 layer에 3X3 Conv filter를 사용하면서 depth를 점진적으로 늘려감
2. Convnet Configurations
- 입력은 고정 크기 224×224 RGB 이미지, 학습 데이터셋 전체에서 계산된 평균 RGB 값을 픽셀에서 빼주어 전처리

- 특징:
- 모든 합성곱 층: 3×3 필터 (가장 작은 receptive field)
- 1x1 필터는 선형 변환이랑 같음
- stride = 1, padding = 1로 공간 해상도 유지
- 5개의 max-pooling 층 (2×2, stride 2)
- 마지막: 3개의 Fully Connected (4096, 4096, 1000 softmax)
- ReLU 비선형 활성화 함수 적용
- Local Response Normalization(LRN)은 사용하지 않음 (효과 없음, 메모리 사용량 및 계산량만 증가)
- 구성은 같으나 깊이에 따른 모델 버전:
- A (11층) ~ E (19층)
- 가장 얕은 모델은 conv 8개 + FC 3개 = 11층
- 가장 깊은 모델은 conv 16개 + FC 3개 = 19층
- 7x7 한 층 대신 3x3 세 층을 사용하는 것의 장점:
- ReLU 비선형성이 3번 들어가므로 결정 함수가 더 강력
- 파라미터 수가 줄어듦.
- 입력과 출력이 C채널일 때:
- 3×3 세 층 = 27C²
- 7×7 한 층 = 49C²
- 즉, 7×7 필터를 3×3 필터 조합으로 분해하도록 정규화 효과를 부여

3. Classification Framework
3.1 Training
- multinomial logistic regression objective 미니배치 SGD 이용, 모멘텀(0.9)으로 설정
- 배치 크기: 256
- weight decay(L2), dropout(0.5, FC에만 적용)으로 정규화
- learning rate: 0.01 → 검증 정확도가 개선되지 않을 때마다 10배 감소
- 가중치 초기화
- 네트워크 A를 무작위 초기화로 학습 후, 더 깊은 네트워크를 학습할 때는 앞쪽 4개의 Conv 층과 마지막 3개의 FC 층을 네트워크 A에서 학습한 가중치로 초기화했고, 중간층은 무작위 초기화
- 무작위 초기화 시에는 평균 0, 분산 10⁻²의 정규분포에서 샘플링했으며, bias는 0으로 설정
- 데이터 증강:
- 랜덤 크롭 (224×224)
- 좌우 반전, 색상 변화
- 두 가지 학습 방식
- 단일 스케일 학습 (Single-scale training): S를 고정
- S=256, S=384 두 경우 실험
- S=384 학습 시, 먼저 S=256으로 학습 후 가중치를 초기화로 사용, learning rate는 10⁻³
- 다중 스케일 학습 (Multi-scale training, scale jittering): S를 [256, 512] 범위에서 랜덤으로 선택
- 실제 학습은 S=384 모델을 사전 학습 후 fine-tuning 방식으로 진행
- 단일 스케일 학습 (Single-scale training): S를 고정
3.2 Testing
- 입력 스케일링
- 이미지를 비율 유지 리사이즈 → 가장 짧은 변을 Q(test scale)로 맞춤
- Q는 학습 스케일 S와 달라도 됨
- Dense Evaluation
- 완전연결층(FC)을 합성곱(conv) 층으로 변환
- 첫 FC → 7×7 conv
- 나머지 두 FC → 1×1 conv
- 전체 이미지에 네트워크를 적용 → class score map 생성
- score map을 공간 평균(pooling)하여 고정 길이 벡터로 변환
- 완전연결층(FC)을 합성곱(conv) 층으로 변환
- 데이터 증강
- 좌우 반전 이미지도 평가 후 softmax 확률 평균
- Dense vs Crop 비교
- Dense: 효율적 (이미지 전체 한 번만 계산)
- Crop: 비효율적 (각 crop마다 네트워크 재계산 필요하므로)
- 하지만 crop 방식은 더 세밀한 샘플링으로 정확도 ↑
- 두 방식은 경계 처리 방식이 달라 상호 보완적
- Crop: 0-padding
- Dense: 주변 이미지 부분으로 padding
3.3 Implementation Details
- 다중 GPU 학습은 데이터 병렬 처리 방식으로 수행:
- 배치를 GPU별로 분할 → 병렬 처리 → 기울기 평균
- 결과는 단일 GPU 학습과 동일
- 4-GPU 시스템에서 단일 GPU 대비 3.75배 속도 향상
4. Classification experiments
- 데이터셋: ILSVRC-2012 데이터셋
- 지표: Top-1, Top-5 Error
4.1 Single Scale Evaluation
- 고정 학습 스케일 S 사용 시 Q=S, 다중 스케일 학습 시 Q=0.5(Smin+Smax)
- LRN을 추가한 A-LRN 네트워크는 성능 향상 없음 → 이후 모델에서는 LRN 제거
- 네트워크 깊이가 깊을수록 에러율 감소 (11층 A → 19층 E)
- 동일한 깊이라도, 1×1 conv를 포함한 C보다 3×3만 사용한 D가 더 성능 좋음 → 비선형성(1×1 conv)은 도움 되지만, 공간적 콘텍스트를 잡는 3×3 conv가 더 중요
- 3×3 conv 여러 층을 사용하는 깊은 네트워크가 5×5 conv 얕은 네트워크보다 성능 우수 (shallow net은 top-1 에러가 7% 더 높음)
- Scale jittering (훈련 시 S ∈ [256,512]) → 단일 스케일 학습보다 성능 크게 개선
4.2 Multi-Scale Evaluation
- 고정 스케일 학습 모델: Q={S-32, S, S+32}, 다중 스케일 학습 모델: Q={Smin, 0.5(Smin+Smax), Smax}
- 다중 스케일 테스트가 단일 스케일보다 더 나은 성능
- 가장 깊은 D, E 모델이 최고 성능
- 최고 성능 (단일 모델): Top-1 24.8%, Top-5 7.5% (검증 셋)
4.3 Multi-Crop Evaluation
- Dense와 Multi-crop은 보완적 → 함께 쓰면 성능 향상
- Multi-crop 단독 성능은 Dense보다 약간 좋음
- Dense + Multi-crop 결합 → 가장 성능 좋음 (Top-5 7.1% → 7.0% 수준)
4.4 ConvNet Fusion
- 여러 모델의 softmax 출력을 평균 → 성능 개선
- ILSVRC 제출 당시: 7개 모델 앙상블 → Top-5 에러 7.3%
- 이후, 단 두 모델(D, E)만 앙상블 → Top-5 에러 6.8% (Dense + Multi-crop 결합 시)
- 단일 최고 모델(E)도 7.0% 성능 달성
4.5 Comparison with the State of the Art
- VGGNet 결과는 이전 세대 모델(AlexNet, Zeiler & Fergus, OverFeat 등)을 크게 능가했으며, GoogLeNet과 비슷한 수준(GoogLeNet 6.7%, VGGNet 6.8%)
- 단일 모델 기준: VGGNet E (7.0%) > GoogLeNet (7.9%)
5. Conclusion
- 네트워크 깊이는 성능 향상에 매우 중요함
- 고전적인 ConvNet 아키텍처를 크게 변경하지 않고 단순히 깊이를 증가시키는 것만으로도 state-of-the-art을 달성할 수 있음을 보여줌
[참조]