CNN visualization5 - Class Activation Map(CAM) -

1. motivation

 

주어진 이미지의 어떤 부분을 특히 참조하여 class를 판단했는지 heatmap 형태로 표현

 

이것의 또 다른 의미는 중요한 부분을 bounding box로 처리하여 사용할 수도 있다는 점

 

CAM의 예시

 

색이 잘 나온 부분을 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)에 대하여 채널별로 평균을 낸 것이다

 

global average pooling으로 gap feature를 얻는 과정

 

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의 채널들이 중요하게 생각하는 영역들이 다르다는 것을 배웠다

 

다음 그림이 수식을 명확하게 이해하게 해준다

 

CAM 수식을 그림으로 나타낸다면

 

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구조를 사용한다면 전체 모형을 재학습해야함

 

TAGS.

Comments