
→ CBAM은 BAM과 마찬가지로 C, S Attention을 적용하고자 하는 Module이다.

Channel Attention과 Spatial Attention이 직렬로 연결된 구조이다.
먼저 Channel Attention으로 ‘무엇’에 집중할 건지 학습 후 나온 중간 feature map에 다시 Spatial Attention을 통해 ‘어디’에 집중할 것인지를 학습한다.
$$ F'=M_c(F)⊗F, \\ F''=M_S(F')⊗F' $$
Channel Attention Module (채널 별로)

BAM은 Channel별로 Average Pooling만 했지만 CBAM은 Max Pooling까지 적용한다.
정보를 압축한 표현은 Average Pooling이 가장 중요한 정보를 희석시키지 않은 표현은 Max Pooling이 확보한다는 생각.
두 Pooling을 병렬 연산(1X1XC) → MLP → Element-wise sum. → Sigmoid(1X1XC) ⇒ Attention Score
→ 여기서 $MLP$는 AvgPool과 MaxPool에 공통 적용되는 동일한 신경망이므로 동일한 weight!
$$ M_c(F)= \sigma(MLP(AvgPool(F))+MLP(MaxPool(F)))\\ =\sigma(W_1(W_0(F^c_{avg}))+W_1(W_0(F^c_{max}))) $$
Spatial Attention Module (채널 축으로)

$$ M_s(F)= \sigma(f^{7X7}([AvgPool(F);MaxPool(F)]))\\ =\sigma(f^{7X7}([F^s_{avg};F^s_{max}])) $$