머신러닝&딥러닝/논문리뷰

논문 리뷰: Learning Deep Features for Discriminative Localization

Like_Me 2020. 11. 11. 08:33
"Learning Deep Features for Discriminative Localization" (CVPR 2015) - Bolei Zhou

 

이번 논문은 오래됐지만 아직도 많이 인용되고 논문의 실험 결과로 자주 사용되는 Class Activation Maps (CAM)을 다룬 논문에 대한 리뷰이다.


문제와 해결책

 

  딥러닝 기술이 점점 정확도가 높아져가며 성능이 좋아졌지만 그것이 왜 그런 결과를 내는지는 알기 어려웠다. 이러한 것을 두고 딥러닝은 black box와 같다고 묘사를 하곤 한다. 그 안에서 무슨 일이 일어나는지 왜 그런 판단을 하는지 어렵기 때문이다. 이 어두컴컴한 상자에 빛을 내려준 기술 중 하나가 이 논문에서 제시한 Class Activation Maps (CAM)이다. 기존의 CNN에서 사용이 되는 모델은 Convolution Layer가 여러 겹 쌓여있고 마지막에 Fully-connected layer로 이어져 분류를 시행하게 된다. 반면, CAM 방법은 Convolution-Global average pooling-Softmax의 간단한 구조로 바꾸어 학습하게 된다. (항상 좋은 논문들을 보면 정말 간단한 아이디어가 큰 변화를 가져온다는 생각이 든다.) 이 방법을 사용하면 모델이 어떤 판단을 내려 output을 낼 때 어디에 집중하여 보았는지 볼 수 있기 때문에 Explainable 한 결과를 낼 수 있다.


 

Main Contribution : Class Activation Maps (CAM)

 

  논문의 가장 중요한 핵심은 CAM이다. 이 CAM이 이루어지는 방식은 상당히 간단하다. 먼저 위에서 설명한 바와 같이 Convolution층 바로 다음 Global Average Pooling(GAP)을 붙이고 softmax를 붙이는 모델 구조를 만든다.

binary classification

예를 들어 binary classification에서 Convolution층의 마지막 출력이 (width,height,channel) = (7,7,128)인 activation maps 가 있다고 하면 각 Channel 별로 모두 Global Average Pooling을 해주어 128개의 값이 나오면 softmax로 연결해주는 것이다. 위와 같이 [0,1]가 정답이라면 1 로가는 weights를 각 global average pooling을 한 마지막 activation maps에 곱해준다. 이렇게 하면 각 activation map과 weights를 곱하여 어디를 보고 판단을 했는지를 볼 수 있게 된다. 아래 그림은 이런 프로세스를 설명한 논문의 그림이다.

 

위의 그림에서는 Australian terrier를 분류하므로 사람의 얼굴에 집중한 첫 번째 activation map의 $W_{1}$은 낮은 값일 것이고 개의 특징에 주목한 두 번째, n 번째 activation map에 연결된 $W_{2},W_{n}$은 높은 값을 가질 것으로 유추할 수 있다. 

 

 

Figure 4.

  CAM을 사용한 결과는 상당히 잘 나왔다. 이중에 흥미로웠던 결과가 Figure 4에 제시된 그림인데 각 class별로 같은 이미지를 인식할 때 다른 곳을 보았다는 것이다. 사람도 어떤 물체가 무엇인지 판단할 때 각 물체별 특성을 보고 판단하는 것과 같은 프로세스라 생각했다. 정답은 dome이지만 palace의 확률이 가장 높게 나왔는데 왜 그렇게 판단했는지를 알 수 있는 실험이다.


 

Weakly-supervised Object Localization

 

  논문에서는 단지 Explainable한 모델을 제시한 것에서 그치는 것이 아니라 object localization을 한 실험도 제시한다. 먼저 CAM 방법으로 classification을 학습시킨 모델은 GAP를 사용하니 성능이 조금 저하되긴 했지만 경쟁력 있는 결과를 보여주었다. classification을 학습시킨 모델로 thresholding 방법을 사용하여 bounding box를 만드는 실험을 하였는데 놀랍게도 굉장히 좋은 성능을 보였다. table 2의 결과를 보면 기존의 bounding box를 annotation 하여 backpropagation 시킨 방법보다 더 좋은 성능을 보인다. 따로 학습을 하지 않았는데 이런 결과를 보여 재미있는 결과였다.


 

Experimental results

 

  이 외에도 논문에서는 정말 많은 실험 결과들을 제시한다. Fine-grained Recognition으로 200종의 새를 인식하는 문제에서 full image를 thresholding으로 crop하니 더 성능이 잘 나온다는 결과, Pattern Discovery로 장면에서 informative한 물체들을 인식하는 것에서 어디를 보고 판단했는지 알 수 있다는 결과 등 흥미로운 결과들이 있었다. 또 visual question answering에서 predictor가 문제에 대한 답을 무엇을 보고 맞혔는지 나타내는 것도 흥미로웠다. 이에 대한 결과는 Figure 12에 나와있다. 

figure 12.


 

Conclusion

 

이번 논문에서는 CNN의 결과를 설명할 수 있는 CAM 방법을 제시하였다. Explainable model 뿐 아니라 직접 학습을 하지 않고 localization에서도 좋은 성능을 이끌어내어 weakly-supervised object localization 방법도 제시하였다. 이 논문을 통해 CNN이 우리가 생각하는 대로 잘 동작하고 있다는 것을 알 수 있게 되었다. 논문에서 나온 표현을 빌리면 CNN의 영혼을 잠시 보는 접근 방법을 제시하였다. 하지만 CAM은 Global Average Pooling을 사용해야 한다는 단점이 있었고 이를 해결한 것이 grad-CAM 방법이다. 이에 대해서는 다음에 포스팅 할 것이다.