_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를 사용한다.

 

 

 

 

참고

 

https://sotudy.tistory.com/42

https://wikidocs.net/135874