I'm Lim

[논문 정리] Inception v4 본문

Classification

[논문 정리] Inception v4

imlim 2022. 11. 20. 20:26

Paper

  Szegedy, Christian, et al. "Inception-v4, inception-resnet and the impact of residual connections on learning." Thirty-first AAAI conference on artificial intelligence. 2017.

Abstract

  본 논문은 GoogLeNet의 Inception 모듈과 ResNet의 residual 모듈을 결합하여 Inception 모듈을 개선시킨 Inception v4에 대해 설명한다.

Residual Inception Blocks

1. Stem module

  

  위 모듈 구조를 Stem이라고 한다. Stem은 이미지를 직접적으로 입력으로 받는 모듈이다.

 

1 ) 초반부 3 x 3 Conv 3개는 Inception v2에서 사용한것과 완전히 동일하다.

 

2 ) 채널의 수를 늘리기 위해 Pooling과 Conv 연산을 취한 뒤, concatenation한 것도 Inception v2에서 이미 소개한 내용이다.

 

3 ) Channel reduction, Asymmetric Convolution을 취하는 과정 역시 Inception v2에서 이미 소개하였다.

 

맨 마지막 Conv Layer에 (192 V) 라고 나와있는데 아마도 실수인듯 하다. (192 stride 2 V)가 맞을 수 밖에 없는게 오른쪽 MaxPooling에서 Stride를 2를 주며 feature map size를 35 x 35로 맞췄기 때문이다.

2. Inception-A module 

 

  이 모듈 역시 Inception v2에 이미 소개되있다 (Factorization into smaller convolutions).

3. Inception-B module

 

  이 모듈 역시 Inception v2에 이미 소개되었다 (Spatial Factorization into Asymmetric Convolutions).

4. Inception-C module

 

  이 모듈 역시 Inception v2에 이미 소개되었다 (Figure 7).

5. Reduction-A module

 

  이 모듈은 35 x 35 feature map 크기를 17 x 17 크기로 줄이기 위해 사용된다.

 

k, l, m, n은 위와 같이 모델에 따라 다르게 설정된다.

6. Reduction-B module

 

  이 모듈은 17 x 17 feature map 크기를 8 x 8 크기로 줄이기 위해 사용된다.

 

 

Inception v4

 

 

  Inception v4는 위에서 설명했던 모듈들을 조합하여 다음과 같은 구조를 갖는다.

7. Inception-ResNet-A module ( v1 )

 

 

  이 모듈은 residual block과 inception 모듈의 조합으로 이루어져있다. 보면 알겠지만, Residual Block의 Shortcut connection 개념과 Inception v2 모듈의 Factorization into smaller convolutions 개념의 조합인 것을 알 수 있다.

8. Inception-ResNet-B module ( v1 )

  이 모듈 역시 residual block과 inception 모듈의 조합으로 이루어져있다. 보면 알겠지만, Residual Block의 Shortcut connection 개념과 Inception v2 모듈의 Spatial Factorization into Asymmetric Convolutions 개념의 조합인 것을 알 수 있다.

9. Reduction-B module ( v1 )

 

  동일한 모듈명이 Inception v4 모듈에 존재해서 약간 아쉽지만, 이 Reduction B module은 Inception-ResNet-v1 모델을 위해 사용된다. 이 모듈은 17 x 17 feature map 크기를 8 x 8 feature map 크기로 줄이는 데 사용된다.

10. Inception-ResNet-C module ( v1 )

 

  이 모듈 역시 residual block과 inception 모듈의 조합으로 이루어져있다. 보면 알겠지만, Residual Block의 Shortcut connection 개념과 Inception v2 모듈의 Spatial Factorization into Asymmetric Convolutions 개념의 조합인 것을 알 수 있다.

11. Inception-ResNet-Stem ( v1 )

 

  Inception-ResNet 모델에 사용될 Stem 모듈이고, 역할은 Inception v4에 사용된 Stem과 동일한 역할을 한다.

 

 

Inception-ResNet-v1, Inception-ResNet-v2

 

  Inception-ResNet v1은 위에서 설명했던 모듈들을 조합하여 다음과 같은 구조를 갖는다.

12. Inception-ResNet-A module ( v2 )

13. Inception-ResNet-B module ( v2 )

14. Inception-ResNet-C module ( v2 )

Scaling of the Residuals

  filter의 개수가 1000개가 초과하면 residual variants가 불안하며 학습초기에 네트워크가 죽어버린다고 한다. 이것은 Average Pooling 직전 레이어가 수만번의 iteration 이후에 0만을 출력하는 것을 의미한다. 매우 낮은 learning rate도, BN을 추가하는 것도 이것을 막진 못했다고 한다.

 

  이를 방지하기 위해, Average Pooling 직전 레이어에 위와 같이 residual mapping 부분에 scaling factor를 0.1에서 0.3 사이로 적용시켰더니 학습이 안정화되었다고 한다. 

 


Details of Learning

- Optimizer는 Inception v2에서 사용했듯이 RMSProp에 decay : 0.9, epsilon : 1.0을 설정했다.

 

-  Learning rate는 0.045를 설정하고, 2 에폭을 지날때마다 0.94만큼 곱해준다.

Result

1. Single Model, Single Crop

2. Single Model, Multiple Crop

3. Single Model, 144 Crop

4. Ensemble Model, 144 Crop

 

전반적으로 Inception-ResNet v2가 학습속도가 빠르고, 성능도 다른 모델에 비해 뛰어난 결과를 보였다.

'Classification' 카테고리의 다른 글

[논문 정리] SqueezeNet  (0) 2022.11.26
[논문 정리] DenseNet  (0) 2022.11.26
[논문 정리] Pre activation ResNet  (0) 2022.11.20
[논문 정리] ResNet  (0) 2022.11.20
[논문 정리] Inception v2, v3  (0) 2022.11.20
Comments