본문 바로가기
딥러닝(Deep Learning)/논문 paper 리뷰

[X:AI] Xception 논문 이해하기

by rahites 2022. 7. 6.

Xception: Deep Learning with Depthwise Separable Convolutions. 2017.

 

- Inception 모듈은 feature를 추출할 때 1x1, 3x3, 5x5 등 다양한 크기의 필터를 이용해 Convolution(합성곱) 연산을 수행한다. 여러가지 크기의 필터를 이용해 feature를 추출하기 때문에 의미있고 다양한 feature를 추출할 수 있다.

- Inception 모듈은 개념적으로 Convolution 방식과 유사하지만 더 적은 매개 변수로 더 많은 표현을 학습할 수 있다. 

 

- 논문의 저자는 Inception 모듈이 1x1 컨볼루션을 통해 채널 간 상관관계(cross-channel correlations)를 살펴보고, 3x3 or 5x5 컨볼루션을 이용해 상관관계(spatial correlations)를 매핑하기 때문에 좋은 성능을 보인다고 말한다. 따라서 저자는 cross-channel correlations와 spatial correlations를 분리해서 매핑하는 것이 바람직하다고 말한다.

 

A canonical Inception module (Inception V3)
A simplified Inception Module

- Figure 1은 Inception V3에서 볼 수 있는 Inception 모듈의 표준 형식이다. 여기서는 cross-channel correlations와 spatial correlations을 동시에 매핑하는 작업을 수행하기 때문에 논문의 저자는 Figure 2에서 볼 수 있듯이 이를 동시에 매핑하지 않기 위한 단순한 구조를 제시한다.

- Figure 2의 구조를 보면 작업이 각자 독립적으로 수행된다는 것을 알 수 있다. 

A strictly equivalent reformulation of the simplified Inception module

- Figure 3은 더욱 단순해진 구조로 Figure 2에서 작업마다 독립적으로 진행했던 Convolution연산을 1번만 진행하는 것이다. 이 후 Convolution의 결과를 나누어 3x3 Convolution을 진행한다. 

- 물론 이 방법은 결과를 나눌 때의  segment의 수와 크기가 결과에 미치는 영향이 무엇인가에 대한 질문을 야기한다.

extreme version of our Inception module, with one spatial convolution per output channel of the 1x1 convolution

- Figure 3과 같은 단순한 구조가 "극한"으로 가게 되면 ( 1x1 Convolution의 output channel을 최대로 분리하면) depthwise separable convolution과 거의 동일한 구조가 만들어진다. 

 

* Extreme version of an Inception module과 Depthwise separable convolution의 차이점

1. 연산 순서 

Depthwise separable convolution : Depthwise Convolution -> Pointwise Convolution

Extreme version of an Inception module : Pointwise Convolution -> Depthwise Convolution

 

2. 비선형성

둘 다 ReLU 비선형성을 따르지만 Depthwise separable convolution은 일반적으로 비선형성 없이 구현된다.

 

- 첫 번째 차이는 중요하지 않지만 두 번째 차이는 문제가 될 수 있다.

- 결국 Inception 모델을 Depthwise separable convolution으로 변경한다면 Inception구조의 제품군을 개선할 수 있을 것이라고 제안한다. 아키텍쳐의 이름은 "Extreme Inception", 즉 "Xception"이다.

- 비선형성이 없던 실험이 수렴 속도가 빠르고 최종 성능도 높다는 것을 확인할 수 있다.

- Xception은 ImageNet dataset은 분류 성능이 약간 향상되고 JFT dataset은 성능이 크게 향상한다. 

- Depthwise separable convolutions는 Inception 모듈과 유사한 특성을 제공하면서도 사용하기 쉽기 때문에 추후 일반적인 conv네트워크 아키텍처 설계에 도움이 될 것이다. 

댓글