일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- coding test
- 딥러닝
- Class activation map
- Artificial Intelligence
- meta-learning
- GAN
- 코딩테스트
- 시계열 분석
- Deep learning
- cs231n
- 설명가능한
- Cam
- Machine Learning
- AI
- Explainable AI
- Interpretability
- Score-CAM
- Unsupervised learning
- 메타러닝
- 기계학습
- keras
- 머신러닝
- 백준
- 설명가능한 인공지능
- python
- 코딩 테스트
- xai
- grad-cam
- SmoothGrad
- 인공지능
- Today
- Total
iMTE
Eigen-CAM: Class Activation Map Using Principal Components 내용 정리 [XAI-19] 본문
Eigen-CAM: Class Activation Map Using Principal Components 내용 정리 [XAI-19]
Wonju Seo 2021. 9. 1. 11:08논문 제목 : Eigen-CAM: Class Activation Map Using Principal Components
논문 주소 : https://arxiv.org/abs/2008.00299
주요 내용 정리:
1) 저자는 기존 CAM 방법 대신에 학습된 weight matrix에서 principal component analysis를 통해 획득된 eigen vector에서 첫번째 eigen vector를 사용하여 heatmap을 생성해내는 방법을 제시하였다. 이 방법은 기존 CAM과 Grad-CAM과 달리, (1) network 구조를 변경하거나, (2) noisy가 있는 gradient를 계산할 필요 없이 heatmap을 생성해낼 수 있음을 보였다. 또한, adversarial examples에 대해서도 상관없이 object를 잘 localizing 하는 방법을 제안하였다. 주요 contributions은 다음과 같다.
(1) A simple, intuitive method to obtain CAM based on convolutional layers output, and the process is independent of class relevance score.
(2) The proposed Eigen-CAM can robustly and reliably localize objects without the need to modify CNN architecture or even to backpropagate any computations, and at the same time, achieves higher performance compared to all previously reported methods such as Grad-CAM, CNN fixations.
밑의 그림은 Eigen-CAM의 examples을 보여주고 있다. Middle column은 first principle component를 사용해서 획득된 heatmap을 보여주고 있고, right column은 second principle component로 부터 획득된 heatmap을 보여주고 있다. 이를 통해서 각, principle component는 특정 class를 지칭 한다는 것을 알 수 있다.
2) CNN의 구조는 feature extractinon part와 classification part로 나뉜다. 이 저자는 4개의 observations을 나열하였는데, 각 observation의 key points는 다음과 같다.
(1) gradients, relevance score, maximum activation location을 사용하는 CAM 방법들은 CNN model이 100% 정확하다는 가정을 하고 있다는 것이다. 그렇기에, 이 CAM 방법들은 classification results가 정확할 때, 옳은 방법이 된다.
(2) CAM은 서로 다른 feature maps에 가중치를 주기 위해서 GAP과 softmax 사이의 마지막 weight matrix를 사용한다.
(3) Gradients는 noisy한 문제를 갖고 있고, 오직 positive gradients만 사용하며, feature space의 중복과 feature space의 manifold의 형태에 상관없이 큰 gradients에 큰 weight을 할당한다.
(4) CNN maps은 이미지를 서로 다른 class에 mapping 한다.
이 4개의 observations으로 부터 저자는 CNN model의 계층적구조에 학습된 input image에서의 모든 relevant spatial features는 최적화 과정에서 유지되고, non-relevant features는 정규화가 되거나, smoothed out이 될 것이라고 가정한다.
$I$를 size가 $(i \times j)$인 input image라고 하고, $W_{L=n}$을 처음 k layers의 combined weight matrix (size : $(m,n)$)을 나타낸다고 하자.
Class activated output은 input image $I$가 last convolution layer $L=k$에 projected 된 것으로 다음과 같이 나타낸다.
$$O_{L=k}=W_{L=k}^TI$$
Singular value decomposition을 통해서 다음과 같이 나태내면,
$$O_{L=k}=U\Sigma V^T$$
$U$는 $M \times M$ orthogonal matrix로 $U$의 column은 left singular vectors 이다. $\Sigma$는 $M\times N$ diagonal matrix로 diagnoal을 따라 singular values를 갖는다. $V$는 $N\times N$ orthogonal matrix로 $V$의 column은 left singular vectors 이다.
Class activation map $L_{Eigen-CAM}$은 다음과 같이 나타낸다.
$$L_{Eigen-CAM}=O_{L=k}V_1$$
위 식에서 $V_1$은 $V$ matrix의 first eigen vector 이다.
3) Visualization 결과를 확인해 보면 다음과 같다. 밑의 그림에서 Eigen-CAM은 single object를 잘 localize 하고 있고 (d), multiple objects에서도 잘 localize 하고 있으며 (h,l), background에 있는 object도 잘 locaize 하고 있음을 알 수 있다 (p).
밑의 그림에서는 두개의 misclassified examples을 보여주고 있는데, 이 case에서도 Eigen-CAM은 잘 localize하고 있음을 알 수 있다.
Weakly supervised localization에서도 Eigen-CAM은 대부분의 모델에서 좋은 성능을 보여주었다.
마지막으로, adversarial examples에 대해서도 강인함을 알 수 있다. (adversarial noise는 dense layers에 영향을 주는데, 제안된 Eigen-CAM이 이에 대해 동일한 visual explanation을 보여줌으로써, dense lyaer에서의 변화에 강인하다는 것을 알 수 있다.)
+
저자는 기존 방법과 달리 Eigen vector를 사용하여 주요한 weight matrix를 사용함으로써, heatmap을 생성하는 방법을 제안하였다. 이러한 아이디어는 추가적인 학습 및 network 구조 변경 없이 사용 할 수 있다는 점에서 매우 유용할 수 있다고 생각한다.