Slow is better than NOTHING

Computer Science/5. Deep learning

[Review] Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

Jeff_Kang 2019. 10. 27. 18:13
반응형

Grad-CAM에서 저자들은 visual explanations를 위한 기술을 제안한다고 표현한다. 이들은 현재의 딥러닝 모델들이 Black-Box 기반이며, 보다 정교하고 신뢰할만한 시스템을 설계하기 위해 이 작업에 대한 interpretability(해석가능성)을 중요하게 보고있다.

Grad-CAM

Interpretability Matters

딥러닝 시스템을 보다 신뢰할 수 있도록 설계하기 위해 'transparent model'을 설계해야한다. 여기서 transparent 라는 의미는 모델이 주어진 input에 대해 output을 출력한 이유에 대해 설명할 수 있는 모델이라는 것이다. 이 논문에서 설명하는 transparent model의 장점은 다음 3가지이다.

1. To identify the failure modes

  모델의 부족한 부분을 쉽게 알려줄 수 있기 때문에 연구자들이 보다 생산적이고 유익한 방향으로 의사결정을 할 수 있도록 도울 수 있다는 것이다. 쉽게 말하면, 그 동안의 시스템이 x가 주어졌을 때 y의 값을 단순히 출력만 했기때문에 문제점을 찾기 힘들었다면, transparent model은 출력하기 까지의 과정을 tracking 할 수 있기 때문에 문제점을 보다 쉽게 찾을 수 있다.

2. To establish appropriate trust and confidence in users

  출력에 대한 이유를 제공하기 때문에 시스템을 사용하는 User에게 신뢰를 줄 수 있다.  예를 들어, 고양이 이미지가 주어졌을때, 고양이에 bounding box가 적절하게 그려진 시스템은 그 시스템을 사용하는 '사람'의 인지능력과 동일함을 보여주기때문에 신뢰를 제공할 수 있을것이다.

3. Machine teaching a human about how to make better decisions

  2번에 대한 목표가 인간과 머신러닝 시스템이 동일한 능력을 가진 환경이라면, 3번은 인간보다 더 뛰어난 능력을 가진 시스템(e.g. Alpha Go or Chess bot) 인 환경이다. 해석능력을 가진 머신러닝 시스템은 인간에게 이상적인 의사결정을 할 수 있도록 도와주는 힌트를 제공할 수 있다.

 

Grad-CAM

Grad-CAN은 Zhou et al. 이 제안한 Class Activation Mapping(CAM)의 general version이다. 여기서 CAM 이란, image classification task에서 관심 영역을 확인할 수 있도록 식별 가능 지역을 heatmap 형태로 보여주는 딥러닝 시스템 해석 방법 중 한 가지이다. 아래의 사진을 보면 강아지의 얼굴을 식별하는 시스템을 CAM을 통해 식별하는 지역을 heatmap 형태로 설명하고 있다.

 

일반적으로 accuracy 와 모델의 간결성 또는 해석가능성은 trade-off 관계가 존재한다. 최근 ResNet을 보면, 200 개의 layer를 가지고 있으며 이는 최신 DNNs과 비교하여 다양한 task 에서 아주 우수한 성능을 보여주고 있다. 하지만 이러한 Complexity는 모델을 해석하기 더욱 힘들도록 만든다. CAM에서 사용한 CNN은 Fully-connected layers를 사용하지 않고 있으며, 일반적으로 모델의 복잡성과 성능에 대한 trade-off 때문에 두 가지 모두를 만족시킬 수 있는 방법론에 대해서는 많이 다뤄지지 않았다. 그 중 CAM 역시 모델의 complexity 와 performance를 절충한 모델로서, 시스템 해석을 위해서는 어느정도 성능 감소가 수반되었다. 또한 CAM은 softmax-layers에 적용되기 이전에 관심 영역에 대응 시키기 위한 'feature map(localization map)' 이 필요했기 때문에 특정 CNN architecture에만 적용가능하다는 한계점이 있었다. 이는 이 기술의 확장성 및 적용 가능성이 낮다는 점을 시사한다.
(i.e. conv feature maps --> global average pooling --> softmax layers 와 같은 CNN구조에서만 적용이 가능)

하지만, 소개하고자 하는 이 Grad-CAM 은 기존 architecture에 대한 변형 없이 performance를 유지한 채로 interpretability를 제공한다는 점에서 본 논문의 장점이 드러난다. 논문에서는 다음과 같이 표현한다.

We make existing state-of-the-art deep models interpretable without altering their architecture, thus avoiding the interpretability vs. accuracy tradeoff.

이들은 논문에서 feature map을 gradient signal 을 통해 결합하는 새로운 방법을 제시한다. 모델 구조를 변경하지 않으므로 이러한 trade-off 관계에 구애받지 않기 때문에, Grad-CAM 방법은 VGG, captioning, VQA, Reinforcement learning 등 다양한 CNN 구조에 적용이 가능하다.

 

Approach

일반적으로 CNN 의 마지막 Layer에 있는 fully-connected layers 는 1차원 공간으로 flatten을 하면서 이전에 갖고 있는 input의 공간정보를 잃게되고 고정된 크기만 받을 수 있다는 단점이 있었다. 이러한 단점은 object detection 등과 같은 위치 정보가 필요한 작업에서는 분명히 한계점이 존재하며, 다양한 input size를 받는 시스템에서도 적용에 어려움이 있다. Grad-CAM은 gradient information을 사용하여 CNN의 마지막 Convolutional Layer로 들어가는 각각의 neuron 중요한 정보를 의사결정을 위해 사용할 수 있도록 설계하였다. 전체적인 아키텍처는 다음과 같다.

이전에 소개한 CAM에 대해 다시 상기해보면, CAM은 특정한 구조를 가진 CNN이 image classification을 하기 위해서 "localization map"을 생성한다. 이는 softmax layer에 적용되기 전에 global average pooling을 통해 이루어지며, ${A}^{k} \in {R}^{u \times v}$ (A: feature map,k: feature, u: width, v:height) 라는 feature map을 생성한다. 즉 ${A}^{k}$ feature map은 Global Average Pooling(GAP)을 통해 pooling 되고, 각각의 class $c$에 대해 score(${S}^{c}$)를 생성하기 위해 선형 변환을 수행해준다.

Grad CAM의 feature map구하기 위해 위 순서를 다음과 같이 바꿀 수 있다.

그러나 이러한 구조의 수정은 모델을 retraining 시켜야 되는데 그 이유는 모든 모델구조가 feature map에서 outputd으로 연결시켜주는 weights ${{w}^{c}}_{k}$를 가지고 있는 것이 아니기 때문이다. 하지만 이러한 구조를 가지고 있는 모델에 대해서는 retraining을 하지 않아도 되기 때문에 Grad-CAM을 CAM의 generalization version 이라고 부르는 것이다. 자세한 증명은 친절하게도 본 논문의 Appendix A에 나와있다.

이후에 등장하는 Experment에 대한 결과들을 살펴보면, Grad-CAM을 이용해 visual explanations을 적절하게 잘 생성하여 인간의 의사결정에도 도움을 주고 biased된 데이터셋에 대한 정보를 제공해 주는 등 다양한 면에서 적용 가능성이 일반 CAM에 비해 상당히 높다는 것을 보여주고 있다. 심지어 adversarial noise에도 robust 한 모델을 생성할 수 있다고 하는데 이 부분에서는 깔끔한 설명이 제공되지 못해 아쉬움이 남는 단락이다. 본 논문은 이미지를 기반으로 한 task들에 초점을 두었지만, 강화학습 또는 NLP등에도 해석가능한 모델을 적용할 수 있다면 더욱 흥미로울 것 같다.

반응형