하루에 논문 한편씩, 핵심만 읽고 요약하기 : Paper 07

Paper Link : Link (CVPR2020)



Official Code : https://github.com/BangguWu/ECANet



1. Abstract

최근에 channel attention은 CNN의 성능을 높이는데 크게 기여하였습니다. 하지만, 대부분의 방법은 복잡한 방법으로 인하여 불가피하게 모델의 복잡도(complexity)를 높였습니다. 성능과 복잡도 사이의 trade-off를 극복하기 위하여 해당 논문에서는 적은 수의 parameters 만으로도 뚜렷한 성능 향상을 보인 Efficient Channel Attention (ECA) module을 제안합니다. SENet의 channel attention module을 분석한 결과, 1) dimensionality reduction을 피하는 것이 channel attention을 학습하는 데에 중요하다는 것과 2) 적절한 채널 간의 상호작용(cross-channel interaction)이 모델의 복잡도를 매우 낮춤과 동시에 성능은 유지할 수 있다는 것을 실험적으로 확인하였습니다. 따라서, 1D convolution을 통해 효율적으로 구현할 수 있는 dimensionality reduction이 없는 local cross-channel interaction을 제안합니다.




2. Introduction


Efficient Channel Attention (ECA)를 나타낸 그림은 위와 같습니다. 

Dimensionality reduction 없이 channel-wise global average pooling (GAP) 다음에

각각의 channel과 해당 channel의 k neighbors을 바탕으로 local cross-channel interaction합니다.





기존의 방법들과 ECA를 3가지 측면에서 비교한 표입니다.

ECA만 dimensionality reduction이 없고 cross-channel interaction이 존재하며

매우 가벼운 module인 것을 확인할 수 있습니다.



ECA가 parameter수 대비 성능의 향상 폭이 매우 큰 것을 확인할 수 있습니다.




3. Proposed Method


Pytorch로 구현된 코드는 위와 같습니다.




코드를 중심으로 ECA의 자세한 내용을 살펴보도록 하겠습니다.

결국 Figure 2.에서 확인할 수 있듯이 우리가 설정해주어야 하는 값은 kernel size인 k입니다.


코드에서 k를 구하는 식을 살펴보면 t라는 값에 의해 결정되는 것을 알 수 있고

t는 바로 위의 줄에서 C, b, 그리고 gamma에 의해 결정되는 것을 확인할 수 있습니다.



이를 유도하는 과정을 살펴보도록 하겠습니다.


쉽게 생각했을 때 interaction의 포함하는 범위(즉, kernel size k)는

channel의 수인 C와 비례하는 것이 합리적입니다.


이때 k와 C 사이의 mapping function을 라고 할 때 아래와 같이 나타낼 수 있습니다.




생각할 수 있는 가장 간단한 함수는 linear function 인데,

이는 너무 간단하여 한정적입니다.



따라서 C를 일반적으로 2의 배수로 설정하는 것에 착안하여

아래와 같이 non-linear function으로 설정할 수 있습니다.




이때 C에 대한 함수로 바꾸면 아래와 같이 나타낼 수 있습니다.






4. Experiments


여러가지 backbone model에 다양한 channel attention module을 적용하였을 때의 모델 복잡성(complexity), 속도 (FPS), 그리고 정확도를 정리한 표입니다.

ECA를 사용하였을 때, 모델 복잡도의 증가는 미약하지만

이에 비해 매우 좋은 성능을 보여주는 것을 확인할 수 있습니다.






다양한 크기의 k의 결과를 비교한 그래프입니다.

이때 Adaptive로 되어 있는 결과는 3. Proposed Method에서 channel size C에 따라 k가 결정되었던 경우이고

나머지 3, 5, 7, 9는 adaptive와의 비교를 위해 k를 특정 크기로 고정한 상태로 학습한 것입니다.

그래프를 통해 channel size에 따라 k를 adaptive하게 적용한 것이 성능이 가장 좋은 것을 확인할 수 있습니다.







ImageNet에 대해서 S.O.T.A 모델과 비교한 결과입니다.






Image Classification이 아니라 Object Detection에 ECA를 적용한 결과입니다.





이번에는 Instance Segmentation에 ECA를 적용한 결과입니다.