iMTE

Grad-CAM Guided Channel-spatial Attention Module for Fine-grained Visual Classification 내용 정리 [XAI-13] 본문

Deep learning study/Explainable AI, 설명가능한 AI

Grad-CAM Guided Channel-spatial Attention Module for Fine-grained Visual Classification 내용 정리 [XAI-13]

Wonju Seo 2021. 6. 21. 14:33

논문 제목 : Grad-CAM Guided Channel-spatial Attention Module for Fine-grained Visual Classification

논문 주소 : https://arxiv.org/abs/2101.09666

 

Grad-CAM guided channel-spatial attention module for fine-grained visual classification

Fine-grained visual classification (FGVC) is becoming an important research field, due to its wide applications and the rapid development of computer vision technologies. The current state-of-the-art (SOTA) methods in the FGVC usually employ attention mech

arxiv.org

주요 내용 정리 :

1) 최근 연구들을 찾아보는 도중 Grad-CAM을 사용해서 fine-grained visual classification (FGVC)의 성능 향상시킨 짧은 연구가 있어서 소개하려고 한다. 이 연구의 핵심은 기존 channel-spatial attention에 Grad-CAM을 사용해서 좀 더 object의 class discritive 한 부분을 보는 것을 목적으로 하였다. 논문을 읽어보면 저자는 attention 방법이 background와 같은 중요하지 않은 부분을 볼 수 도 있기에, 이를 해결하기 위해서 Grad-CAM을 쓴 것으로 보인다. 중요한 것은 Grad-CAM을 사용해서 attention을 주기보다 Grad-CAM에서 획득된 weights을 attention weights과 비슷하게 함으로써 attention mechanism에서 만들어지는 map이 Grad-CAM에서 만들어지는 CAM과 비슷하게 만들어지게 하였다.

2) 밑의 그림을 보면, 기존의 channel-spatial attention module에 따로 Grad-CAM을 추가해서 attention을 guide하는 것을 보여준다.

밑의 그림이 좀 더 specific하게 어떻게 Grad-CAM guided channel-spatial attention module을 만드는 지 보여주고 있다.

위 식에서 $F_{cp}$는 convolution 연산들과 pooling operation, $A=[a_1,a_2,...,a_C]\in R^{C\times W \times H}$는 feature map 을 의미한다.

(1) 먼저, global average pooling인 $F_{cg}$를 통과시켜 획득된 값에서 두개의 fully connected layers (softmax function 포함) $F_{cr}$를 통과시켜 각 channel의 weights을 구한다 $S=[s_1,s_2,...,S_C]\in R^C$.

(2) 다음으로 feature map A를 S로 re-scaling 한다. 이는 Weighted feature map $B$를 얻는 과정을 의미한다. $B=[b_1,b_2,...b_C]\in R^{C\times W\times H}$.

$$b_c=F_{cm}(a_c,s_c)=a_c\cdot F_{cr}(F_{cg}(A))_c$$

(3) 다음으로, channel-wise summation과 2D softmax function을 포함하는 $F_{fa}$를 통과시킨 다음, B의 featuremaps이 channel dimension으로 flatten되어, spatial attention weights $T\in R^{W\times H}$를 획득한다.

(4) 마지막으로, channel-spatial attention-wegited feature map $D=[d_1,d_2,...d_C]\in R^{C\times W \times H}$로 획득한다.

$$d_c = F_{sm}(a_c,T)=a_c\odot F_{fa}(B)$$

이때, $\odot$은 Hadamard product이고, $T$는 다음과 같다.

$$T=F_{fa}(B)=\frac{\sum_{c=1}^C b_c}{\sum_{i=1}^W \sum_{j=1}^H \sum_{c=1}^C b_{c,i,j}}$$

이렇게 획득된 D에 대해서 classification이 진행된다. $F_{tc}$는 multiple FC classifier로 classificaiton을 담당한다.

3) 위에서 channel-spatial attention module이 완성되었으니, Grad-CAM을 추가해야한다. Grad-CAM에서 각 featurea map $k$의 importance는 다음과 같이 표현된다.

$$\beta_{c}^k  = \frac{1}{W\times H}\sum_{i=1}^W \sum_{j=1}^H \frac{\partial y^k}{\partial A_{c,i,j}}$$

이제 이렇게 얻은 $\beta$를 갖고, attention module에서 획득된 $S$와의 KL divergence로 새로운 loss를 정의한다.

$$L_{GGAM}=\frac{1}{2} (KL(S||\tilde \beta^k)+KL(\tilde \beta^k ||S))$$

위 식에서 $\tilde \beta^k$는 $\beta$에 sigmoid를 취한 형태이고, (즉, $\tilde \beta_c^k = sigmoid(\beta_c^k)$), KL은 KL divergence를 의미한다.

마지막으로, original cross-entropy loss를 추가하여 최종 loss를 획득한다.

$$Loss = L_{CE} + \lambda L_{GGAM}$$

4) 먼저, numerical performance를 확인해보면, 저자들이 제안한 방법이 SOTA보다 더 좋은 성능을 두 데이터 셋에서 보임을 알 수 있다.

 

 추가적으로, spatial attention, channel attention, GGAM-Loss를 각각 제거하였을 때, 혹은 모두 사용할 때의 성능 차이를 확인해본 결과, 모든 방법을 사용할 때 가장 좋은 성능을 보였다.

Visual performance 평가를 위해 baseline, channel attention, spatial attention, channel-spatial attention에 GGAM-loss를 적용시킨 경우와 적용시키지 않은 경우의 Grad-CAM을 비교하였다. GGAM-Loss를 적용시킬 때, 좀 더 정확하게 물체 주변에 heatmap이 형성되는 것을 확인할 수 있다.

(Object localization만 생각한다면 channel attention + GGAM-Loss와 channel-spatial attention w/o GGAM-Loss가 좋은 성능을 보인 것 같은데, FGVC 문제 상, high order features를 추출하는 것이 더 나은 방법임으로, 제안된 방법이 부리 주변에서 high importance를 가진 것은 저자가 제안한 의도를 성취했다고 볼 수 있다.)

마지막으로, $\lambda$ 값을 바꿨을 때의 성능 차이를 확인해본 결과, GGAM-Loss를 사용하지 않는 경우보다는 성능이 좋아지는 것을 확인 할 수 있었다.

+

Channel attention, spatial attention이 어떻게 module화가 되는 지 간단히 확인 할 수 있었고, Grad-CAM의 방법을 그대로 사용해서 CAM을 형성한다음에 다시 attention을 넣는 방법을 사용하지 않고, Loss를 추가해서 attention 을 guide 했다는 점에서 매우 유용한 접근 방법이라고 생각이 든다.

Comments