CNN visualization5 - Class Activation Map(CAM) -
1. motivation
주어진 이미지의 어떤 부분을 특히 참조하여 class를 판단했는지 heatmap 형태로 표현
이것의 또 다른 의미는 중요한 부분을 bounding box로 처리하여 사용할 수도 있다는 점
색이 잘 나온 부분을 bounding box로 처리하여 사용할 수도 있다
2. CAM 구조
convolutional layer를 최종적으로 통과하고 나온 feature map을
global average pooling(gap)을 통과시키고 fully connected layer를 통과시켜 task를 하는 부분을 CAM 구조라고 한다
3. idea
CNN을 통과하면 k개의 channel을 가지는 feature map이 나온다고 하자
global average pooling이란 그러한 feature map을 각 채널 내에 존재하는 모든 pixel (x,y)에 대하여 채널별로 평균을 낸 것이다
gap feature $F_{k}$를 fully connected layer에 넣으면 class score를 구할 수 있다
$F_{k} = \sum_{(x,y)} f_{k}(x,y)$이고, k에 영향이 없으므로 $W_{k}$를 집어 넣을 수 있고
k에 대한 sigma와 (x,y)에 대한 sigma는 순서를 교환할 수 있으므로
유도한 CAM 수식이 무엇을 의미하는지 생각해본다면
$f_{k}(x,y)$는 채널 k의 feature map이고
$w_{k}^{c}$는 각 채널 k의 feature map이 class c를 판단하는데 얼마나 영향을 미치는지 가중치라고 볼 수 있다
앞에서 우리는 feature map의 채널들이 중요하게 생각하는 영역들이 다르다는 것을 배웠다
다음 그림이 수식을 명확하게 이해하게 해준다
4. 특징
결과가 명확하면서 압도적으로 좋은 성능을 낸다
해석적인 이미지 형태를 보여준다.
이미지 classification에서 결론을 내릴 때 어떠한 부분을 중요하게 생각했는지 파악이 가능하다
심지어 특별히 물체의 위치정보를 준적이 없는데 특정 물체 위치까지 판단하는 object detection이 가능하다
무슨 말이냐면 heat map에서 중요한 부분을 bounding box 처리하면 된다
5. weakly supervised learning
image classification을 수행했는데 image classification부터
위치정보를 받은 적이 없는데 object detection까지 수행하는 천재적인 모형이 등장
object detection같은 정교한 supervised learning task를 image classification 중간 결과로 얻는
해석적인 heat map 이미지로 간접적으로 해결하여 weakly supervised learning이라고도 부름
6. 단점
마지막 단이 반드시 Global average pooling을 1번 수행하고 그 뒤에 fully connected layer가 1개만 있어야함
앞 CNN을 pre-train 구조를 썼더라도 CAM구조를 사용한다면 전체 모형을 재학습해야함
'딥러닝 > Computer Vision' 카테고리의 다른 글
VPSNet의 panoptic segmentation 과정 분석 (0) | 2023.06.25 |
---|---|
CNN visualization6 - grad CAM - (0) | 2023.06.24 |
CNN visualization4 - guided backpropagation - (0) | 2023.06.22 |
CNN visualization3 - occlusion map & backpropagation saliency map (0) | 2023.06.21 |
CNN visualization2 - layer activation & class visualization (0) | 2023.06.20 |