Abstract

The central building block of convolutional neural networks (CNNs) is the convolution operator, which enables networks to construct informative features by fusing both spatial and channel-wise information within local receptive fields at each layer. A broad range of prior research has investigated the spatial component of this relationship, seeking to strengthen the representational power of a CNN by enhancing the quality of spatial encodings throughout its feature hierarchy. In this work, we focus instead on the channel relationship and propose a novel architectural unit, which we term the “Squeeze-and-Excitation” (SE) block, that adaptively recalibrates channel-wise feature responses by explicitly modelling interdependencies between channels. We show that these blocks can be stacked together to form SENet architectures that generalise extremely effectively across different datasets. We further demonstrate that SE blocks bring significant improvements in performance for existing state-of-the-art CNNs at slight additional computational cost. Squeeze-and-Excitation Networks formed the foundation of our ILSVRC 2017 classification submission which won first place and reduced the top-5 error to 2.251%, surpassing the winning entry of 2016 by a relative improvement of ∼25%. Models and code are available at https://github.com/hujie-frank/SENet.


CNN 구성에서 핵심 기능은 각 layer의 receptive field에서 공간적, 채널별 정보를 혼합하는 체계로 구성하는 것이다.

이전에 수행한 광범위한 연구는 두 가지 관계의 공간적 요소를 조사했고, 계층적 특징 전반에 걸쳐 공간 인코딩의 품질을 향상시킴으로써 CNN의 표현력을 강화하고자 했다.

이 논문은 채널별 관계를 살펴보는 것 대신에 채널 간의 상호의존성을 명시적으로 모델링하여 채널별로 추출하는 특징을 재조정하는 새로운 아키텍쳐 단위인 SE(Squeeze-and-Excitation) block을 소개한다.

우리는 이 block을 쌓은 SENet 아키텍처가 서로 다른 데이터셋에서 효율적으로 일반화할 수 있다는 것을 확인했다.

게다가 SE block은 약간의 계산비용이 추가되지만 SOTA 모델에 적용했을 때, 성능적으로 주요한 향상을 보여주었다.

ILSVRC 2017에서 우승을 차지했고, 2016년 우승자보다 25%의 차이를 보여주었다.


요약

  • 최근 CNN에서의 연구는 특정 아키텍처를 통해 공간 정보를 손실하지 않고 특징을 잘 포착할 수 있도록 도와주는 다양한 아키텍처를 모델에 통합하고 있다. 예를 들면, inception module은 다양한 크기의 컨볼루션을 사용하였다.
  • SE block의 사용을 통해 채널별 상호의존성을 모델링하여 CNN의 표현을 강화하고, 성능을 향상시키는 것이 목표이다. 또, 유용한 정보를 선택적으로 강조하기 위한 전역 정보를 다시 생성해내는 작업을 수행하는 메커니즘을 소개한다.
  • SE block은 밑의 그림과 같으며, 매우 단순하고, 다른 SOTA 모델의 모듈과 대체하여 사용할 수 있고, 성능을 향상시킬 수 있다.(squeeze --> excitation)

SE Block

  • 컨볼루션을 통과한 output U는 먼저 squeeze 연산을 수행하게 되는데, squeeze 연산은 GAP(Global Average Pooling)을 통해 전역 공간 정보를 다룰 수 있게 한다. (여기서는 GAP를 사용했지만, 다른 channel descriptor를 사용해도 된다고 논문에 언급되어 있다) 단순하게 생각하자면 GAP를 사용하는 이유를 떠올려보자.

squeeze

  • excitation 연산은 시그모이드 함수를 활용한 게이트 메커니즘을 사용하는데, 여기서 차원 감소를 위해 reduction ratio r을 적용한 두 개의 Fully connected layer를 사용한다. squeeze와 excitation 연산을 거친 최종 output U는 rescaling된 결과로 반환된다. reduction ratio default value는 16이다.

excitation

  • 최종적으로 논문에서 제안된 순서는 [GAP -> FC -> ReLU -> FC -> Sigmoid]가 된다. 논문에 나와있는 SE-Inception module은 다음 그림에서 볼 수 있다.

SE-Inception Module

  • 위와 같이 SE-block은 유명한 Inception 계열 또는 ResNet 계열에도 적용할 수 있어 매우 유연하다는 점을 강조한다.
  • SE block을 적용한 ResNet, Inception 등 모델에서는 base 모델보다 향상된 성능을 보여주었으며, 아주 약간의 complexity 증가로 매우 효율적인 구조임을 증명한다.

Performance and Complexity

또, CIFAR-10, CIFAR-100 등 데이터셋에서의 성능 실험과 SE block이 가지는 여러 가지 파라미터에 대해 추가 실험을 진행하여 해당 결과를 논문에서 공유하고 있다.

GAP 부분을 1x1 컨볼루션으로 교체하고(이를 NoSqueeze라고 한다) 실험한 결과 GAP가 더 우수한 결과를 보여주었다.

마지막으로 논문의 끝에서 사용한 SE block의 activation의 상태변화를 보여주는데, 모델의 후반부로 갈수록 SE block의 의미가 감소하는 것을 보여준다. 밑의 그림에서 SE_5_2와 SE_5_3은 클래스별로 그래프의 모양이 거의 다르지 않은 것에서 이를 생각해볼 수 있다.
SE block은 Input을 추론하기 위한 중요한 특징을 추출하는 channel에 scale weight를 부여해서 더욱 강조하겠다는 의미기 때문에 전자 그래프처럼 클래스마다 activation 그래프의 모양이 서로 달라야 정상적으로 작동하고 있음을 알 수 있다. 따라서, 이를 생각해보면 모델 후반부에 SE block을 사용하지 않음으로써 성능은 그대로 유지하되 model complexity는 감소시킬 수 있음을 알 수 있다(모델 파라미터가 더 줄어든다는 의미).

Excitation Activation