Rethinking the Inception Architecture for Computer Vision
Abstract
- 모델 크기와 계산 비용의 증가가 대부분의 작업에 대해 즉각적인 품질 향상을 가져옴
- 하지만 계산 효율성과 적은 파라미터 수는 여전히 모바일 비전 등에서 중요
- 해당 논문에서는 convolution을 분해하고, 적극적인 regularzation을 통해 최대한 효율적으로 계산 추가
1. Introduction
- 2012년 ImageNet 대회에서 우승한 'AlexNet' 모델 이후, VGGNet, GoogLeNet 등 개선 모델들이 나옴
- 비록 VGGNet은 구조가 단순하지만 parameter가 너무 많음(AlexNet 3배)
- 반면 GoogLeNet의 Inception 아키텍처는 메모리와 계산 예산에 엄격한 제약이 있는 상황에서도 잘 수행
- GoogLeNet은 단 500만개 parameter 사용(AlexNet의 1/12, VGGNet 1/3)
- 그럼에도 불구하고 Inception 아키텍처의 복잡성은 네트워크를 변경하기 어렵게 만듦
- 만약 아키텍처를 순진히 증가시킨다면 계산에서 얻은 수많은 이점들이 순식간에 사라질 것
- 따라서 본 논문에서 covolution 네트워크를 효율적으로 크키를 키우기 위한 일반적인 원칙들과 최적화 아이디어 제공
- 해당 원칙은 Inception에만 적용되는 것은 아니지만, Inception의 포괄적인 구조가 이러한 원리를 통합하기에 충분히 유연하기 때문에 원리를 더욱더 잘 관찰할 수 있음
2. General Design Principles
- 아래에서 언급할 원칙들은 추측성이기에 그 정확성에 대한 검증은 추후 추가적인 실험 증거 필요
- 하지만 이 원칙들에서 벗어나기만해도 네트워크의 성능이 떨어지는 것을 확인
[1]
- Feed-forward 네트워크는 input layer에서 classifier나 regressor 간의 비순환적인 그래프로 표현(이는 정보의 흐름에 명확한 방향이 있다는 것)
- 신경망을 통해 정보가 흐를 때, 정보의 과도한 압축으로 인한 병목현상을 피해야 함(특히 네트워크 초기)
- 즉, representatin 사이즈는 입력부터 출력까지 서서히 줄어들어야 함
[2]
- 고차원의 표현력은 네트워크 안에서 지역적으로 처리하기 쉬움
- Convolutional 네트워크에서 타일 별로 활성을 증가시킬수록 덜 얽히고 섥힌 특징들이 더 많이 나옴
- 결과적으로 네트워크를 더 빠르게 훈련
[3]
- Spatial aggregation 전에 차원 축소를 사용하여 큰 정보 손실 없이 저차원 채널로 임베팅 시킬 수 있음
- 인접한 유닛들 간에는 강한 상관관계가 존재하기 때문
- 차원 축소는 심지어 학습 속도 향상에 기여
[4]
- 네트워크의 '너비'(각 계층의 채널의 수)와 '깊이'(계층의 총 수) 사이의 적절한 균형을 찾는 것이 중요
- 너비와 깊이를 모두 적절히(균형있게) 증가시키면, 네트워크의 성능 향상으로 이어짐
3. Factorizing Convolutions with Large Filter Size
3.1 Factorization into smaller convolutions
- 보다 큰 공간 필터(5x5,7x7)를 사용한 convolution은 계산 측면에서 비례적으로 많은 비용이 듦
- 예를 들어, 5x5 convolution은 3x3 convolution보다 2.78배 더 많은 계산 비용이 듦
- 물론, 5x5 필터는 이전 레이어에서 더 멀리 떨어진 단위의 활성화 사이의 종속성을 포착할 수 있으므로, 필터의 기하학적 크기를 줄이는 것은 표현력의 큰 손실을 초래
- 여기서 드는 질문은, 5x5 convolution을 매개변수는 더 적으면서도 같은 input size 및 output size를 갖는 multi-layer 네트워크로 대체할 수 있는지임
- 위 그림을 보면 5x5 convolution을 2개의 3x3 convolution layer로 factorize 할 수 있음
- 5x5 convolution은 25번 연산, 3x3 convolution 2번은 각각 9번 연산 -> 연산량 및 파라미터 수 18/25
- 첫 번째 3x3은 linear activation, 두 번째 3x3은 ReLU activation을 사용하는 것과 둘 다 ReLU activation을 사용한 경우를 실험 했을 때 두 3x3 convolution에 ReLU를 사용한 것이 정확도가 더 높았음
- 따라서 Inception module에서 5x5 convolution 부분을 두 개의 3x3 convolution으로 대체
3.2 Spatial Factorization into Asymmetric Convolutions
- 3x3 convolution을 더 작은 2x2 convolution 등으로 분해할 수 있을까
- 실험 결과 2x2보다는 nx1과 같은 비대칭 convolution을 사용했을 때 더 좋은 성능
- 3x3 convolution을 1x3 convolution, 3x1 convolution으로 분해 (33%의 연산량 절감)
- 2x2 convolution으로 분해하면 11%의 연산량 절감
- nxn convolution을 nx1과 1xn convolution으로 대체하면 아래와 같은 Inception 모듈이 만들어짐
4. Utility of Auxiliary Classifiers
- GooLeNet 논문에서 Auxiliary Classifiers를 통해 신경망의 수렴을 개선하고 vanishing gradient 문제를 해결하고자 함
- 하지만, 실험 결과 별다른 효과가 없었고, 오히려 Auxiliary Classifiers에 Dropout이나 Batch Normalization을 사용했을 때, main classifiers의 성능이 향상됨
- 이를 통해 Auxiliary Classifiers는 성능 향상의 효과보다 정규화 효과가 있을 것이라고 추측
5. Efficient Grid Size Reduction
- 일반적인 CNN 신경망은 차원 축소를 위해 pooling을 사용
- 하지만, 해당 방식은 연산 비용을 크게 줄일 수 있지만, 신경망의 표현력도 감소시킴
- Convolution과 Pooling의 순서 변화
- 아래 좌측 그림은 연산량이 낮은 대신에 표현력 감소, 우측은 연산량이 좌측에 비해 3배
- 본 논문에서는 표현력을 감소시키지 않으면서 연산을 줄일 수 있는 또 다른 방법 제안
- stride 2를 지닌 pooling layer와 conv layer를 병렬로 사용하여 둘을 concat
Inception-v2
- 지금까지 설명한 주요 방법들을 결합하여 새로운 아키텍처 Inception-v2 제안
- 42층의 신경망으로 구성되어 있지만, 연산량은 GooLeNet보다 약 2.5배에 불과하며 VGGNet보다 훨씬 더 효율적
Inception-v3
- Inception-v3 = Inception-v2 + BN-auxiliary+RMSProp+Label Smoothing+Factorized 7x7
- 아래 표의 가장 마지막 네트워크가 Inception-v3의 결과
*Label Smoothing
- 데이터 정규화 테크닉 하나로 간단한 방법이면서도 모델의 일반화 성능을 높임
- 기존 label이 [0,1,0,0]이면 label smoothing을 실시하면 [0.025, 0.925, 0.025, 0.025]가 됨
- 모델이 한 가지 상황(라벨 1)에만 집중하는 것보다 다양한 상황에 집중함으로써 일반화 성능이 좋아짐
6. Conclusion
- Inception 아키텍처를 기반으로 한 확장 가능한 convolution 네트워크 설계 원칙 제시하고 상대적으로 적은 계산 비용으로 고품질 비전 네트워크를 구출할 수 있다는 것을 보여줌
- 또한 추가적인 정규화 기법을 활용하여 작은 규모의 훈련 세트에서도 높은 품질의 네트워크를 훈련할 수 있음을 보여줌
[참고자료]
https://deep-learning-study.tistory.com/517
'논문 리뷰 > CV' 카테고리의 다른 글
[X:AI] Mask R-CNN 논문 리뷰 (0) | 2024.05.06 |
---|---|
[X:AI] SegNet 논문 리뷰 (0) | 2024.04.09 |
[X:AI] EfficientNet 논문 리뷰 (0) | 2024.04.03 |
[X:AI] U-Net 논문 리뷰 (0) | 2024.03.27 |
[X:AI] SPPNet 논문 리뷰 (0) | 2024.03.10 |