공부정리/Computer Vision

[핵심 머신러닝]Class Activation Map (CAM) (2) - GradCAM

sillon 2024. 1. 15. 14:02
728x90
반응형

해당 게시물은 아래의 유튜브 영상을 정리한 글입니다.
https://www.youtube.com/watch?v=rRiygGHjkOQ

이전 게시 글에서는 CAM에 대한 내용을 포스팅 하였음.
이번 게시글을 통해서는 Original CAM의 한계점을 개선하기 위해 만들어진 GradCAM에 대해 이어서 작성 함.

CNN + CAM 구조

CNN + CAM 구조

  • Convolution layer와 pooling layer를 활용해서 이미지 내 정보를 요약
  • 마지막 convolutional layer 뒤에 global average pooling 구조를 사용
  • Global average pooing (GAP) ?
    Pasted image 20240115111850.png

Original CAM 구조의 한계점

  • Global average Pooling layer를 반드시 사용해야함
  • 따라서 뒷부분에 대한 또 다시 fine tuning 을 해야함
  • 마지막 convolutional layer에 대해서만 CAM 추출이 가능
    Pasted image 20240115114015.png

Grad-CAM(2017)

  • CAM 방법론 이후 1년 뒤에 등장
  • 2017년도 ICCV(International Conference on Computer Vision)에서 소개됨

Pasted image 20240115113348.png

Grad-CAM 구조

  • GAP 사용 안함
  • CNN 기본 구조를 변형하지 않고 그대로 사용함 (즉, GAP Layer 필요 없음)
  • Gradient는 특정 class에 특정 input이 주는 영향력

Pasted image 20240115114221.png
만약 아이언맨이면, 아이언맨 클래스에 영향을 주는지에 대한 가중치를 본다

Pasted image 20240115133103.png|500

<C Class에 대한 CAM Score>

  • = 예측 class
  • = c Class 예측하는 K번째 Feature Map에 대한 Weigh
  • = K 번째 Feature Map
  • = Feature Map 내 i,j 위치 값
  • = Feature Map 별 합

첫번째 피처맵의 값을 모두 더한다. 그리고 피쳐맵의 웨이트를 곱함

만약 Global Average Pooling을 사용하지 않는다면?

  • Feature map 별 Weight도 사용하지 못함
  • Weight를 정의하는 방식을 바꾸자

Pasted image 20240115133414.png|500

Weight를 정의하는 방법을 바꾸는 법
-> Feature map의 각 원소가 특정 class에 주는 영향력
-> Gradient

Pasted image 20240115133458.png|500
각각의 feature map 원소를 미분함 -> gradient 값이 얻어짐
각 featrue map의 값들이 아웃풋에 어떤 영향이 있는지 살펴봄

Pasted image 20240115133930.png|500

기존에 weight로 구하고 featrue map으로 구해줬던 값들을
오리지널 CAM 에서는 학습으로 구했었음
Pasted image 20240115134027.png|500

이제는 각 Feature map에 대해 미분하여 값을 구하게 됨
각 요소의 최종 결과를 미분하여 원소마다 gradient 를 구하게 되어 영향력을 확인하게됨

Pasted image 20240115134107.png|500

Grad-CAM 의 예시

1. 강아지 분류

Pasted image 20240115134646.png

강아지 얼굴을 보고 판단

2. XAI 의료 영상

Pasted image 20240115134712.png

화살표 부분이 강조되어야하는 부분인데, 이 부분에서 잘 찾았다는 것을 보여줌

3. 대선 후보 분류

Pasted image 20240115134803.png
다른 후보의 경우 얼굴과 같은 특징을 잘 반영한 모습이 보이지만,
홍준표 후보의 경우엔 빨간 넥타이가 가장 강조 되었던 결과를 보임


이 글은 옵시디언 프로그램을 통해 티스토리에 게시되었습니다.

728x90
반응형