1. Introduction
- GoogLeNet은 AlexNet보다 12배 적은 파라미터를 사용하면서 더 높은 정확도 달성
- 성능 향상은 딥러닝과 전통적 CV(R-CNN)의 결합에서 옴
- 모바일·임베디드 환경을 고려해, 효율성도 고려
- Inception 아키텍처:
- 이름은 Network in Network + “We need to go deeper” 밈에서 유래
- Deep은 (1) 새로운 모듈 구조(Inception module) 도입, (2) 네트워크 깊이 증가 두 가지 의미
- ILSVRC 2014 classification & detection에서 기존 SOTA를 크게 능가
2. Related Work
- 기본 CNN은 Conv layer(normalization, pooling) + fully-connected layer의 구조를 널리 사용함
- 이러한 기본 구조에서 layer 수(depth), layer 크기(width)를 증가시키거나, dropout으로 overfitting 완화시켜 성공적으로 활용됨
- Serre et al.은 고정된 Gabor filter로 multi-scale 처리했는데, Inception은 이를 확장함. filter도 학습 가능하다는 점이 차별점
- Network-in-Network는 1×1 Conv + ReLU 추가로 dimension reduction, 계산 병목을 제거해옴 → Inception에서 이 접근이 핵심적으로 사용됨.
- R-CNN은 object proposal를 잘라 CNN으로 분류하는 방식으로, GoogLeNet detection에서는 이를 확장: multi-box prediction, ensemble로 성능 향상
3. Motivation and High Level Considerations
- 모델 성능 개선의 단순한 방법: depth(깊이), width(폭) 증가.
- 단점:
- Overfitting 위험 (파라미터 증가, 데이터셋이 제한적일 시 병목)
- 계산량 급증 (Conv layer filter 수를 늘리면 연산량이 제곱 비율로 증가, 대부분의 weight가 거의 0에 가깝게 학습된다면 연산량 낭비)
- 해결 방향 → fully connected 구조 대신 sparse 연결 구조.
- Arora et al.에서 “각 layer의 activation 상관관계를 분석하고, 강하게 연관된 뉴런들을 클러스터링하여 다음 layer를 구성”하는 방법 제시
- 하지만, 현재 하드웨어는 sparse 구조 연산에 비효율적
- Dense matrix 연산은 GPU/CPU에서 매우 빠름 → 실제로는 dense 구조가 더 유리
- Inception
- Sparse 구조를 dense 연산으로 근사
- 여러 filter를 병렬로 두어 multi-scale 특징 추출
- localization과 detection에서 좋은 성능을 보임
- Inception의 성공이 이론적 원리 때문인지 우연인지는 불확실, 하지만 후속 연구 방향에 큰 동기 부여
4. Architectural Details
- 1×1, 3×3, 5×5 Conv + pooling을 병렬로 적용한 후, 결과를 concatenate하여 다음 layer로 전달
- 그러나 5×5 Conv나 pooling 출력이 많으면 연산량이 급증
- 그리해 1×1 Conv를 사용해 차원을 줄인 후 3×3, 5×5 Conv 적용, 이로 연산량 절감 및ReLU 비선형성 추가
- Inception module들을 반복적으로 쌓고, 중간에 stride=2의 max-pooling으로 feature map 크기를 절반으로 줄임.
- 메모리 효율성을 위해, 낮은 layer는 전통적인 Conv를 높은 layer부터 Inception module을 사용
- 장점:
- 계산량 급증 없이 depth와 width 확장 가능.
- multi-scale 정보를 동시 처리할 수 있음
- 자원 효율적 사용으로, 동일 성능 대비 2~3배 빠른 네트워크 설계 가능
5. GoogLeNet
- Inception 아키텍처의 가장 성공적인 구현체, ILSVRC14에서 사용
- 총 22-layer(파라미터가 있는 layer 기준), pooling 포함하면 27-layer.
- 모든 Conv + Inception module에 ReLU 활성화 함수 사용
- 마지막 classifier 전에 average pooling 사용으로, FC 대체. 파라미터 절감 및 fine-tuning 용이. FC 제거 후에도 dropout은 필수적으로 포함
- 효율성
- 계산량과 메모리 footprint를 줄여 모바일/제한된 환경에서도 실행 가능.
- average pooling 채택 시 top-1 정확도 +0.6% 향상.
- Auxiliary classifier
- Inception (4a), (4d) 출력 위에 작은 classifier 추가해 gradient 전파 강화, 중간 feature의 구분력 향상, regularization 효과 적용
- 학습 시 loss에 0.3 가중치로 반영, 추론 시 제거
-
- 5×5 average pooling (stride=3), 출력 크기 4×4×512 (stage 4a), 4×4×528 (stage 4d)
- 1×1 Conv, filter 128개, ReLU
- fully-connected layer, 1024 유닛, ReLU
- Dropout layer, 70% drop ratio
- linear layer + softmax classifier (1000 class 예측, main classifier와 동일)구조
6. Training Methodology
- DistBelief 분산 학습 시스템 사용, CPU 기반이었으나 GPU로도 약 1주일 내 수렴 가능
- asynchronous SGD + momentum 0.9, 학습률은 8 epoch마다 4% 감소, 최종 모델은 Polyak averaging으로 생성
- 일부 모델은 작은 crop 중심, 일부는 큰 crop 중심으로 학습하여 ensemble에 다양성 확보
- 이미지의 8%~100% 크기로 다양하게 샘플링, aspect ratio는 3/4~4/3 범위 랜덤 선택
- photometric distortion 적용, resize 시에는 bilinear/area/nearest neighbor/cubic interpolation을 무작위로 적용
7. ILSVRC 2014 Classification Challenge
- 이미지 분류, 평가 지표는 top-1 정확도와 top-5 오류율
- 동일 GoogLeNet 아키텍처로 7개 모델을 학습해 ensemble
- 더 다양한 cropping 전략 사용, scale 4단계 × 좌/중앙/우 crop 3개 × 4모서리+중앙 crop 6개 × 반전 2개 = 144 crop/이미지
- softmax 확률을 평균해 최종 예측
- 최종 제출 결과 top-5 오류율 6.67%로 1위 달성
- 외부 데이터 미사용
- 모델 수와 crop 수를 늘리면 성능이 향상하지만, 일정 수준 이상에서는 향상 폭이 줄어듦
8. ILSVRC 2014 Detection Challenge
- 이미지에서 객체의 bounding box 예측하고 어디에 속하는지 맞추는 것, 성능 지표는 mAP(mean average precision)
- GoogLeNet 접근
- R-CNN 파이프라인 기반, 단 region classifier로 Inception 모델 사용
- Region proposal 개선:
- Selective Search + multi-box prediction 결합
- superpixel 크기 2배 → proposal 수 절반으로 감소
- multi-box에서 200개 region proposal 추가
- Classification 단계:
- proposal 분류에 6개 ConvNet ensemble 사용
- 시간부족으로 bounding box regression은 사용하지 않음
- 2013년 대비 정확도 거의 2배 향상, GoogLeNet: mAP 43.9%로 1위, 단일 모델 성능: 38.0% (ensemble로 43.9%)
9. Conclusions
- Inception 아키텍처는 sparse 구조를 dense 블록으로 근사하여 성능을 크게 향상시킴
- 얕거나 좁은 네트워크와 비교했을 때, 계산량의 큰 증가 없이 품질을 크게 향상시킴
- Detection에서도 context나 bounding box regression 없이도 경쟁력 있는 성능