개발자노트/네이버 부스트캠프 AI
(작성중) Grad CAM
_heyna
2024. 1. 12. 20:40
CAM
Class Activation Map
이미지 분류 모델에서 이미지의 어느 부분을 보고 class를 예측했는지 시각화
CNN의 마지막 레이어를 FC layer로 Flatten 시키면 각 픽셀들의 위치 정보를 잃게 됩니다. 그래서 Classification의 정확도가 높더라도, 우리는 그 CNN이 무엇을 보고 특정 class로 분류했는지 알기 어렵습니다.
Global Average Pooling을 적용하면 특정 클래스 이미지의 Heat Map을 생성할 수 있고 그 Heat Map을 통해서 어떤 것을 보고 분류했는지 이해할 수 있게 됩니다.
그러나 CAM을 사용하기 위해서는 GAP를 사용해야 합니다.
이를 해결하기 위해서 Grad-CAM이 나왔습니다.
Grad-CAM
Gradient-Weighted CAM
목표 클래스의 소프트맥스 점수에 대한 그래디언트를 계산합니다.
이 그래디언트로 해당 클래스의 activation map에 대한 정보를 제공합니다.
gradient를 사용해서 weight를 구합니다.
Grad CAM 구하는 방법
1. Feature map의 각 원소가 특정 class에 주는 Gradient를 구한다.
2. 각 Feature map의 Gradient 평균을 구한다.
3. Feature map과 weight를 선형결합한다. 이때 ReLU를 사용한다.
참고