일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- python
- keras
- 인공지능
- Explainable AI
- AI
- coding test
- Class activation map
- 설명가능한
- 설명가능한 인공지능
- 코딩테스트
- 기계학습
- Score-CAM
- cs231n
- 코딩 테스트
- 시계열 분석
- 백준
- Artificial Intelligence
- xai
- 머신러닝
- Deep learning
- SmoothGrad
- meta-learning
- grad-cam
- GAN
- Unsupervised learning
- Interpretability
- Cam
- 딥러닝
- 메타러닝
- Machine Learning
- Today
- Total
iMTE
Ablation-CAM: Visual Explanations for Deep Convolutional Network Via Gradient-free Localization [XAI-12] 본문
Ablation-CAM: Visual Explanations for Deep Convolutional Network Via Gradient-free Localization [XAI-12]
Wonju Seo 2021. 6. 17. 14:32논문 제목 : Ablation-CAM: Visual Explanations for Deep Convolutional Network Via Gradient-free Localization
논문 주소 : https://openaccess.thecvf.com/content_WACV_2020/html/Desai_Ablation-CAM_Visual_Explanations_for_Deep_Convolutional_Network_via_Gradient-free_Localization_WACV_2020_paper.html
주요 내용 정리:
1) Grad-CAM의 gradient saturation의 문제와 visualization quality를 향사시키기 위해서, 저자는 gradient를 사용하지 않는 gradient free 방법인 Ablation-CAM을 제안하였다. 아이디어는 간단하다. Grad-CAM에서는 특정 activation map $A_k$의 importance를 gradient를 계산해서 구하는 반면, ablation-CAM은 특정 activation map $A_k$를 제거함으로써 변하는 class score $y_c$의 차이를 바탕으로 importance를 계산한다. 따라서, gradient 값을 요구하지 않음으로 gradient 로 인한 saturation과 vanishing, noisy의 문제로 부터 자유로울 수 있는 장점을 갖는다.
2) 먼저, Grad-CAM에서 feature map $k$의 importance는 다음과 같은 식으로 계산된다.
$$\alpha_k^c = \frac{1}{M} \sum_i \sum_j \frac{\partial y^c}{\partial A_{ij}^k}$$
위 식에서 $M$은 feature map의 cells의 수 (pixels의 수), $y^c$는 target class $c$의 class score, $A_{ij}^k$는 $i,j$ 위치에서의 feature map $k$의 activation을 의미한다. 이렇게 생성된 Grad-CAM 이미지는 다음과 같다.
위의 이미지를 보면 Grad-CAM은 1) gradient saturation에 의해서 confident decision에 대한 설명력이 부족하고("fails to faithful explanations"), 좁고 불완전한 지역을 highlight하는 것을 확인할 수 있다 . 또한, multiple objects가 있을 때에 multiple object를 검출하는 것을 실패한다.
3) 저자는 실험을 통해서 재미있는 사실을 알아냈는데, VGG network에서 feature map의 activation과 backpropagation에서 얻은 gradient가 서로 다른 정보를 준다는 것이다.
이런 현상은 fully convolutional layer를 사용하지 않는 network에서 발생한다는 것을 저자는 처음으로 확인하였다. 추가적으로 특정 feature map을 제거했을 때 class score가 변하는 것을 확인할 수 있었다. 따라서, 저자는 특정 feature map을 제거하고 나서의 class score를 보았을 때, 크게 변한다면 그 feature map은 큰 importance를 갖는다는 것을 생각해냈다.
처음으로 생각해볼 수 있는 것은, feature map의 norm에 해당하는 class core의 변화이다.
$$slope=\frac{y^c-y^c_k}{||A_k||}$$
위 식에서 $y^c_k$는 feature map $k$를 0으로 놓았을 때의 class score이다. 하지만, slope는 norm 값이 너무 커서 변화가 작게 보이는 문제가 있어서, 저자는 이 식을 수정하였다.
$$w_k^c=\frac{y^c-y^c_k}{y^c}$$
다음으로, CAM은 다음 식을 통해서 생성된다.
$$L_{Ablation-CAM}^c=ReLU(\sum_k w_k^c A_k)$$
위 식에서 ReLU는 이전 연구들과 마찬가지로 positive한 성분만 고려하기 위해서 사용이 되었다. 마지막으로, fine-grained 특징을 위해서 Guided backpropagation과 pointwise multiplication을 함으로 Guided Ablation-CAM을 생성해냈다.
4) 먼저 Grad-CAM과의 visualization 결과를 비교해보면, Ablation CAM이 좀 더 object에 잘 localize가 되어있으며, multiple objects에서도 잘 localize하는 것을 확인 할 수 있다.
뿐만 아니라, Ablation-CAM은 Grad-CAM에 비해서 더 class-discriminative한 특징을 갖고 있으며, localization을 잘하고 있다. (실험 조건은 필요하면 논문에서 읽어보길 바란다.) Bicycle만 보더라도, Grad-CAM은 people까지 localize를 하는 반면, Ablation CAM은 bycle에 잘 highlight를 하고 있음을 알 수 있다.
Numerical performance에서도, Ablation CAM은 Grad-CAM보다 더 좋은 성능을 보인다. 하지만, VGG에 비해서 Inception-V3에서 성능 변화가 그렇게 크지 않는데 이는 fully convolutional layers를 사용했기 때문이다.
추가적으로 subjective evaluation에서도 Ablation-CAM은 130.8 점으로 62.8 점은 Grad-CAM보다 월등히 좋은 성능을 보여주었다. 또한, Ablation-CAM을 사용하여 model selection에도 사용할 수 있다. 밑의 그림은 AlexNet과 VGG-16의 결과를 비교한다.
마지막으로, class discriminative 실험에서, Guided Ablation-CAM은 73.6%, Guided Grad-CAM은 65.4 %로 subjects가 category를 분류하는 점수에서도 성능이 좋았다. 예시 실험 사진은 다음과 같다.
5) 하지만 예상했듯이, Grad-CAM은 한번의 backpropagation이면 feature map의 importance를 계산할 수 있는 반면, Ablation-CAM은 feature map의 갯수만큼 class score를 계산해야함으로 computational load가 Grad-CAM에 비해서 크고 시간이 더 많이 걸린다. 또한, Ablation CAM은 fully convolutional layer가 있는 network에서는 큰 성능 향상을 보여주지 않는다. 하지만, 마지막 convolutional layer가 바로 decision node로 연결되지 않는 경우에 더 잘 동작할 수 있다.
+
Ablation-CAM은 feature map을 제거함으로써 변하는 class core의 변화를 바탕으로 weight을 구하여 CAM을 형성해냈다는 점에서 간단하면서도 강력한 tool을 제공하였다. 또한, VGG와 같은 fully connected layer가 연결된 network의 경우 gradient matrix와 activation 이 서로 다르다는 점과, 특정 feature map이 class score에 크게 영향을 준다는 것을 밝혀냈다.
하지만, 이전에 다양한 saliency map과 비교가 부족하고, 최근에 나온 연구들의 algorithms과 비교하는 것도 부족했다. Grad-CAM이 SOTA라 부르기에는..... 어렵지 않나 싶다. 다양한 algorithms과 비교를 했더라면 더 좋은 연구가 됬었을 것이라고 생각된다.