2021.12.9 Block Attention 모듈

Chanyong·2021년 12월 9일
0

TIL

목록 보기
2/7

CAPSTONE 하는 도중, Attention 모듈을 CNN에 접목시킨 Block Attention Module을 찾았다.

논문의 이름은 "CBAM: Convolutional Block Attention Module" 이고, 링크는 https://arxiv.org/pdf/1807.06521.pdf

ResNet의 Residual Block에 적용하면 아래 그림과 같다.

이 때 Channel과 Spatial attention의 두 가지 모듈을 사용한다.

1. Channel Attention Module

그림은 다음과 같다.

수식으로 나타내면 다음과 같다.

네트워크 중간에서, 입력 Feature Map F가 주어졌을 때, 채널방향 Average Pooling과 Max Pooling을 한 뒤 각각 2 layer의 FC를 통과시키고 (단, hidden layer는 채널을 r배 감소시키고 ReLU 취함), 그 결과를 더해준 뒤 sigmoid를 취하여 Channel Attention Module을 만든다.

2. Spatial Attention Module

그림은 다음과 같다.

수식으로 나타내면 다음과 같다.

공간 방향 MaxPool과 AvgPool시킨 뒤, 둘을 concat 한다. 그 다음 7x7 conv layer를 통과시키고 sigmoid를 취하여 Spatial Attention Module을 만든다.

3. Overview of CBAM

위에서 얻은 2가지 (Channel, Spatial Attention Module)을 serial하게 Feature Map과 곱하여 정제된 FMap을 얻는다.
그림은 다음과 같다.

정제된 FMap을 시각화하면 다음과 같다.

4. ResNet + CBAM 구조

ResNet의 layer 쌓는 부분은 다음과 같다.

여기서 block은 BasicBlock 또는 BottleneckBlock이다.

ResNet의 forward는 다음과 같다.

Reference

https://github.com/Jongchan/attention-module
https://arxiv.org/pdf/1807.06521.pdf

profile
AI Accelerator 연구

0개의 댓글