About me
home
Portfolio
home
🚥

CAM, Grad-CAM 정리

정의: CNN이 특정 클라스 이미지를 그 클라스라고 예측하게 한 그 이미지 내의 위치 정보
배경: CNN에서 마지막에 FC layer로 flatten시키면 위치 정보(spatial information)들을 잃게 된다. 그래서 마지막 FC layer 대신에 GAP(Global Average Pooling)을 적용하면, 특정 위치들을 구별하도록 만들 수 있다.
CAM을 통해 이미지의 Heat Map을 생성할 수 있다. 이 Heat Map을 통해 CNN이 어떻게 그 이미지를 특정 클라스로 예측했는지 알 수 있다.
마지막 Conv layer(n개의 channel로 이루어진)를 FC-layer로 flatten하지 않고, GAP을 통해 n개의 Weight들이 생긴다. n개의 weight들과 마지막 n개의 Conv layerWeighted Sum을 수행하여 히트맵이 나오게 한다. 그리고 Softmax 함수로 연결되어 있어 Weight들도 역전파(Back Prop.)을 통해 학습을 시킨다.
CAM의 단점: GAP가 반드시 필요하다는 것이 큰 단점이다. 마지막 Conv layer 뒤에 GAP을 붙여 다시 fine-tuning 해야하며 약간의 성능 감소가 생길 수 있다.
따라서 GAP를 사용하지 않는 Grad-CAM이 등장하게 된다.

Grad-CAM (Gradient CAM)

GAP 없이 FC layer 가 2개 존재한다.
기존 CNN 모델의 재학습이 필요 없다. 각 feature map에 곱해줄 Weight를 학습이 아닌 미분(gradient)를 통해 구하기 때문이다.