CAM 관련 이전 블로그 글 : https://chang-aistory.tistory.com/34?category=933399
CAM의 한계점 :
Global Average Pooling Layer(GAP) 사용해야 하는 한계
→ GAP는 별도의 CNN구조라고 할 수 있으므로, 뒷부분의 CNN구조를 다시 fine tuning해야하는 문제
마지막 conv layer에 대해서만 CAM 추출 가능한 것이 한계
CAM의 한계점을 Gradient로 해결

어떠한 목적을 위한 CNN일지라도 마지막 conv layer로 흐른 gradient로 이미지의 중요한 영역을 강조하는 localization map을 만든다 → 모델의 구조 변화 / 재학습 필요 x
FC 레이어에서는 공간적 정보의 손실이 일어나기 때문에 마지막 conv 레이어를 사용
마지막 conv 레이어는 이미지에서 클래스의 의미와 관련된 정보를 포함한다.
<notation 정의>
$L^C_{Grad-CAM}\in R^{u\times v}$ : u(width), v(height), class(C)에 대한 class-discrimitive-localization map
$y^c$ : softmax이전의 class c에 대한 score
첫번째로 conv레이어의 featurea map activations $A^k$ 에 대해 $y^c$ 에 대한 gradient를 계산한다. $i.e. \frac{\partial y^c}{\partial A^k}$