*Grad-CAM++ 논문 리뷰 글입니다. 궁금하신 점은 댓글로 남겨주세요.
*수식 많음 주의!!(어렵지는 않아요!)
Grad-CAM++ paper: [1710.11063] Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks (arxiv.org)
Contents
2. Background Knowledge: Grad-CAM
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을 이해하고 와야된다!
해당 논문 리뷰 글에서는 Grad-CAM을 알고 있다고 가정하고 진행됩니다.
Method
Grad-CAM과 동일하게 feature map을 만들고 특정 class Y에 대해서 backpropagation을 진행하는 것은 똑같다.
여기서 Saliency Map을 만드는 과정이 다른데, 기존의 Grad-CAM의 경우에는 wkc를 구할 때 activation map에 대해서 미분을 수행하고 GAP를 적용한 형태였다.
하지만 이럴 경우 multi-object의 경우 다양한 객체를 고려하지 못한다는 단점을 논문의 저자들이 찾아내어 새로운 aijkc라는 것을 곱한 형태로 wkc를 구성하였다.
Methodology
그렇다면 어떻게 aijkc를 계산할까??
0. CAM에서 이용하던 class c에 대한 score Y와 saliency map L의 equation이다.
1. Grad-CAM은 CAM의 일반화된 모형으로 wkc를 (3) equation으로 대체하여 사용할 수 있다. (자세한건 논문 리뷰 글 참고.)
2. Grad-CAM++에서는 (3) equation 대신에 (5) equation을 이용한다.
3. (5) equation으로 CAM에서 정의된 score Y에 대한 식을 다시 쓰면 위와 같이 된다.
4. (7) equation에 대해서 특정한 k번째 activation map A에서 (i,j)에 대한 미분식을 구하면 (8) equation이 되고, 2계도 미분 함수는 (9) equation이 된다.
5. (9) equation을 rearrange하게 되면 (10) equation을 통해 aijkc를 얻을 수 있다!
Computation aijkc
(10) equation에 있는 2계도 미분과 3계도 미분을 계산하기에는 시간이 너무 오래걸리는데 이를 간단하게 표현할 수 없을까?
이는 수식으로 전개해서 해결할 수 있다.
1. layer에 마지막에는 ReLU activation function이 있고, softmax를 통해서 Y를 계산하다고 한다.
2. 그렇다면 특정한 k번째 activation map A에 있는 좌표 (i,j)에 대한 미분값은 (13) equation이 된다.
3. (13) equation에 대해서 한번 더 미분을 진행하면 (14) equation이 된다.
4. 우리는 ReLU function을 마지막에 사용했다고 가정했다. 이 경우 ReLU의 2계도 미분함수는 항상 0이다. 따라서 (14) equation을 (17) equation처럼 간단화 시킬 수 있고, 마찬가지로 3계도 미분함수도 (18) equation으로 표현이 가능하다.
5. 최종적으로 2계도 미분, 3계도 미분 함수를 위의 식으로 치환하여 (10) equation에 넣어주면 위와 같이 한번의 backpropagation으로 aijkc가 표현된다!
Result
- 해당 논문에서는 faithfulness라는 새로운 evaluation을 제시하여 3가지 metrics를 제안한다.
- 첫번째로 Average Drop이다.
- 이것은 original image를 CNN에 넣었을 때 나오는 Y와, Grad-CAM++ image를 CNN에 넣었을 때 나오는 O간의 차이를 비교하는 것이다.
- Lower is better이다.
- Increase in Confidence 이다.
- Higher is better이다.
- 또 마지막 지표로는 Win이 있다.
- Higher is better이다.
- 3가지 metrics에 대해서 Grad-CAM의 성능이 전반적으로 좋은 것을 확인할 수 있다.
- Grad-CAM보다 Grad-CAM++가 localizaiton이 더 넓은 영역에 걸쳐서 되는 것을 확인할 수 있다.
- 2023.01.27 Kyujinpy 작성.