(23.02.09)
WSL(weakly supervised learning) 논문 리뷰 1탄
CAM을 읽어보았다...!
꽤나 오래된 논문이지만, 아직도 꾸준히 인용되고 있다.
- 논문 제목: Learning Deep Features for Discriminative Localization (CVPR 2016)
- https://arxiv.org/pdf/1512.04150v1.pdf
Problem & Solution
Problem
- CNN이 좋은 성능을 내는데, 이것이 왜 좋은 성능을 내는지 쉽게 설명할 수 없다는 black-box 문제가 있다.
Solution
- CAM을 제안하여 CNN이 어떻게 task를 수행하는지 설명할 수 있게 된다. -> 즉, CNN이 어떤 부분을 보고 예측했는지를 알려주는 역할을 한다고 말할 수 있다.
Main Contribution
- CAM의 key point 2가지: weakly-supervised object localization, visualizing CNNs
- CAM을 통해 bounding box anntations 없이 object localization을 수행할 수 있다는 점 (weakly supervised object localizaiton)
- CNN이 어떻게 task를 수행할 수 있는지를 설명해준다는 점 (visualizing CNNs)
Method
0. Global Average Pooling
fc layer는 parameter의 개수를 증가시켜서 overfitting 가능성이 커지도록 하고, convolution feature map 에 존재하는 위치 정보가 손실된다는 단점을 보완하고자 gap를 사용하였다. gap는 overfitting을 방지하며, regularization 역할을 한다.
1. CAM (class activation mapping)
기존의 convolutional neural network의 구조는 conv layer + fc layer 이다.
CAM은 기존의 conv net에서 마지막 conv layer까지만 가져오고 그 뒤에 global average pooling layer를 붙이고 softmax를 붙인다. 정리하면, CAM은 conv layer + gap + softmax 이다.
fc layer는 parameter의 개수를 증가시켜서 overfitting 가능성이 커지도록 하고, convolution feature map 에 존재하는 위치 정보가 손실된다는 단점을 보완하고자 gap를 사용하였다. gap는 overfitting을 방지하며, regularization 역할을 한다.
기존의 CNN과 CAM의 구조 차이를 잘 보여주는 그림이다.
: spatial location (x,y)에서 마지막 conv layer의 unit k의 activation
: unit k에 대한 global average pooling 결과
: softmax의 input
w_k^c는 class c에 대한 F_k 의 importance를 나타낸다.
: class c 에 대한 softmax의 output
다시 정의해보면 아래와 같다.
: class c의 class activation map
: softmax의 input 값
Experiment