[CVPR 2017] Xception: Deep Learning with Depthwise Separable Convolutions

롬롬·2022년 3월 30일
0

About Paper

Xception은 "eXtreme Inception"의 약자로, Franc¸ois Chollet(Google, Inc)가 2017년에 발표했습니다. 이름에서 알 수 있듯이, Inception에 기반하였으며, Image Classification 분야에서 Google의 Inception V3보다 좋은 성능을 낸 모델로 알려져 있습니다.

그러면 이제, 논문 리뷰를 시작하겠습니다.


Abstract

  • 본 논문에서는 Inception 모듈을 일반적인 convolution과 depthwise separable convolution의 중간 단계로 해석할 것을 제시함
  • depthwise separable convolutiondepthwise convolution 뒤에 pointwise convolution이 나오는 구조로, 가장 많은 수의 tower가 있는 Inception 모듈로 볼 수 있음
  • 새로운 deep convolutional neural network 아키텍처를 제안함 → Inception 모듈이 depthwise separable convolution으로 대체
  • ImageNet 데이터셋에서 Inception V3보다 약간 좋은 성능 향상, 대규모 이미지 데이터셋(3.5억개의 이미지와 17,000개의 class로 구성)에서는 Inception V3의 성능을 크게 능가
  • Inception V3와 거의 동일한 수의 parameter를 가지므로, 성능 향상은 capacity의 증가가 아닌 parameter를 보다 효율적으로 활용으로부터 얻음

1. Introduction

  • CNN은 최근 몇 년 사이에 컴퓨터 비전의 마스터 알고리즘으로 떠올랐는데, 특징 추출을 위한 Convolution과 spatial sub sampling을 위한 Max-pooling operation단순하게 쌓은 LeNet 구조의 모델에서 시작함
  • LeNet 모델에서 아이디어를 얻어, Max-pooling 사이에 Convolution을 여러 번 반복하는 AlexNet 아키텍처로 세분화 (→ 모든 공간 스케일에서 풍부한 특징을 학습할 수 있음)(2012)

			Figure 1. A canonical Inception module(Inception V3)
  • Inception 아키텍처라는 새로운 스타일의 네트워크가 등장 → 위 그림 참고
    • Network-In-Network 아키텍처에서 영감받음
    • Szegdy et al가 소개한 GoogLeNet(Inception V1)은 추후에 Inception V2, Inception V3, 그리고 가장 최근에 등장한 Inception-ResNet으로 개선됨
    • Inception style models의 기본 구성 요소는 인셉션 모듈이며, 단순한 컨볼루션 레이어를 쌓아 올린 이전의 VGG 스타일 네트워크에서 벗어남
    • 개념적으로 convolutional feature extractor와 유사하지만, 경험적으로 더 적은 매개변수로 더욱 풍부한 표현을 학습할 수 있음 → 장점?!

1.1. The Inception hypothesis

  • 컨볼루션 층은 3차원 공간(W*H*C)에서 필터를 학습 → 단일 컨볼루션 커널cross-channel correlationsspatial correlations동시에 매핑
  • 일반적인 Inception 모듈은 먼저 1x1 컨볼루션 세트를 통해 cross-channel correlations을 살펴보고, 입력 데이터를 원래 입력 공간보다 작은 3 또는 4개의 별도 공간으로 매핑한 다음, 일반 3x3 또는 5x5 컨볼루션을 통해 이러한 작은 3D 공간의 모든 상관 관계를 매핑
  • Inception의 근본적인 가설은 cross-channel correlationsspatial correlations독립적으로 계산하고 mapping하는 것

				Figure 2. A simplified Inception module

		Figure 3. A strictly equivalent reformulation of the simplified Inception module
  • 단순화한 인셉션 모듈(Figure 2)에서 Figure 3로 재구성함 → 출력 채널의 겹치지 않는 segment에서 동작하는 공간적 변환에 이어 큰 1x1 변환
  • Inception hypothesis보다 더 강력한 가설을 세우고 cross-channel correations와 spatial correlations를 완전히 분리해서 매핑할 수 있다는 가정이 합리적인가에 대한 질문 제기

1.2. The continuum between convolutions and separable convolutions

  • 인셉션 모듈의 “extreme” 버전은 cross-channel correlations를 매핑하기 위해 1x1 컨볼루션을 사용한 다음 모든 출력 채널의 spatial correlations를 별도로 매핑
  • TF 및 Keras와 같은 딥러닝 프레임워크에서 depthwise separable convolution으로 구성되며, 이이서 pointwise convolution(1x1 컨볼루션)이 출력 채널을 project함spatially separable convolution과 다름!
  • 인셉션 모듈의 “extreme” 버전 vs separable convolution
    • 연산 순서 - separable convolution은 일반적으로 channel-wise spatial convolution을 먼저 수행한 후 1x1 convolution을 수행; Inception 모듈은 1x1 convolution 먼저 수행
    • 첫 번째 연산 후 비선형성 유무 - Inception에서는 두 operation 모두 ReLU 비선형성이 뒤따르지만, separable convolution은 비선형성 없이 구현
    • 연산 순서는 크게 중요하지 않지만, 비선형성 유뮤의 차이는 문제가 될 수 있음 → Experimental Evaluation에서 다룰 예정
  • 일반적인 Inception 모듈과 depthwise separable convolution 사이의 다른 intermediate formulation도 가능하다는 점에 주목
    • 별도의 스펙트럼 존재 (spatial convolutions를 수행하기 위해 사용되는 독립적인 channel-space segment의 수에 의해 파라미터화됨)
  • depthwise separable convolution을 스태킹한 모델을 구축함으로써, Inception 아키텍처 제품군을 개선할 수 있을 것이라고 제안
  • 본 논문에서는 Inception V3의 parameter의 수와 비슷한 CNN 아키텍처를 제시하고, 두 가지 대규모 이미지 분류 작업에서 Inception V3와의 성능 비교함

2. Prior Work

  • Convolutional Neural Network, 특히 VGG-16은 우리가 제안한 아키텍처와 몇 가지 측면에서 유사
  • Inception architecture family는 convolution을 여러 개의 branch로 factoring하여, channel들과 그 공간에서 연속적으로 동작
  • spatial separable convolutions은 오래전부터 사용되어 왔지만, depthwise separable convolutions는 더 최근 버전임
  • Laurent Sifire는 2013년에 depthwise separable convolution를 개발했으며, 이를 AlexNet에서 사용함 → 정확도 약간 향상, 수렴 속도 크게 향상, 모델 크기 축소
  • 이후, depthwise separable convolution을 Inception V1과 Inception V2의 첫 번째 계층으로 사용
  • Google에서 Andrew Howard는 depthwise separable convolution을 사용하여 MobileNets라는 효율적인 모델 도입
  • 2014년 진 외 연구진들과 2016년 왕 외 연구진들도 depthwise separable convolution을 사용하여 CNN의 크기와 계산 비용을 줄이는 것을 목표로 관련 연구 수행
  • He가 소개한 Residual Connections도 본 논문에서 제안하는 아키텍처에 광범위하게 사용

3. The Xception architecture

  • 제안된 아키텍처인 Xception은 “eXtreme Inception”의 약자
  • 본 논문의 가설 : CNN의 feature map에서 cross-channel correlationsspatial correlations을 완전히 분리하여 매핑 가능
  • Xception 아키텍처에는 feature 추출 기반을 형성하는 36개의 컨볼루션 레이어가 있는데, 이는 14개의 모듈로 구성되어 있으며, 첫 번째 모듈과 마지막 모듈을 제외한 나머지 모듈의 주변에 linear residual connection이 있음
  • 컨볼루션 베이스에는 Logistic Regression layer이 뒤따르며, 선택적으로 logistic regression layer 앞에 fully-connected layers를 추가할 수 있음
  • 간단하게 정리하면, Xception은 depthwise separable convolution을 residual connection과 함께 linear stacking한 구조 → 정의 및 수정 용이

	Figure 5. Xception 아키텍처 : 데이터가 Entry flow를 통과한 후, 
    8번 반복되는 Middle flow를 지나, 최종적으로 Exit flow를 통과함. 
    그림에는 나오지 않지만, 모든 Convolution과 SeparableConvolution 층
    뒤에 batch normalization이 계속됨. 모든 SeparableConvolution 층은
    1 깊이의 multiplier 사용.

4. Experimental evaluation

  • Xception과 Inception V3를 비교하기로 선택 → 규모 유사성 때문
  • 잘 알려진 ImageNet 데이터셋(1000-class single-label 분류) JFT 데이터셋(17,000-class 다중 분류) 사용

4.1 The JFT dataset

  • JFT는 large-scale image classification을 위한 Google의 internal dataset으로, Hinton 등이 처음 도입함
    • 데이터는 17000-class label로 분류 된 3.5억개의 고해상도 이미지로 구성
  • 학습 된 모델의 성능 평가를 위해, 보조 dataset인 FastEval14k를 사용
  • top-100 prediction에 대한 Mean Average Precision(MAP@100)으로 성능을 평가하고, MAP@100의 각 class에 기여도를 가중치로 부여하여, 소셜 미디어 이미지에서 해당 class가 얼마나 흔하게 사용되는지 추정
  • 이 평가 절차는 소셜 미디어 이미지에서 자주 발생하는 label의 성능을 측정하기 위한 것으로, Google의 프로덕션 모델에 중요하게 다뤄짐

4.2. Optimization configuration

  • ImageNet과 JFT에서는 서로 다른 optimization configuration을 사용
  • ImageNet
    • Optimizer : SGD
    • Momentum : 0.9
    • Initial learning rate : 0.045
    • Learning rate decay : decay of rate 0.94 every 2 epochs
  • JFT
    • Optimizer : RMSprop
    • Momentum : 0.9
    • Initial learning rate : 0.001
    • Learning rate decay : decay of rate 0.9 every 3,000,000 samples
  • 두 dataset 모두, Xception과 Inception-v3에 동일한 optimization configuration이 사용
    • Inception V3에서 최상의 성능이 발휘되도록 조정
    • Xception에 최적화 된 hyperparameter로 조정하려는 시도 X
  • inference time에 Polyak averaging을 사용하여 모든 모델 평가

4.3. Regularization

  • Weight decay
    • Inception V3는 rate가 4e-5인 weight decay(L2 regularization)을 사용 → ImageNet의 성능에 맞게 주의하여 조정
    • Xception은 rate가 1e-5인 weight decay(L2 regularization) 사용 → Inception V3와 동일하게 사용하기에는 적합하지 않음
  • Dropout
    • ImageNet - 두 모델의 Logistic regression layer 앞에 값이 0.5인 dropout layer를 추가
    • JFT - dropout 포함 X → 데이터의 크기를 고려했을 때 적절할 시간 안에 overfitting할 수 X
  • Auxiliary loss tower
    • Inception V3는 네트워크 초반부에 classification loss를 역전파하여, 추가적인 정규화 메커니즘의 역할을 하는 auxiliary loss tower를 선택적으로 포함 가능
    • 단순화를 위해, 어떤 모델에도 Auxiliary loss tower를 포함 X

4.4. Training infrastucture

  • 모든 네트워크는 TensorFlow 프레임워크를 사용하여 구현되었으며, 각각 60개의 NVIDIA K80 GPU에서 학습함
  • ImageNet 실험의 경우, 최상의 classification 성능을 달성하기 위해 synchronous gradient descent과 data parallelism 이용 → 약 3일 소요
  • JFT의 경우에는 학습 속도를 높이기 위해 asynchronous gradient descent 사용 → 1개월 이상 소요

4.5. Comparison with Inception V3

4.5.1 Classification performance

  • 모든 평가는 single crop과 single model에 대해 수행됨
  • ImageNet
    • ImageNet 결과는 test set이 아닌 validation set으로 측정함
    • Inception V3에는 auxiliary loss tower가 포함되어 있지 않으며, Xception이 Inception V3보다 약간 더 나은 성능을 보임

				Figure 6. ImageNet의 training profile
  • JFT
    • JFT에서의 Xception은 FastEval14k에 대한 MAP@100에서 4.3%의 상대적 개선을 보여줌
    • FC layer가 포함되지 않은 버전과, logistic regression layer 이전에 4096개의 노드로 이루어진 FC layer가 2개 포함 된 버전을 테스트함

				Figure 7. JFT의 training profile(without FC layers)

                Figure 8. JFT의 training profile(with FC layers)
  • Xception은 ResNet에서 보고 된 ResNet-50, ResNet-101, ResNet-152의 ImageNet classification 성능보다 우수
  • ImageNet보다 JFT 데이터셋에서 더 높은 성능을 보여줌 → Inception V3가 ImageNet 데이터셋을 중점으로 개발됐기 때문에, 디자인이 특정 작업에 과적합 된 것으로 보임
  • ImageNet에 적합한 하이퍼 파라미터를 튜닝한다면, 추가적인 성능 향상 효과를 얻을 수 있음

4.5.2 Size and speed

  • Inception V3와 Xception의 크기와 속도 비교
  • Parameter의 개수는 ImageNet에 대한 학습 모델에서 측정됐으며, 초당 training step(gradient update)은 ImageNet dataset에 대한 synchronous gradient descent 횟수를 측정함
  • 두 모델의 크기 차이는 약 3.5% 이내로 거의 비슷하며, 학습 속도에서는 Xception이 조금 느림
  • Depthwise convolution operation 수준의 engineering optimization이 이루어진다면, Xception이 Inception V3보다 더 빠르게 될 것으로 기대
  • 두 모델의 Parameter 수가 거의 동일하다는 것은, ImageNet과 JFT의 성능 향상이 capacity 증가가 아닌 모델의 parameter를 보다 효율적으로 사용함을 의미함

4.6. Effect of the residual connections

  • Xception 구조에서의 residual connection 효과를 정량화하기 위해, residual connection을 포함하지 않는 버전의 Xception을 ImageNet에 대하여 벤치마킹함
  • 수렴 속도나 최종 classification 성능면에서 residual connection은 반드시 필요 → residual 버전과 동일한 optimization configuration으로 non-residual 버전을 벤치마킹했기 때문에 차이가 더 크게 나온 것일 수 있음
  • residual connection은 depthwise separable convolution의 stack인 이 모델의 구축에 필수 조건은 X
  • non-residual VGG-style 모델의 모든 convolutional layer를 depthwise separable convolution layer로 대체했을 때, 동일한 파라미터 수에서 JFT의 Inception V3보다 뛰어난 성능을 보임

4.7. Effect of an intermediate activation after pointwise convolutions

  • intermediate non-linearity로 ReLU 또는 ELU의 포함 여부에 따른 효과를 실험적으로 테스트함
  • non-linearity의 부재로 인해 수렴 속도가 빨라지고 최종 성능이 향상됨
  • Inception module에 대한 Szegedy의 연구와 반대 결과
  • Inception module에 있는 deep feature space의 경우에는 non-linearity가 도움이 되지만, shallow feature space의 경우에는 오히려 정보 손실이 발생할 수 있음

5. Future Directions

  • 일반적인 convolution과 depthwise separable convolution 사이에 별도의 스펙트럼이 존재한다고 언급했는데, Inception 모듈이 이 스펙트럼의 한 지점임
  • 실험적인 평가에서 Inception 모듈의 extreme form, 즉 depthwise separable convolution이 일반적인 Inception 모듈보다 장점을 가질 수 있지만, depthwise separable convolution이 optimal이라고 할 수 X
  • 일반적인 Inception module과 depthwise separable convolution 사이에 위치한 스펙트럼이 추가적인 이점을 가질 수도 있음 → 향후 연구를 위해 남겨둠

6. Conclusions

  • Inception 모듈이 중간 지점에 위치해 있는 가운데, convolution과 depthwise separable convolution이 어떻게 양 극단의 스펙트럼에 위치해있는지 보여줌으로써, Inception module을 컴퓨터 비전 아키텍처에서 depthwise separable convolution으로 대체할 것을 제안
  • 이 아이디어를 바탕으로 Inception V3와 유사한 parameter 수를 가진 Xception이라는 새로운 아키텍처를 제시
  • Xception은 Inception V3와 비교했을 때, ImageNet 데이터셋에서 성능이 약간 향상되었고, JFT 데이터셋에서는 크게 향상됨
  • Depthwise separable convolution은 Inception module과 유사한 특성을 갖고 있음에도 일반 convolution layer만큼 사용하기 쉽기 때문에, 향후 CNN 아키텍처 설계의 초석이 될 것으로 기대됨

참고자료


첫 논문 리뷰이기 때문에, 아직 부족한 부분도 많고 수정해야할 부분도 많을 수 있습니다! 그런 부분들 발견하면 즉시 수정하겠습니다! 읽으면서 참고해주세요 :)

profile
🤗🤗🤗

0개의 댓글