일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Deep learning
- 딥러닝
- 코딩테스트
- Cam
- SmoothGrad
- 설명가능한
- 머신러닝
- Class activation map
- coding test
- Score-CAM
- grad-cam
- Interpretability
- 코딩 테스트
- Artificial Intelligence
- meta-learning
- python
- AI
- cs231n
- 인공지능
- 시계열 분석
- Unsupervised learning
- 메타러닝
- 백준
- xai
- Machine Learning
- Explainable AI
- 설명가능한 인공지능
- keras
- GAN
- 기계학습
- Today
- Total
iMTE
Grad-CAM (Gradient-weighted class activation mapping) 내용 정리 [XAI-1] 본문
Grad-CAM (Gradient-weighted class activation mapping) 내용 정리 [XAI-1]
Wonju Seo 2021. 4. 8. 14:56논문 제목 : Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
논문 주소 : openaccess.thecvf.com/content_iccv_2017/html/Selvaraju_Grad-CAM_Visual_Explanations_ICCV_2017_paper.html
주요 내용 :
1) 2017년에 나온 논문이지만, CNN의 prediction을 설명하는 heatmap을 제공한다는 점에서 explainable AI의 기본적인 기술로 사용하기에 충분하다. 또한, CAM (classificaiton activation map)과 달리 global-average pooling layer를 추가함으로써 생기는 성능 저하 및 모델의 제한 (CNN이 있는 모델이라면 사용할 수 있다. 예, visual question answering (VQA), image captioning)을 방지할 수 있다는 점에서 유용하다.
2) CAM이나 Grad-CAM은 class discriminative한 특성이 있는데, (이는 class에 따라서 어느 region이 중요한지를 표현할 수 있다는 것이다.) fine-grained detail한 설명을 하는 것은 어려움이 있다. (어느 region이 중요한지는 알지만, 그 region에서 어느 part가 의미가 있는지는 자세히 알기 어렵다는 것이다.)
3) 2)의 문제를 해결하기 위해서 guided backpropagation을 사용하여 (elementwise multiplication) class discriminative한 특징과 fine-grained detail을 갖추는 Guided Grad-CAM을 제안한다.
위의 그림을 보면, Guided backprop (b,h)의 경우 고양이, 개가 있는 부근에서 fine-grained detail 특징들이 발견되는 것을 알 수 있지만, 고양이나 개에 대해서 모두 detail 특징을 얻어냄으로, class에 대한 정보는 얻기 힘들다. 반면, Grad-CAM인 (c,i)의 경우 고양이, 개에 대한 class 정보를 주는 region이 나타나는 것을 확인할 수 있다. 이 둘을 elementwise multiplication 하는 경우 (d,j)와 같이 fine-grained detail을 얻고, class discriminative한 특징을 얻을 수 있게 되는 것이다.
4) "Transparent"는 모델이 예측한 것에 대해서 예측한 이유를 설명할 수 있는 "능력"이다. 또한, 이는 실패한 경우에 대해서도 설명할 수 있어야 한다. 이 방법은 사용자에게 모델에 대한 신뢰와 확신을 세울 수 있다. (특히, 의료분야에서는 black box인 deep neural network의 예측에 대한 신뢰와 확신을 세우는 것은 매우 필수적이다.)
위의 그림에서, 어느 task (image classification, image captioning, visual question answering)에 상관 없이, backpropagation을 통해 전달된 gradients를 사용하여 guided backpropagation과, Grad-CAM을 구해 elementwise multiplication으로 최종 guided Grad-CAM을 얻어낸다. 이 논문은 Grad-CAM에 대한 논문임으로, Grad-CAM에 집중한다.
5) CAM은 다음과 같이 표현된다.
$$L^c_{Grad-CAM}\in \mathbb{R}^{u\times v}$$
- class discriminative localization map Grad-CAM, width : u, height : v, class : c.
CAM을 얻기 위해서, 먼저 class score (softmax layer 전)에 대한 k 번째 feature map의 gradients를 global-average pooling을 한다.
$$\alpha_k^c=\frac{1}{Z}\sum_i \sum_j \frac{\partial y^c}{\partial A_{ij}^k}$$
앞의 alpha는 타겟 class c에 대한 k번째 feature map의 importance를 의미한다. 만약 alpha가 크다면, k번재 feature map의 중요도가 target class c를 결정하는데 크게 기여한다는 것이다. 모든 feature map들에 대해서 alpha를 계산하고, feature map과 alpha를 곱한 다음 ReLU를 씌워주는 것으로 최종 CAM을 계산한다.
$$L_{Grad-CAM}^{c}=ReLU(\sum_k \alpha_k^c A^k)$$
이렇게 구해진 CAM의 size는 해당 convolutional layer의 feature map size와 같음으로, heatmap을 그려주기 위해서 입력 이미지 size로 resize를 해주고 씌워준다. 여기서, ReLU가 사용된 이유는 target class에 긍정적으로 영향을 미치는 부분에 관심이 있기 때문이다. ReLU를 사용하지 않는 경우 성능이 저하된다고 저자는 보고하고 있다.
6) Faithfulness vs. interpretability
"Transparent"와 달리, "Faithfulness of a visualization"는 모델에서 학습된 기능을 정확하게 설명하는 능력을 일컫는다. 그렇다면, faithfulness를 어떻게 평가할 것인가? 이 논문에서는 input data에서 locally accurate한 설명을 할 수 있는지 없는지로 평가하게 된다. (faithfulness는 모델이 얼마나 local한 정보에 민감한지를 보는 것으로 이해하였다.) 이를 위해서 occlusion 기반의 explainable 방법을 사용하여 비교하였다 (이 방법은 high local-faithfulness 특성을 갖는다). 결과적으로 Grad-CAM은 interpretability와 faithfulness를 갖고 있다고 저자는 보고하였다.
7) Identifying bias in dataset
Grad-CAm의 또다른 장점은 학습된 모델이 biased가 되었는지 아니면 unbiased가 되었는 지를 알려줄 수 있다는 것이다. 만약 biased가 되어 있다면, 데이터를 추가하는 방법으로 bias를 해결할 수 있을 것이다. 실험을 위해서 ImageNet pretrained VGG16 모델을 doctor와 nurse classificaiton task에 fine-tuning 하였다. Popular image search engine으로 각 class에 연관된 250개의 images를 찾아내어 training과 validation set을 나누었다. test set은 두 class의 성별이 balanced 되도록 조정되었다. 예측 결과, 모델은 좋은 validation accuracy를 보였지만, test set에서는 좋지 않은 accuracy를 보여주었다. 그 이유를 확인해보자.
위의 그림에서, biased model에 적용된 Grad-CAM은 nurse/doctor를 classificaiton 하는데, 헤어스타일과 얼굴 정보를 이용하는 것을 알 수 있다. 이는 성별에 대한 정보에 bias가 되어 있음을 의미한다. 실제로, Search engine에서 획득된 이미지는 gender-biased가 되어 있었다. (의사의 78% 이미지가 남성였고, 간호사의 93 %가 여성였다.) 이러한 bias를 제거하기 위해서 training set과 validation set에 male nurses와 female doctor images를 추가하였고, test set에서의 성능이 향상되었다. 위의 그림에서 unbiased model은 더이상 헤어스타일이나 얼굴 정보에 관심을 두지 않았고, 대신 white coat, stethoscope를 보고 nurse/doctor 분류를 하도록 학습이 되었음을 알 수 있다.
++
다양한 explainable AI 방법이 있지만, convolutional neural network에 적용할 수 있는 기술로는 Grad-CAM이 가장 먼저 선택 될 수 있는 것으로 생각된다. Explainability외에도 만약 모델의 성능이 향상되지 않거나, loss plot이 이상하다면 Grad-CAM을 통해서 모델이 잘못 예측하고 있는 것은 아닌지, 아니면 데이터가 bias가 되어 있는 것은 아닌지를 알 수 있다. 마지막으로 저자의 conclusion 중 다음 문장이 맘에 들어서 남기고 마무리하고자 한다.
"We believe that a true AI system should not only be intelligent, but also be able to reason about its beliefs and actions for humans to trsut and use it."
'Deep learning study > Explainable AI, 설명가능한 AI' 카테고리의 다른 글
Sanity checks for saliency maps, Equation sheets, [XAI-6 (1)] (0) | 2021.04.20 |
---|---|
SmoothGrad : removing noise by adding noise 내용 정리 [XAI-5] (0) | 2021.04.15 |
Smooth Grad-CAM++ 내용 정리 [XAI-4] (0) | 2021.04.14 |
Grad-CAM++ 내용 정리 [XAI-3] (0) | 2021.04.09 |
CAM (Class activation mapping) 내용 정리 [XAI-2] (0) | 2021.04.08 |