더보기
Paper Link: https://arxiv.org/abs/1409.4842
1. Introduction
- CNN 급격한 발전 → 네트워크 구조의 중요성
- 모바일 및 임베디드 컴퓨팅의 지속적인 성장 → 전력 및 메모리 사용의 효율성이 중요해짐
- 인셉션 모듈 적용
2. Related Works
- LeNet-5를 시작으로 CNN은 일반적으로 여러 개의 컨볼루션 레이어 이후에 FC 레이어로 이어지는 표준 구조를 가지게 됨
- 이러한 구조를 사용한 모델들이 이미지 분류 분야에서 좋은 성과를 내었음
- Network-in-Network proposed by Lin et al - 1×1 convolutional layers
- computational bottleneck을 제거하기 위한 차원 축소 모듈
- 성능 저하 없이 깊이를 늘릴 수 있을 뿐만 아니라 네트워크의 폭도 넓힐 수 있음
3. Motivation and High Level Considerations
- 심층 신경망의 성능을 향상시키는 가장 간단한 방법은 깊이와 너비의 크기를 늘리는 것이지만 두 가지 주요한 단점이 존재함
- 파라미터 수가 더 많아지기 때문에 데이터셋이 한정된 경우 오버피팅이 발생하기 쉬워짐
- 계산 자원의 사용이 극적으로 증가하게 됨. 일반적으로 계산 자원은 항상 유한하기 때문에 네트워크 크기의 무분별한 증가 보다는 컴퓨팅 리소스의 효율적인 분배가 우선적으로 고려됨
- 위의 두 문제점을 해결하기 위한 근본적인 방법: Fully Connected에서 Sparsely Connected architectures로의 전환
- 마지막 레이어 활성함수 결과에 대한 correlation statistics 분석과 높은 상관성을 지닌 뉴런들과의 클러스터링을 통해 최적의 네트워크 토폴로지를 구성할 수 있음
- 그러나 non-uniform sparse data structures에 대한 수치적 계산에 있어서 오늘날의 컴퓨팅 인프라는 매우 비효율적
- 이에 따라 병렬 컴퓨팅을 보다 효율적으로 최적화하기 위해 fully connected로 다시 전환되는 추세
- 많은 문헌들은 sparse matrices를 상대적으로 dense한 submatrices로 클러스터링 하는 것이 sparse matrix multiplication에 대한 SOTA를 제공하는 것을 시사함
- 인셉션 구조는 sparse structure를 근사하는 네트워크 구조에 대한 연구로 시작하였으며 향상된 여러 훈련 방법론을 적용한 결과 최종적인 인셉션 아키텍처가 localization과 detection 분야에서 특히 유용하다는 것을 발견함
4. Architectural Details
- 인셉션 아키텍처의 주된 아이디어는 CNN에서 최적의 local sparse structure를 쉽게 사용할 수 있는 dense components로 근사하고 커버할 수 있는 방법을 찾는 것에 기반함
- Arora의 논문에서는 마지막 층의 상관 통계를 분석하고 고상관성을 가진 유닛들의 그룹으로 클러스터링하는 방법을 제안함
- 이러한 클러스터는 다음 층의 유닛을 형성하고 이전 층의 유닛과 연결됨
- 이전 층의 각 유닛은 입력 이미지의 특정 영역에 해당하며, 이러한 유닛들이 필터 뱅크로 그룹화된다고 가정함
- 입력에 가까운 층일 수록 상관된 유닛들은 local region에 집중됨
- 이렇게 단일 지역에 집중된 경우 1x1 컨볼루션 레이어로 커버가 가능하지만 공간적으로 더 분산된 경우 더 큰 필터를 필요로 함 → 1x1, 3x3, 5x5 필터 사용
- 이들의 조합(출력 필터 뱅크)이 하나의 출력 벡터로 연결되어 다음 단계의 입력을 형성
- 각 단계 별 풀링 연산도 사용
- 이러한 인셉션 모듈이 쌓일 수록, 더 높은 층에서 더 높은 추상화 수준의 특징이 추출됨 → 공간적 집중도가 감소하므로 3x3 혹은 5x5 필터의 비율을 증가시킴
- 왼쪽과 같은 단순한 형태에서는 5x5 컨볼루션의 경우 필터가 많아지면 연산량이 크게 증가하고 풀링층과도 결합할 경우 더 심해짐
- 이를 해결하기 위해 오른쪽과 같이 3x3, 5x5 이전에 1x1 컨볼루션으로 차원을 축소 + ReLU
- 메모리 효율성을 위해 낮은 층에서는 CNN을 사용하고 높은 층에서 인셉션 모듈을 사용하는 것이 이득
- 인셉션 모듈의 두 가지 효과
- 계산 복잡도의 과도한 증가 없이 각 단계에서 유닛을 증가시킬 수 있음
- 다양한 스케일에서 시각적 정보가 처리된 다음, 다음 단계에서 다른 스케일에서의 특징을 동시에 추출
정리하자면 인셉션 모듈은 1x1, 3x3, 5x5 convolution filter로 구성되어 있고 각 필터는 이미지의 특정 부분(local sparse structure)에 해당하며 이들이 모여 dense components를 근사화한다. 입력과 가까운 낮은 층의 경우 low level feature를 포착하기 때문에 1x1 필터로 충분하지만 층이 높아질 수록 추상화 수준이 높은 high level feature를 추출하기 위해 3x3, 5x5 필터도 사용. 그리고 이에 따른 연산량의 증가라는 단점을 보완하기 위해 1x1 필터를 추가하여 차원을 축소함으로써 연산량을 줄이고 ReLU를 통한 부가적인 비선형성도 부여
5. GoogLeNet
Basics
- 모든 컨볼루션에 ReLU 적용
- Receptive field : 224x224 RGB 수용, mean suvtraction
- 3x3 reduce : 3x3 컨볼루션 이전에 사용되는 1x1 필터 수
- 5x5 reduce : 5x5 컨볼루션 이전에 사용되는 1x1 필터 수
- pool proj : max pooling 이후에 사용되는 1x1 필터 수
- reduction/projection에 대해서도 ReLU 적용
GoogLeNet을 4가지 부분으로 나누어서 살펴보면 다음과 같다
Part A
- 계산 효율성을 위해 낮은 레이어에서는 인셉션 모듈을 적용하지 않음
- 위의 과정을 거치고 난 후의 출력 크기는 표에 따라 28x28x192가 됨
Part B - Inception Module
- 기본적인 인셉션 모듈
- 다양한 스케일에서의 특징을 추출하기 위해 1x1, 3x3, 5x5 컨볼루션이 병렬적으로 사용됨
- 3x3, 5x5 이전과 max-pooling 이후에 1x1으로 차원을 조정
Part C - Auxiliary Classifier
- 이미지 분류 task에서는 상대적으로 얕은 층에서 네트워크가 높은 성능을 보이고 중간 단계에서는 discriminative함
- 이에 따라 중간 단계에 보조 분류기를 추가해 연결함으로써 다음과 같은 효과를 얻을 수 있도록 함
- 낮은 단계에서의 discrimination을 촉진
- 역전파되는 그라디언트 소멸 방지
- 추가적인 규제
- 학습 과정에서는 보조 분류기의 loss에 0.3을 곱하여 전체 네트워크 loss에 더해짐
- inference 시에는 적용하지 않음
- 구체적인 구조는 다음과 같음
- 차원 축소를 위해 1x1 필터 128개 사용
- FC - 1024 units
- 70% dropout
- softmax loss
Part D
- 네트워크 끝단에 해당
- FC 이전에 Global Average Pooling을 사용하여 파라미터 개수를 줄임
- Feature map 마다 전역적으로 평균 내는 방식
6. Training Methodology
- SGD, 0.9 momentum
- learning rate는 8 epoch 마다 4%씩 감소
- 이미지 비율을 3:4, 4:3 사이에서 원래 사이즈의 8% ~ 100% 크기의 패치를 무작위로 샘플링
- Photometric distortions 방법을 사용해 과적합 방지
7. ILSVRC 2014 Classification Challenge Setup and Results
- ILSVRC Dataset : 1000 classes, training (1.2M), validation (50K), and testing (100K)
- 7개 GoogLeNet 모델 앙상블 적용. 이미지 입력 과정에서 샘플링 방법과 랜덤 순서만 다르게 하고 나머지는 동일
- 이미지의 짧은 면이 256, 288, 320, 352가 되게 4개로 재조정한 이후, 재조정된 이미지에 대해 좌측, 중앙, 우측의 사각형을 고름(초상화 이미지에 대해서는 상단, 중앙, 하단)
- 해당 사각형의 4개의 코너, 가운데 224x224, 그리고 압축된 224x224 총 6개의 크롭된 이미지를 얻고 이들의 mirrored version까지 총 12개
- 즉, 하나의 이미지에 대해 4x3x6x2 = 144개의 크롭 이미지를 얻음
- 최종적으로 7개 모델 앙상블 하여 top-5 error 6.67% 달성하면서 2014 ILSVRC SOTA 달성
8. Conclusion
Good
- 기존 구조와 다른 방식 - width 증가시킴
- 연산량에 대한 이점
Bad
- local sparse structure를 근사했다는 점이 와닿지가 않음
- 보조 분류기는 왜 2개만 달았는지?
- 훈련 과정에 있어서 명확한 methodology를 제시하지 않음
- 모델 자체의 유연성과 확장성이 떨어져 보임
References