일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AI
- cs231n
- grad-cam
- Explainable AI
- Deep learning
- 기계학습
- 인공지능
- 백준
- Score-CAM
- xai
- Class activation map
- GAN
- 코딩테스트
- 설명가능한 인공지능
- python
- 딥러닝
- coding test
- 머신러닝
- Machine Learning
- Interpretability
- meta-learning
- 메타러닝
- 코딩 테스트
- SmoothGrad
- Cam
- Artificial Intelligence
- 설명가능한
- keras
- Unsupervised learning
- 시계열 분석
- Today
- Total
iMTE
Sanity checks for saliency maps 내용정리 [XAI-6 (2)] 본문
Sanity checks for saliency maps 내용정리 [XAI-6 (2)]
Wonju Seo 2021. 4. 20. 15:12논문 제목 : Sanity checks for saliency maps
논문 주소 : arxiv.org/abs/1810.03292
주요 내용 :
1) Saliency map은 학습된 모델의 예측과 가장 관련된 부분을 highlight함으로 예측을 설명할 수 있다는 점에서 유용한 방법이다. 하지만, 다양하게 제시된 saliency map 방법들을 평가하는 것에 대해서는 어려움이 있다. 논문의 저자는 두개의 randomization tests로 saliency map 방법들을 평가하였는데, 첫째는 model parameter randomization test 이고, 둘째는 data randomization test 방법이다. 물론, visual inspection을 통해서 saliency map을 평가할 수 있지만, 본 저자는 saliency maps과 edge detector의 결과가 상당히 비슷하다는 것을 지목한다.
위의 그림을 보면 Guided Backprop, Guided GradCAM을 통해 만들어진 salinecy map이 edge detector와 비슷한 것을 알 수 있다.
2) Model parameter randomization test는 network의 weights을 randomly initalization을 하고 얻은 saliency map과 그렇지않은 경우에서 얻은 saliency map을 비교하는 방법이다. 만약 saliency map을 만드는 방법이 model의 parameter에 의존한다면, 상당한 차이가 있을 것이라고 예상할 수 있다. 반대로, 비슷하다면, saliency map을 만드는 방법이 model parameters에 insensitive하다고 결론을 낼 수 있다. (비슷하다면, 학습이 의미가 없다고 할 수 있다.)
Data randomization test에서는 labels에 permutation을 적용하여 학습한 모델과 그렇지 않은 경우에서 학습된 모델로 부터 생성되는 saliency map을 비교하는 것이다. 만약 이 둘의 차이가 크다면, 해당 saliency map을 만드는 방법은 data의 labeling에 의존한다는 것이다. 반대로, 비슷하다면, saliency map을 만드는 방법이 labeling에 의존하지 않는 다는 것을 의미한다. (data와 label 사이의 관계에 의존하지 않는 방법이라는 것이다.)
저자가 제시한 sanity check를 통해서 saliency map을 만드는 방법들의 model혹은 data에 대한 invariant 특성을 알 수 있고, 부적절한 salinecy map 방법들을 제외할 수 있다.
3) Sanity check를 위해서 2가지 방법으로 평가하였다. 첫번째는 visualizaiton inspection 이다. Salinecy map을 시각화 할때, normalized map에서 값들의 absolute-value (ABS)를 사용하거나, non-absolute-value (i.e., diverging)를 사용하였다. 두번째로, quantitative 비교를 위해서, Spearman rank correlation with absolute value (absolute value), Spearman rank correlation without absolute value (diverging), structural similarity index (SSIM), Pearson correlation of the HOGs derived from two maps를 사용하였다.
3) 먼저 model parameter randomization test에서는 cascading 방법으로 layer를 randomization 하는 방법과 layer 별로 randomization 하는 방법이 있다. 첫번째 방법의 결과를 확인해보자.
Figure 2에서 Guided Back-propagation과 Guided GradCAM은 높은 layers에서 model parameter에 invariant하다는 것을 알 수 있다. 반면, gradient 방법들과 GradCAM은 model parameter randomization에 sensitive하다는 것을 알 수 있다. 두번째 방법은 layer 별로 randomization을 진행하는 것인데 놀랍게도 Guided Backpropagation과 Guided GradCAM은 lower layer weights에만 sensitive한 결과를 보여준다.
4) Data randomization test는 labeling에 permutation을 적용하여 모델이 학습을 잘못하도록 유도한다. 그 다음 정상적인 데이터에 대해서 saliency map을 형성하고, permutation이 적용되지 않은 데이터에서 학습한 모델로 부터 얻은 saliency map을 비교한다.
위의 그림을 보면, true label로 학습된 모델로부터 만들어진 saliency map과 permuted label로 학습된 모델로 부터 만들어진 saliency map을 비교하였다. 위의 그림을 보면, gradient, smoothGrad 방법은 굉장히 sensitive하다는 것을 알 수 있다. Diverging visualization에서 Guided Backprop과 Guided GradCAM은 0의 테두리에서 빨간색으로 highlight가 되어 있는 것을 알 수 있다 (반면 다른 것들은 0의 테두리에서 파란색, 빨간색으로 highlight가 되어 있다). 이는 random label을 사용했음에도 불구하고 0의 특징을 highlight한것으로 해석이 가능하다 (따라서, data labeling에 대해서 invariant하다.).
5) 하지만 두가지 경우에 대해서 visual inspection은 항상 옳은 답을 제공하지 않는다. 따라서, 수치적으로 이를 다시 한번 확인하는 것이 중요하다.
Model parameter randomization에서는 위 그림과 같은 수치적인 결과를 통해서, Guided backrpop과 Guided GradCAM이 상당히 문제가 있음을 알 수 있다 (higher layer에서 correlation이 상당히 크다). Spearman rank correlation without absolute value에서 보면 $Gradient \odot Input$이 0에 바로 수렴하는 걸 볼 수 있는데 이는 re-initialization이 saliency map의 부호를 변화시키기 때문이다.
6) 마지막으로 두개의 모델 linear model과 1 layer sum-pool conv model을 통해서, random model의 gradient가 왜 white noise 형태인지, CNN을 사용할 때, 왜 edge detector와 같이 동작하는지를 저자는 깔끔하게 정리하고 보여주었다. 간단히 확인해보도록 하자.
(1) Linear model 모델을 다음과 같이 정의하자: $f : \mathbb{R}^d -> \mathbb{R}$, $f(x)=wx$, $w\in \mathbb{R}^d$. 그렇다면, gradient는 다음과 같이 계산되고, SmoothGrad는 input에 아무런 영향을 안받게 된다.
$$E_{grad}(x)=\frac{\partial (wx)}{\partial x}=w$$
$$E_{sg}(x) = w$$
Integrated Gradients도 계산해보면
$$E_{IG}(x) = (x-\bar x) \odot \int_{0}^{1} \frac{\partial f(\bar x+\alpha (x-\bar x))}{\partial x}d\alpha$$
$$ = (x-\bar x)\odot \int_0^1 w\alpha d\alpha=(x-\bar x) \odot x/2$$
따라서, random model로 initialization이 되었다면, gradient는 white noise 형태로 saliency map을 형성하거나 Integrated Gradient경우 input image에 noise가 섞인 형태로 출력 될 것이다!
(2) 1 layer sum-pool conv model
Gray scale image : $x\in \mathbb{R}^{n\times n}$, 3 x 3 convolutional fitler : $w\in \mathbb{R}^{3\times 3}$ and $w_{ij}$, $i, j \in \{-1,0,1\}$
Output of the convolution operation on the image : $w*x \in \mathbb{R}^{n \times n}$
Output : $l(x)=\sum_{i=1}^n \sum_{j=1}^n \sigma(w*x)_{ij}$, $\sigma$ : ReLU
Output에 대해서 gradient를 계산하면 다음과 같다.
$$ \frac{\partial}{\partial x_{ij}}l(x) = \sum_{k=-1}^1 \sum_{l=-1}^1 \sigma' ((w*x)_{i+k,j+l})w_{kl}=\sum_{k=-1}^1 \sum_{l=-1}^1 a_{i+k,j+l}w_{kl}$$
위 식에서 x가 0보다 작으면 $\sigma'(x) = 0$ 이고, 다른 경우라면 1이 된다. 이는 3 x 3 activation pattern이 gradient 값을 결정짓는 것을 의미한다. 예를 들어, edge 부분에서는 distinct activation pattern을 갖기 때문에 gradient 값이 급변한다. 반대로 uniform한 부분에서는 same activation pattern을 갖기 때문에 gradient 값은 같은 값을 지닌다. 따라서, edge detector로서 역할을 하게 되는 것이다.
+
설명한 부분은 전체적인 흐름을 간략하게 정리해놓은 것이다. 더 깊은 이해를 위해서는 논문을 읽어보는 것을 추천한다. 이 논문의 주요 핵심은 여러 saliency map을 만드는 방법중, 실제로 의미 있는 explanation을 생성해내는 방법을 어떻게 찾아내는 방법들을 다루고 있다. 이를 위해서 model parameter randomization, data randomization 두 방법을 사용한 것이다. 이를 통해서 Guided 방법을 사용한 방법들이 좋은 설명력을 지니지 못한다는 것을 설명하였다. 추가적으로 linear model과 1 layer sum-pool conv net에 대해서 gradients를 분석함으로써, white noise 형태로 gradient가 생성되는 것과 edge 형태로 gradient가 생성 이유에 대해서 분석하였다.
'Deep learning study > Explainable AI, 설명가능한 AI' 카테고리의 다른 글
Adapting Grad-CAM for Embedding Networks 내용정리 [XAI-8] (0) | 2021.05.20 |
---|---|
Interpretable and fine-grained visual explanations for CNNs 내용 정리 [XAI-7] (0) | 2021.04.23 |
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 |