HeYStRanGeR
article thumbnail

(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

그림 출처: https://hellopotatoworld.tistory.com/18

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 역할을 한다. 

 

 

 

그림 출처: https://joungheekim.github.io/2020/09/29/paper-review/

 

기존의 CNN과 CAM의 구조 차이를 잘 보여주는 그림이다.

 

 

 

그림 출처: https://hellopotatoworld.tistory.com/18

 

: 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

 

 

 

728x90
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!