공부정리/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)에서 등장
Basic Idea of CNN
- 이미지 데이터의 특성을 잘 반영할 수 있는 인공신경망 모델
- 2D 혹은 3D구조를 유지하면서 학습
- 일반적인 CNN은 Convolution 연산, Activation 연산, Pooling 연산의 반복으로 구성됨 (Feature Learning, Feature representation)
- 일정 횟수 이상의 Feature Learning 과정 이후에는 Flatten 과정을 통해 이미지가 1차원의벡터로 변환됨
Class Activation Map
- CNN 모델로 예측 시, 어떤 부분이 Class 예측에 큰 영향을 주었는지 확인 가능
- 마지막에 global average pooling (GAP) 사용
CNN + CAM 구조
CNN + CAM 구조
- Convolution layer와 pooling layer를 활용해서 이미지 내 정보를 요약
- 마지막 convolutional layer 뒤에 global average pooling 구조를 사용
- Global average pooing (GAP) ?
Global Average Pooling
- 각 Feature map(채널)의 가중치 값들의 평균
각각의 Feature Map마다 평균을 구해서 하나의 피처맵을 요약함
아래의 예시는 6개의 Feature Map
분류 결과에 따라 CAM에 활용되는 Weight, 즉 아이언 맨의 가중치와 토르의 가중치들은 다르다.
각 Feature map의 가중치가 적용된 map이 나온다.
이것을 도일 위치 pixel 별 합을 구하게 됨
Class activation map에서 마지막 layer만으로도 원인 분석이 가능한 이유
- 마지막 convolution feature map이 가진 정보량이 많음
- 마지막 feature map 내 1개 값은 원본 이미지에서 많은 부분을 요약한 결과임
Original CAM 구조의 한계점
- Global average Pooling layer를 반드시 사용해야함
- 따라서 뒷부분에 대한 또 다시 fine tuning 을 해야함
- 마지막 convolutional layer에 대해서만 CAM 추출이 가능
이 글은 옵시디언 프로그램을 통해 티스토리에 게시되었습니다.
728x90
반응형