공부정리/Computer Vision

[핵심 머신러닝] Class Activation Map (CAM) (1)

sillon 2024. 1. 15. 13:58
728x90
반응형

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

Class Activation Map (CAM)

  • 딥러닝 프레임 워크에서 예측 원인을 파악하기 위해 등장한 알고리즘
  • 2016년도 CVPR(Computer Vision Pattern Recognition)에서 등장
    Pasted image 20240115110738.png|500

Basic Idea of CNN

  • 이미지 데이터의 특성을 잘 반영할 수 있는 인공신경망 모델
  • 2D 혹은 3D구조를 유지하면서 학습
  • 일반적인 CNN은 Convolution 연산, Activation 연산, Pooling 연산의 반복으로 구성됨 (Feature Learning, Feature representation)
  • 일정 횟수 이상의 Feature Learning 과정 이후에는 Flatten 과정을 통해 이미지가 1차원의벡터로 변환됨

Pasted image 20240115111131.png

Class Activation Map

  • CNN 모델로 예측 시, 어떤 부분이 Class 예측에 큰 영향을 주었는지 확인 가능
  • 마지막에 global average pooling (GAP) 사용
    Pasted image 20240115111330.png

CNN + CAM 구조

Pasted image 20240115111438.png
CNN + CAM 구조

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

Global Average Pooling

  • 각 Feature map(채널)의 가중치 값들의 평균
    Pasted image 20240115111932.png|500

각각의 Feature Map마다 평균을 구해서 하나의 피처맵을 요약함

아래의 예시는 6개의 Feature Map

Pasted image 20240115112323.png|500

분류 결과에 따라 CAM에 활용되는 Weight, 즉 아이언 맨의 가중치와 토르의 가중치들은 다르다.

Pasted image 20240115112342.png|500

각 Feature map의 가중치가 적용된 map이 나온다.
이것을 도일 위치 pixel 별 합을 구하게 됨

Pasted image 20240115112434.png|500

Class activation map에서 마지막 layer만으로도 원인 분석이 가능한 이유

  • 마지막 convolution feature map이 가진 정보량이 많음
  • 마지막 feature map 내 1개 값은 원본 이미지에서 많은 부분을 요약한 결과임

Pasted image 20240115112627.png

Original CAM 구조의 한계점

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


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

728x90
반응형