[논문리뷰]_GRAD-CAM++

코넬·2023년 5월 5일
0

PapersReview

목록 보기
6/35
post-thumbnail

GRAD-CAM++이란?

Grad-CAM과 CAM의 아이디어를 확장시킨 모델로, weighted sum을 적용하여 Grad-CAM에서 global average pooling(GAP)을 진행하는 것을 대체하였다는 주요 포인트를 지니고있다.

기존 모델(CAM, Grad-CAM)의 문제점

CAM의 문제 : softmax layer 전에 반드시 GAP을 사용해야한다.

Grad-CAM의 문제 : 이미지 안에 동일한 class의 object들이 있을 때, localization이 어렵다는 점과, 전체 object를 localize하기 어렵다는 단점이 있다.

GRAD-CAM++의 계산방식

Grad-CAM의 기존 문제점들을 해결하기 위하여, Grad-CAM++이 등장하였다.

기존의 Grad-CAM의 계산식에서 weight 값을 gradient 그대로 사용하는 것이 아닌 수식에 변화를 준 것이기 때문에, 기존 Grad-CAM의 수식 방법을 이해해야한다.

(++추가적으로 Grad-CAM에서 설명한 내용을 가져오자면)
Neuron importance weight, a와 각 K 개의 feature map을 곱해 weight sum of feature map을 구한다. → ReLU 를 취해 최종 Grad-CAM에 의한 Heatmap을 출력한다. (ReLU를 사용해야 관심 있는 class 에 positive한 영향을 주는 feature 에만 집중하기 때문이다. y_c를 증가시키기 위해 증가되어야할 intensity를 가지는 pixel을 말한다. )

기존 Grad-CAM의 weight 값 계산은 다음과 같다.

Grad-CAM++의 weight 값 계산은 다음과 같다.

Grad-CAM의 경우 gradient weight를 그대로 사용하지만, Grad-CAM++에서는 gradient에 ReLU를 넣어주고 추가적인 varient를 넣어 값을 조절하였다.

ReLU의 경우, positive gradient만 값으로 취하는 의미이며, a^kc_ij의 경우 c는 class로 , gradient의 weighted average를 의미하는 변수값이다. 이 값의 경우, Grad-CAM에서 object가 겹치는 문제로 인하여 약해진 값을 보정해주기 위하여 넣은 것으로 설명한다. 약해진 값은 어떻게 확인할 수 있을까?

이 논문의 저자는 object가 가려지거나 변형이 있을 때, Grad-CAM에서는 이를 잘 반영하지 못한다는 점이다. 겹쳐지거나 변형이 있는 경우 → activation 값이 낮아짐 → gradient 값이 낮아짐 → visualization 시 해당 영역이 드러나지 않음 의 사이클로 인해서 반영이 잘 되지 않는다.

이런 문제는 수식으로 어떻게 확인할 수 있을까?

![](https://velog.velcdn.com/images/conel77/post/34fcf897-6997-43c9-aa9f-5cf916d7bc31/image.png)

Grad-CAM의 GAP 수식에서 볼 수 있듯, 주요한 gradient값을 하나로 합치기 때문에 이를 heatmap으로 visualization했을 때 뭉개지는 현상이 나타나게된다.

따라서 Grad-CAM++에서는 weighted sum 으로 해결하였다.

상단의 식에 하단의 변형된 식을 대입하면 다음과 같이 쓸 수 있다.

이 식에 양변을 A^k_uj 에 대해 두번 편미분 진행하는 식을 살펴보면

결과적으로

식이 완성되게 되며, 재밌는 사실은 모든 i,j 에 대하여 위의 변수값이 1/Z 가 된다면 Grad-CAM의 식이 된다. 따라서 Grad-CAM의 generalizaed된 버전이 Grad-CAM++ 이라는 것을 다시 한번 확인할 수 있다.

여기서 중요한 제한 사항은 Y^c가 미분가능한 smooth function이여야한다는 점 ! 따라서 무한번 미분 가능한 softmax layer를 사용한다.

Grad-CAM++의 결과


다음과 같이 Grad-CAM의 문제점을 해결하였으면서, object들이 여러개 나오고 중복되어도 잘 visualization되는 것을 확인할 수 있다.

profile
어서오세요.

0개의 댓글