Extreme Incetion을 명명한 "Xception"은 적은 파라미터 수로 빠르게 학습시키는 CNN 모델 중 한개이다.
Depth wise Conv -> Point wise Conv 방식인 Depth wise Separable Conv와
모듈간의 분리를 한 Cross-channel correlation 형태인 Inception Hypothesis의 개념을 합친 것이라고 볼 수 있다.
[출처]
Sparable Convolutions :
https://zzsza.github.io/data/2018/02/23/introduction-convolution/
Inception & Xception :
https://hichoe95.tistory.com/49
2. Introduction
CNN 은 Computer vision 분야에서 가장 중요한 알고리즘으로 알려져 있으며, 이를
설계하기 위한 기법에 관심을 기울이고 있다.
그 모델 중 하나인 Inception 모델은 이전의 구조인 Network-in-network 에서 영감
을 받았으며 2014 년의 GoogLeNet(Inception V1)을 시작으로 Inception V2 와
Inception-V3 그리고 InceptionResNet 으로 개선되었다.
Inception 모듈은 Convolution 과 유사하지만 적은 파라미터 수로도 학습할 수 있
는 것으로 나타났다.
이 Inception 모델을 기반으로 한 Xception 은 Feature map 에서 cross-channels
corrlation 과 spatial correlation 을 분리하여 작동할 수 있다는 가설을 세운다. 다시
말해 Xception 은 Extreme Inception 의 별칭으로, 이 강력한 분리구조를 Extxreme
하다고 저자는 말하였다.
3. Alogorithm
A. Inception
Conv layer 는 2 개의 spatial dimension(width, height)과 channel dimension로 이루어진 3D 공간에
대한 filter 를 학습하려고 시도한다. 따라서 single convolution kernel 은 cross-channel correlation
과 spatial correlation 을 동시에 mapping 하는 작업을 수행한다. Convolution 의 size 를 하나만 사
용하고, pooling 작업을 하지 않는 단순화 된 Inception module 을 고려하면 Figure.1(a)와 같다. 위
의 module 은 결국 large 1x1 convolution 을 수행하고, output channel 들이 겹치지 않는 부분에
대한 spatial convolution 이 오는 형태로 재구성을 하면 Figurd.1(b)와 같이 표현할 수 있다.
Figure 1(a) Figure 1(b)
4. B. Xception and Depth-wise Separable Conbolution
위의 Figure1(b)의 가설에 기반한 Extreme version Module 인 Xception 은 1x1 convolution 으로 동일하게
spatial correlation 을 분리하여 mapping 하도록 한다는 것이 Xception Module 의 핵심이다.
이 Xception 은 Depth-wise Separable Convolution 과 아주 유사하게 동작한다.
Xception 은 Depthwise separable convolution 이라는 개념과 아주 유사한데, 이 모델은 기존의 1x1->3x3 순
서를 3x3->1x1 로 변경한 것으로 다시 말해, channel-wise 의 연산을 수행한 뒤 pointwise 연산을 수행한 것
이다.
Depth-wise Separable Convolution 은 Depthwise convolution 과 Pointwise convolution 각각을 합친 개념이다.
Depth-wise convolution 은 각 데이터들의 channel 마다의 spatial feature 을 추출한 것이다. 그렇기 때문에
input 과 output 의 channel 수는 같아진다. Pointwise Convolution 은 spatial feature 은 다루지 않고 channel
들에 대한 연산만 수행을 하는 방식이다. 다시 말해, Xception 은 각 channel 에 대해 독립적으로 spatial
convolution 이 수행되고 그 후에 pointwise convolution 이 이어지는 형태라고 볼 수 있다. 이러한 방식은 기
존의 convolution 과 유사하게 작동되지만 파라미터의 수와 연산량이 훨씬 적다.
5. B. Xception and Depth-wise Separable Conbolution
Figure 2. Xception moudle Figure 3. Depth-wise Separable Convolution
6. MODEL IMPLEMENTATION
Xception 은 36 개의 conv layer 로 feature extration 을 수행하며 Figure 3 과 같이 세
개의 Entry flow 를 시작으로 8 회 반복되는 iddle flow 를 거치고 마지막으로 exit
flow 를 거친다.
Flow 의 Architecture 는 Figure 4와 같다.
위 Architecture 을 바탕으로 구현한 코드는 다음과 같다.
Figure 4(b)는 Entry flow 4(c)는 Middle flow 4(d)는 Exit flow 함수이고 4(e)는 최종적
으로 구현된 함수들을 호출하는 그림이다.
Xception 의 장점으로 제시된 파라미터의 수가 적다는 것을 직접 확인할 수 있었
다.