728x90
반응형

키워드

1. 깊이별 분리 합성곱을 사용하여 Inception 아키텍처를 개선.

2. "Xception: Deep Learning with Depthwise Separable Convolutions" (2017)

3. Xception, Inception, Depthwise separable convolution

Inception Module 분석

  Xception은 Inception 모듈에서 영감을 받은 아키텍처이다. Inception 모듈을 depthwise separable convolution으로 대체한 형태이며 Inception-V3와 동일한 파라미터 수를 가지고 있다. 이에 Inception-V3는 이후 실험의 base network로 활용 예정이며, capacity 차이로 인한 결과 왜곡 없이 평가 결과를 분석 가능하다. Depthwise separable convolution에 대한 자세한 설명은 MobileNet 포스트에서 확인 가능하다. 포스트 링크

Xception
Inception 기본 모듈

  위 그림은 Inception V3 아키텍처에서 볼 수 있는 Inception 모듈의 표준 형식으로, Inception 모델은 여러 모듈이 스택으로 이루어진 구조이다. 이 모듈은 개념적으로 convolution과 유사하지만, 경험적으로 더 적은 파라미터로 더 풍부한 feature를 학습하며, 단일 Conv 프로세스를 명시적으로 분해하여 더 쉽고 효율적으로 만들어 준다고 볼 수 있게 해준다.

Xception
Inception 모듈의 "극단적"으로 변형한 과정 (좌 -> 우)

  Inception의 개념을 기반하여 동일하지만 더 “극단적”으로 표현한 예시이다. 이를 통해 Inception은 채널 간 상관 관계(1x1)를 계산하고 공간적 상관 관계(3x3)는 분리하여 계산했다고 해석할 수 있다. Xception에서 사용한 depthwise separable convolution 도 동일한 관점으로 연산을 수행한다. 다만 Inception과 depthwise separable convolution의 차이점은 크게 2가지가 있음.

  1. 1x1, 3x3의 연산 순서가 다르다. 다만 각각의 목적이 동일하기에 결과에 큰 영향을 주지 않는다.
  2. Inception은 non-linearity 가 뒤따르지만, depthwise separable convolution은 계산하지 않는다. 이 차이는 성능의 차이를 보여주며 관련 내용은 하단 “결과”에 정리되어 있다.

  결론적으로 Xception은 모듈 간 동일한 해석을 바탕으로 Inception 모듈을 대체하여 depthwise separable convolution이 스택이 되는 아키텍처를 구축하였다.

Arcitecture

Xception
Xception Arcitecture

  "Extreme Inception"의 약자로 Xception이라고 명명하였으며, Depthwise separable convolution를 기반으로 36개의 conv 레이어가 14개의 모듈로 구성되어있다. ResNet의 skip connection을 추가하였으며, 선택적으로 FC 레이어를 추가할 수 있다. 

  Regularization은, MobileNet의 컨셉과 달리 속도는 차순위이기에 L2 norm 사용하였다. Classifier 직전 dropout 0.5 포함하였으나, JFT 데이터셋과 같이 크기가 큰 경우에는 제외할 필요가 있다. 마지막으로 Inception의 경우 효과적인 훈련을 위해 auxiliary loss tower 사용하나 모델의 단순성 때문에 포함하지 않는다.

728x90

결과

분류 성능

Xception
Xception 분류 성능

  Xception 아키텍처는 ImageNet 데이터셋과 크기가 더 큰 JFT 데이터셋에서 모두 성능이 향상되었다. 학습 속도 또한  Inception V3와 비교하고 개선됨을 확인할 수 있었다.

Xception
(좌) ImageNet ACC (중) FC 없는 JFT ACC (우) FC 있는 JFT ACC

크기와 속도

Xception

  .V3 및 Xception의 파라미터 개수 및 초당 훈련 단계 횟수이다. 두 아키텍처 모두 거의 동일한 수치를 보이는 상황에서, ImageNet과 JFT에서 개선은 Xception이 파라미터를 효율적으로 사용했다고 해석할 수 있다.

Skip connection의 영향

Xception

  Skip connection의 이점을 정량화하기 위해 동일한 Xception 아키텍처 및 데이터셋에서 skip connection의 유무로 벤치마킹을 진행하였다. 결과를 보면 Skip connection은 수렴을 돕는데 필수적이며. 속도와 측면에서 모두 유리한 효과가 있음을 알 수 있다.

Pointwise convolution 후 activation의 효과

Xception

  Depthwise separable convolution은 depthwise convolution과 pointwise convolution 사이에 non-linearity가 포함되어 있다. 그러나 실험 결과를 통해 비선형성이 없으면 더 빠른 수렴과 더 나은 최종 성능을 제공하는 것으로 확인되었다. 다만 depthwise convolution 후에는 적용되는 것이 매우 중요하다. “1개의 채널만 존재하는 feature” 같이 얕은 정보에 non-lineartity를 취하면, 정보가 손실되기 때문에 이러한 결과가 나온 것으로 예상한다.

Reference

논문 원본 : https://arxiv.org/abs/1610.02357

728x90
반응형

'딥러닝 > Classification' 카테고리의 다른 글

[Classification] EfficientNet  (0) 2024.08.17
[Classification] ResNeXt  (0) 2024.08.15
[Classification] MobileNet  (0) 2024.08.08
[Classification] SqueezeNet  (0) 2024.08.06
[Classification] DenseNet  (0) 2024.08.03

+ Recent posts