본문 바로가기

AI/Paper - Theory

[Grad-CAM 논문 리뷰] - Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

반응형

*Grad-CAM 논문 리뷰 글입니다. 궁금하신 점은 댓글로 남겨주세요.

 

Grad-CAM paper: [1610.02391] Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (arxiv.org)

 

Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

We propose a technique for producing "visual explanations" for decisions from a large class of CNN-based models, making them more transparent. Our approach - Gradient-weighted Class Activation Mapping (Grad-CAM), uses the gradients of any target concept, f

arxiv.org


Contents

1. Simple Introduction

2. Background Knowledge: CAM

3. Method

    - Grad-CAM generalizes CAM

4. Result

5. Furthermore

 


Simple Introduction

Grad-CAM

기존의 CAM 논문의 경우 layer에 GAP(Global Average Pooling)이 있어야 하고, FC layer 1개가 따라와야 한다는 단점이 있었다.

 

그러나 이런 구조적인 문제에서 벗어나 CAM의 method을 generalization한 모델이 바로 Grad-CAM이다.

 

위의 사진 처럼, 높은 localization performance를 보이는 것을 알 수 있다.

또한 위에서 언급한 것처럼 구조적인 한계가 없다는 점에서 크게 주목을 받았다.


Background Knowledge: CAM

CAM 논문 리뷰: https://kyujinpy.tistory.com/59

 

[CAM 논문 리뷰] - Learning Deep Features for Discriminative Localization

*XAI에서 가장 대표적으로 쓰이는 CAM 논문 리뷰입니다. 궁금하신 점은 댓글로 남겨주세요. CAM paper: [1512.04150] Learning Deep Features for Discriminative Localization (arxiv.org) Learning Deep Features for Discriminative Loca

kyujinpy.tistory.com

 

CAM의 generalization한 모델이라고 말할 수 있기 때문에 CAM에 대한 전반적인 이해가 필요하다!

또한 현재 XAI들은 CAM을 대부분 이용하기 때문에 꼭 공부하자!!


Method

Overview

구조가 많이 복잡해 보이는데, 거창할 뿐이지(?) 전혀 복잡하지 않다!

단지 backpropagation을 이용해서 CAM을 표현하는 것이다.

 

Step by step으로 한번 살펴보자.

1. Image에 대해서 CNN에 넣고, N개의 channel을 가진 feature map을 제작한다.

2. Any Task Specific Network에 넣는다.

    - 즉, 내가 수행하고자 하는 task의 network를 넣을 수 있는 것이다. (자유로운 architecture)

 

Backpropagation (3,4번)

3. 최종 Output으로 Yc라는 class가 설정되었다면, feature map의 각 좌표를 Yc로 미분한다. (Backpropgation)

4. Backpropagation을 수행한 feature map에 대해서 GAP를 사용하여 akc를 만든다.

 

Grad-CAM

5. 최종적으로 Activation map과 ak를 linear combination을 수행 한 후 ReLU을 적용시켜 Grad-CAM을 만든다.

    - ReLU를 적용하는 이유는 negative한 value를 제거해주는 목적이 있다.


+) Grad-CAM generalizes CAM

CAM equation

+) 위의 식은 CAM에서 적용했던 수식이다.

+) 여기서 wk는 FC layer에 이용되는 weights이다.

 

Replace gradient

+) feature map F에 대하여 미분을 진행할 때, F를 Ai,j로 미분한 형태는 1/Z이므로(equation (4) 참고.) (7) equation으로 표현이 된다.

+) 여기서 Z는 feature map의 좌표수를 의미한다. (평균을 해주기 위해서 곱해주는 상수)

 

make wk equation

+) 우변의 미분항은 (5) equation에 의해 단순하게 wkc로 표현이 가능하다.

+) (8) equation은 특정한 좌표 (i,j)에 대한 수식이므로 all pixels에 대한 식으로 (9) equation을 만들어 준다.

 

Generalization

+)  wkc와 Z의 경우에는 좌표 (i,j)에 의해 영향을 받지 않으므로, (10) equation으로 표현이 가능하다.

+) 양변을 정리하면 wkc는 k번째 activation 맵에 대해서 특정한 class c에 대한 미분값으로 표현이 되는데, 이는 CAM에서 FC layer에 이용되는 wkc를 1/Z로 normalization시키면 Grad-CAM에 이용되는 akc와 identical하다는 것이 증명된다.


Result

Analyzing failure

- 예측을 실패한 경우에, AI가 image에 어떠한 모습을 보고 잘못된 판단을 내렸는지 알 수 있다.

 

Biased dataset

- Biased dataset과 Unbaised dataset으로 서로 비교했을 때, 어떻게 AI가 판단하는지 알 수 있다.

- 편향된 dataset의 경우 얼굴을 위주로 판단하여 Doctor를 Nurse로 잘못 판단하는 것을 확인할 수 있다.

 

Localization

- Layer가 깊을수록 more semantic concepts을 얻는 것을 알 수 있다. 즉 localization이 강화된다.


Furthermore

Grad-CAM++ 논문 리뷰: https://kyujinpy.tistory.com/61

 

[Grad-CAM++ 논문 리뷰] - Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks

*Grad-CAM++ 논문 리뷰 글입니다. 궁금하신 점은 댓글로 남겨주세요. *수식 많음 주의!!(어렵지는 않아요!) Grad-CAM++ paper: [1710.11063] Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks (arxiv.org) Grad

kyujinpy.tistory.com

Grad-CAM을 보면 localization이 좋은 것은 알 수 있지만, 고양이의 이미지의 경우 고양이 전체를 보는 것이 아닌 고양이 몸통을 위주로 본다.

이는 Multi-object에 대해서 localization이 약해질 수 있다는 근거가 되고 실제로도 그렇다.

이러한 문제점을 해결한 것이 바로 Grad-CAM++ 이다.

 

(논문들을 보면 ++가 많이 나오는 것 같다.)


- 2023.01.27 Kyujinpy 작성.

 

반응형