본문 바로가기
AI 논문 리뷰(AI Paper Review)/컴퓨터비전(Computer Vision)

[논문정리] ECA-Net: Efficient Channel Attention for Deep Convolutinoal Neural Networ

by stevenkim_ 2023. 9. 1.

*본 내용은 논문의 상세한 분석이 아닌, 간단한 복기용 정리입니다.
 
 

Introduction

ECA Net은 SENet을 개선한 모델입니다.
https://stevenkim1217.tistory.com/entry/%EB%85%BC%EB%AC%B8%EC%A0%95%EB%A6%AC-SENet-Squeeze-and-Excitation-Networks

 

[논문정리] SENet: Squeeze and Excitation Networks

*본 내용은 논문의 상세한 분석이 아닌, 간단한 복기용 정리입니다. Method SENet은 크게 Squeeze와 Excitation 과정으로 나누어집니다. Squeeze: 쥐어짜고, Excitation: 활성화하는 네트워크입니다. 대략적인

stevenkim1217.tistory.com

 
 
아까 SENet 설명에서 연산량을 줄이고 일반화를 더 잘 해주기 위해서 Bottle Neck 구조로 차원을 낮춰줬습니다.
근데 이 과정이 오히려 채널과 가중치 사이의 interaction에 피해를 입힌다고 합니다.
그래서 이 ECA Net은 이러한 차원 축소가 일어나지 않게, local cross-channel interaction 이라는 방법을 제시합니다.
 


 

SE Net에서는 맨 처음 Global Average Pooling을 거치고, FC Layer을 두개를 거쳐서 가중치를 계산합니다.
근데 아까 설명했듯이 이 사이에서 hidden layer의 개수를 줄여 차원을 축소합니다.
논문 그대로의 워딩을 말씀드리면, 단일 Fully Connected Layer에서는 모든 채널을 선형결합해서 직접적으로 가중치를 예측한다면, SENet은 채널의 Feature을 저차원 공간에 투과한 후에 다시 매핑하기 때문에 가중치 사이에 연결관계가 간접적으로 바뀐다” 라고 합니다.
근데 이 말을 간단히 해석해보자면,  "Excitation 과정에서 ReLU를 한 번 거친 결과를 가지고 Fully connected layer에 집어넣어 가중치를 구하기 때문에 가중치가 정확하지 않다." 정도로 해석했습니다.
 


 

Method

ECA-Net: Local Cross-Channel Interaction

ECA-Net도 Global Average Pooling을 통해서 Squeeze 작업은 똑같이 합니다.
축약된 feature map인 y에 바로 가중치를 곱해 시그모이드를 구한 것입니다.
여기서 W는 이 논문에서 이것저것 실험했는데, 결국 1D Convolution을 의미합니다.
여기서 C1D가 1D Convolution을 의미합니다. 여기서 C1D옆에 작은 k가 Convolution의 커널 사이즈를 의미하는데요. 이 k를 통해서 컨볼루션 적용 범위를 찾아냅니다.
K는 쉽게 말하면 특징을 얼만큼씩 볼거냐 라는 말이고, 여기서 interaction 적용 범위인 k는 채널의 차원인 C에 비례합니다. 수식은 아래 그림의 (1)번과 같습니다.
 

ECA-Net: Local Cross-Channel Interaction

 
그런데 이 매핑이 너무 간단한 선형 함수라서 interaction의 커버 범위를 정하는데 너무 한정적입니다.
선형함수로 관계를 표현하는 것에는 한계가 있다는 말입니다. 그래서, 실험자들이 C를 일반적으로 2의 배수로 설정하는 것에 착안해서 아래와 같이 비선형적으로 설정했습니다.
이 (2)번 수식을 C에 대한 함수로 바꾸면, (3)번 수식이 나옵니다.
참고로, 절댓값 표시에 odd라고 적힌 표기는 가장 가까운 홀수값을 의미합니다. 
여기서 실험을 거쳐서 최적의 값으로 감마는 2, 알파벳 b는 1로 설정합니다.
따라서, 여기 그리스문자 “프사이”로 비선형 매핑을 거치면 고차원의 채널은 더 넓은 범위로, 저차원의 채널은 더 적은 범위로 interaction할 수 있습니다.
 


 
정리하면, 1D Convolution을 통해 채널 어텐션을 하는데,
이때, 커널 크기 k는 비선형 매핑함수를 통해서 이미지의 차원에 따라 유동적으로 적응적으로 조절하는 모듈이 ECA-Net 입니다.
고차원 채널이면, 넓은 범위의 컨볼루션을 적용하고, 저차원 채널이면 좁은 범위의 컨볼루션을 적용합니다.
 


추가)

여기서 y에 곱해주는 W가 사실은 “띠행렬”입니다.

띠행렬

띠행렬은 블록행렬과 비슷한데, 0이 아닌 성분이 주대각선 주변에 집중되어 있는 행렬입니다.
여기서 이 블록 대각행렬이나 띠행렬의 경우, convolution 측면에서 보면 group convolution에 해당하고,
group convolutoin은 고정된 수의 그룹에 대해

  • 고차원 채널이면, 넓은 범위의 컨볼루션을 적용하고,
  • 저차원 채널이면 좁은 범위의 컨볼루션을 적용합니다.

즉, 채널과 범위가 비례한다는 얘기입니다.