본문 바로가기

AI/Paper - Theory

[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-CAM++: Improved Visual Explanations for Deep Convolutional Networks

Over the last decade, Convolutional Neural Network (CNN) models have been highly successful in solving complex vision problems. However, these deep models are perceived as "black box" methods considering the lack of understanding of their internal function

arxiv.org


Contents

1. Simple Introduction

2. Background Knowledge: Grad-CAM

3. Method

    - Methodology  

    - Computation aijkc

4. Result


Simple Introduction

기존의 Grad-CAM은 CAM의 구조적인 한계에서 벗어나게 해준 점에서 의의가 있었다.

하지만 위의 이미지처럼 localization이 국소화 되어 있다는 문제점이 있었다.

 

이는 multi object를 판단할 때 안 좋은 영향을 미칠 수 있다.

이러한 Multi-object에 대해서도 좋은 saliency map을 만든 것이 바로 Grad-CAM++ 이다.


Background Knowledge: Grad-CAM

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

 

[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

kyujinpy.tistory.com

Grad-CAM의 방법론을 변경한 논문이기 때문에, Grad-CAM을 이해하고 와야된다!

 

해당 논문 리뷰 글에서는 Grad-CAM을 알고 있다고 가정하고 진행됩니다.


Method

Overview

Grad-CAM과 동일하게 feature map을 만들고 특정 class Y에 대해서 backpropagation을 진행하는 것은 똑같다.

여기서 Saliency Map을 만드는 과정이 다른데, 기존의 Grad-CAM의 경우에는 wkc를 구할 때 activation map에 대해서 미분을 수행하고 GAP를 적용한 형태였다.

 

하지만 이럴 경우 multi-object의 경우 다양한 객체를 고려하지 못한다는 단점을 논문의 저자들이 찾아내어 새로운 aijkc라는 것을 곱한 형태로 wkc를 구성하였다.


Methodology

그렇다면 어떻게 aijkc를 계산할까??

CAM Y

0. CAM에서 이용하던 class c에 대한 score Y와 saliency map L의 equation이다.

 

Grad-CAM

1. Grad-CAM은 CAM의 일반화된 모형으로 wkc를 (3) equation으로 대체하여 사용할 수 있다. (자세한건 논문 리뷰 글 참고.)

 

Grad-CAM++

2. Grad-CAM++에서는 (3) equation 대신에 (5) equation을 이용한다.

 

Define

3. (5) equation으로 CAM에서 정의된 score Y에 대한 식을 다시 쓰면 위와 같이 된다.

 

Derivative

4. (7) equation에 대해서 특정한 k번째 activation map A에서 (i,j)에 대한 미분식을 구하면 (8) equation이 되고, 2계도 미분 함수는 (9) equation이 된다.

 

get a

5. (9) equation을 rearrange하게 되면 (10) equation을 통해 aijkc를 얻을 수 있다!


Computation aijkc

(10) equation에 있는 2계도 미분과 3계도 미분을 계산하기에는 시간이 너무 오래걸리는데 이를 간단하게 표현할 수 없을까?

이는 수식으로 전개해서 해결할 수 있다.

 

 

Define gradient

1. layer에 마지막에는 ReLU activation function이 있고, softmax를 통해서 Y를 계산하다고 한다.

2. 그렇다면 특정한 k번째 activation map A에 있는 좌표 (i,j)에 대한 미분값은 (13) equation이 된다.

 

2계도 미분함수

3. (13) equation에 대해서 한번 더 미분을 진행하면 (14) equation이 된다.

 

Simply equation

4. 우리는 ReLU function을 마지막에 사용했다고 가정했다. 이 경우 ReLU의 2계도 미분함수는 항상 0이다. 따라서 (14) equation을 (17) equation처럼 간단화 시킬 수 있고, 마찬가지로 3계도 미분함수도 (18) equation으로 표현이 가능하다.

 

Simple equation

5. 최종적으로 2계도 미분, 3계도 미분 함수를 위의 식으로 치환하여 (10) equation에 넣어주면 위와 같이 한번의 backpropagation으로 aijkc가 표현된다!


Result

Faithfulness

- 해당 논문에서는 faithfulness라는 새로운 evaluation을 제시하여 3가지 metrics를 제안한다.

 

Average Drop

- 첫번째로 Average Drop이다.

- 이것은 original image를 CNN에 넣었을 때 나오는 Y와, Grad-CAM++ image를 CNN에 넣었을 때 나오는 O간의 차이를 비교하는 것이다.

- Lower is better이다.

 

Increase in Condidence

- Increase in Confidence 이다.

- Higher is better이다.

 

Win

- 또 마지막 지표로는 Win이 있다.

- Higher is better이다.

 

- 3가지 metrics에 대해서 Grad-CAM의 성능이 전반적으로 좋은 것을 확인할 수 있다.

 

Visualization

- Grad-CAM보다 Grad-CAM++가 localizaiton이 더 넓은 영역에 걸쳐서 되는 것을 확인할 수 있다.


- 2023.01.27 Kyujinpy 작성.

반응형