본문 바로가기
논문 리뷰/CV

[X:AI] InceptionV2/3 논문 리뷰

by hyeon827 2024. 3. 14.

Rethinking the Inception Architecture for Computer Vision

 

Rethinking the Inception Architecture for Computer Vision

Convolutional networks are at the core of most state-of-the-art computer vision solutions for a wide variety of tasks. Since 2014 very deep convolutional networks started to become mainstream, yielding substantial gains in various benchmarks. Although incr

arxiv.org

 

 

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://velog.io/@bpbpbp_yosep/Rethinking-the-Inception-Architecture-for-Computer-VisionInception-v2-v3

https://deep-learning-study.tistory.com/517

https://hi-guten-tag.tistory.com/433

https://rahites.tistory.com/144

'논문 리뷰 > 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