- Convolution 종류
- 딥러닝
- Weight initialization
- object detection
- deep learning
- image classification
- LeNet 구현
- SPP-Net
- overfeat
- Optimizer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
I'm Lim
[논문 정리] Xception 본문
Paper
Chollet, François. "Xception: Deep learning with depthwise separable convolutions." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
Abstract
Xception은 Inception 모듈을 depthwise seperable convolution의 관점으로 바라본다. 이 관점으로 새로운 모듈을 만들고, 이를 적용시켜 Inception v3보다 성능을 높였다.
Xception은 Inception v3와 같은 수의 파라미터를 가지는데 성능이 더 높았다. 논문에서는 파라미터의 수가 같았기 때문에 Xception의 성능 개선은 표현력의 증가 덕분이 아니라 (increased capacity), 모델의 파라미터를 효율적으로 사용했다고 해석한다.
Introduction
1. The Inception hypothesis
CNN 모델의 입출력 데이터를 생각해보면 (H, W, C)의 구조로 3차원이라 볼 수 있다. 이는 Spatial dimension과 Channel dimension으로 나눠서 볼 수 있고, 그러므로 Conv 필터는 cross-channel correlation과 spatial correlation을 동시에 처리한다. 다시 말해, Conv 필터는 하나의 feature map의 상관관계를 구하는 것 (spatial correlation)과 여러 featue map간의 상관관계를 구하는 것 (cross-channel correlation)을 동시에 처리한다.
위의 관점에서 바라본다면, Inception module은 cross-channel correlation (1 x 1 Conv)과 spatial correlation (3 x 3 Conv , 5 x 5 Conv)을 독립적으로 연산하는 것과 동일하다. 그러므로, 사실상 Inception moule의 근본적인 가설은 Cross-channel correlation과 Spatial correlation을 분리해서 처리가 가능하다는 것이다.
기존의 Inception 모듈에서 Pooling을 빼고, 3 x 3 Conv를 하나만 쌓는 매우 간단한 버전의 Inception 모듈을 살펴보자.
위 module은 하나의 Channel의 개수가 큰 1 x 1 Conv (channel convolution)를 통과시킨 후, 채널이 겹치지 않게 쪼갠 뒤 3 x 3 Conv (spatial convolution)를 적용시켰다고 볼 수 있다. 이를 아래와 같은 그림으로 나타낸다.
2. The continuum between convolutions and separable convolutions
위의 설명에 따르면, 1 x 1 Conv 연산은 cross-channel correlation을 처리하는 연산으로 볼 수 있고, 3 x 3 Conv연산은 spatial correlation을 처리하는 연산으로 볼 수있다.
이러한 extreme한 Inception 모듈은 depthwise separable convolution과 거의 동일하다. Xception 모듈과 depthwise seperable convolution은 연산 순서의 차이만 존재하고, 이 차이는 무의미하기 때문에 그냥 depthwise seperable convolution을 사용하면 된다고 한다.
depthwise separable convolution은 depthwise convolution과 pointwise convolution으로 이루어진다.
1 ) depthwise convolution은 채널과 관계없이 spatial convolution을 진행하는 것을 뜻한다.
2 ) pointwise convolution은 입력 채널 공간을 다른 채널공간으로 사영시키는 역할을 한다 (쉽게 말해, 1 x 1 Conv연산).
여기서 Inception v2에서 했던 고민과 유사하게 1 x 1 Conv 연산 진행 후 activation function을 적용시키느냐 마느냐에 대한 고민이 생긴다. 이를 해결하기 위해, 논문에서는 실험을 진행하였고, 결과는 아래 그림과 같다.
그림을 요약하자면, depthwise convolution과 pointwise convolution 사이에 activation function을 적용시키지 않는 것이 학습 속도를 개선시킨다.
이러한 관점을 토대로, 본 논문에서는 Inception 모듈을 depthwise separable convolution으로 교체하였다.
The Xception architecture
위에서 보이다시피, Xception 구조는 매우 간단하게 구성된다. 이는 36개의 Conv 레이어가 14개의 모듈에 존재하는 구조다.
Details of Learning
1. The number of parameters
Xception 모델의 비교 모델로 Inception v3를 사용하였는데 파라미터의 수가 거의 유사했기 때문이라고 한다.
2. Optimization configuration
1 ) ImageNet : SGD // momentum : 0.9 // learning rate : 0.045 // learning rate decay : 2 epoch마다 0.94를 곱함.
2 ) JFT : RMSprop // momentum : 0.9 // learning rate : 0.001 // learning rate decat : 3백만 샘플마다 0.9를 곱함.
3. Regularization configuration
1 ) Weight decay : Inception v3 : 4e-5 (L2 norm) // Xception : 1e-5 (L2 norm)
2 ) Dropout : ImageNet 학습을 위해선 logistic regression layer에 0.5 // JFT는 dropout 안함.
3 ) Auxiliary loss : 기존 Inception v3에 있던 Auxiliary Classifier 제거
Comparison with Inception v3
1. Classification performance
ImageNet 데이터 학습시 Xception이 성능이 더 좋았다.
JFT 학습시 역시 Xception이 성능이 더 좋았다.
JFT 학습시에 학습 격차가 더욱 두드러졌는데, 저자는 Inception v3가 ImageNet 데이터셋에 특화되어 이 데이터셋에 overfit 되있을 것이라고 말한다.
2. Effect of the residual connections
Xception 모델에 residual connection을 하지 않으면 성능이 많이 떨어진다고 한다.
Discussion
Xception 모델은 고찰을 통해 "cross-channel correlation과 spatial correlation을 분리 가능하다"라는 가설을 통해 기존의 Inception 모듈의 성능을 개선시킨 논문이다.
'Classification' 카테고리의 다른 글
[논문 정리] PolyNet (0) | 2022.12.04 |
---|---|
[논문 정리] ResNext (0) | 2022.11.28 |
[논문 정리] SqueezeNet (0) | 2022.11.26 |
[논문 정리] DenseNet (0) | 2022.11.26 |
[논문 정리] Inception v4 (0) | 2022.11.20 |