iMTE

Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks 내용 정리 [XAI-11] 본문

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

Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks 내용 정리 [XAI-11]

Wonju Seo 2021. 6. 9. 15:44

논문 제목 : Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks

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

 

Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks

In this paper, we propose an efficient saliency map generation method, called Group score-weighted Class Activation Mapping (Group-CAM), which adopts the "split-transform-merge" strategy to generate saliency maps. Specifically, for an input image, the clas

arxiv.org

주요 내용 정리:

1) Group-CAM은 기존의 Score-CAM 방법보다 더 빠르고 효과적으로 classification activation map (CAM)을 형성하는 방법이다. 이전 포스팅을 보면 Score-CAM이 masking images generation과 여러 이미지들의 query로 인해서 속도가 느리다는 것을 확인할 수 있었다. 저자는 activation map들을 group으로 나누는 방법으로 모든 activation maps을 고려하지 않는 방법을 사용하였으며, adversarial effect를 방지하기 위해서 blurred image를 생성하는 방법으로 보다 target에 localized된 CAM을 형성하였다. 마지막으로, Group-CAM을 사용해서 생성된 saliency map을 사용하여서 이미 학습된 모델을 fine-tuning 함으로써 성능이 향상되는 것을 확인함으로써, Group-CAM의 응용을 소개하였다.

2) 먼저, 각 actvation map의 weight은 다음과 같이 계산된다.

$$w_k^c=\frac{1}{Z}\sum_i \sum_j \frac{\partial F_c (I_0)}{\partial A_{ij}^k(I_0)}$$

위 식에서, $c$는 target class, $k$는 k 번째 activation map의 index, $Z$는 activaiton map $A^k$의 pixels의 개수, $i,j$는 height, width index, $F$는 deep neural network, $F_c(I_0)$는 input $I_0$의 target class $c$의 score을 의미한다. 즉, $w_k^c$는 Grad-CAM처럼, target class $c$에 대한 $k$ 번째 activation map $A^k$의 gradients로 계산이 되는 것이다.

다음으로, $K$개의 activation maps을 $G$라는 group 개수로 나눈 것을 $g$라고 할때, 각 group의 mask는 다음과 같다.

$$M_l=ReLU(\sum_{k=l\times g}^{(l+1)\times g-1}(w_k^cA^k))$$

$$l\in \{0,1,...,G-1\}$$

하지만, 위에서 획득된 mask $M_l$은 noisy한데, 저자들은 이를 바로 사용하지 않았다. 대신, de-noising function을 사용해서 $M_l$의 pixel 값을 버리거나 유지하도록 하였다. 이때, $M_l$의 $\theta^th$ percentile이 threshold로 사용이 되었다.

다음으로, binary value로 masking 하는 대신에, Score-CAM 처럼 mask를 다음과 같이 smoothing 하였다.

$$M_l' = \frac{M_l-min(M_l)}{max(M_l)-min(M_l)}$$

다음으로, $M_l'$은 input $I_0$와 같은 size로 bilinear interpolation 되었다. (upsampling)

이렇게 생성된 mask를 그대로 적용시킬 수 있지만, 이 mask를 적용시키는 경우에 mask 외부 값은 0이 됨으로 매우 sharp한 변화가 발생한다. 이는 adversarial effect를 유도할 수 있음으로, 저자는 Gaussian blurred image를 생성하여서 이런 문제를 제거하였다.

$$I_l'=I_0\odot M_l'+\tilde{I}_0 \odot (1-M_l')$$

위의 식에서 $\odot$은 element-wise multiplication, $\tilde{I}_0$는 Gaussian blurred input image를 의미한다. 이렇게 구해진 image로부터 최종적으로 contribution을 다음과 같이 계산할 수 있고, CAM을 얻을 수 있다.

$$\alpha_l^c = F_c(I_l')-F_c(\tilde{I}_0)$$

$$L_{Group-CAM}^c=ReLU(\sum_l \alpha_l^c M_l')$$

3) 먼저, 이전 방법대비 visualization에서 어떤 성능 차이가 있는지 확인해보자.

위 그림에서 Group-CAM이 덜 noise한 CAM을 갖는 것을 알 수 있다. 또한 밑의 이미지의 class는 VGG19가 bull mastiff로 46.06%의 확신을 갖고 분류하고, 반대로 tiger cat으로 0.39 %의 확신을 갖고 분류함에도 불구하고, 이 둘 object에 명확한 localization이 잘 되는 것을 알 수 있다.

다음으로 numerical performance를 확인해보자면, Table 1은 insertion, deletion, over-all에 대한 performance를 보여주고 있으며, Deletion을 제외한 insertion, over-all에서 가장 좋은 성능을 보였다. Table 2는 $\theta$를 70으로 고정하고, group의 수를 바꿨을 때의 성능의 표를 보여주고 있다.

Table 3은 running time을 보여주고 있는데, 이를 보면 Group-CAM이 score-CAM에 비해서 매우 효율적으로 CAM을 형성하고 있음을 알 수 있다. 다음 Table 4는 pointing game에서도 Group-CAM이 상당히 높은 성능을 갖는 다는 것을 보여주고 있다.

다음으로, 밑의 그림에서는 Group-CAM이 Sanity check를 통과했음을 보여주고 있다.

4) 앞서 이야기한 것 처럼, Group-CAM의 응용으로 저자는 data augmentation 방법으로 fine-tuning하는 방법을 소개하였다. 저자는 data augmentation 생성시에, $w^c$를 계산하는 과정과 de-noising 하는 과정을 모두 제외하였고, masking $M$을 mean value를 사용해서 binarize하였다. (이렇게 한 이유는 sample을 만들 때, 속도를 향상시키기 위함이다.) 학습을 하면서 좀 더 나은 blurred input $\tilde I_0$를 만들어내고, 이는 결과적으로 성능 향상에 도움이 되었다.

(이미지에 큰 변화없이 이미지에 변화를 준 것이기 때문에 noise에 강인해지는 효과가 있을 수 있어 성능이 향상된 것이겠다는 생각이 든다. 처음에 performance가 감소하는 것을 보아, 처음에는 부적절한 blurred image가 형성되었을 가능성이 있다. 이후 학습을 하면서 정교해진 blurred image를 만들어내면서 성능이 향상된 것이라고 생각해볼 수 있다.)

+

기존 Score-CAM의 processing time을 크게 줄였다는 점과 de-noising/blurred image를 사용해서 좀 더 나은 CAM을 생성했다는 점에서 이 논문의 의의가 크다고 생각한다. 이 분야는 누가 limitation으로 해놓으면 바로 그 문제를 해결한 논문들이 나오는 것 같은데, 해결 방법은 새로운 것이라기 보다는 기존에 있던 방법을 사용하거나 직관적 방법을 사용하는 듯 하다. 

Comments