본문 바로가기
논문 리뷰/CV

[X:AI] Grad-CAM 논문 리뷰

by hyeon827 2024. 7. 6.

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

 

논문 원본 :  https://arxiv.org/abs/1610.02391

 

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

We propose a technique for producing "visual explanations" for decisions from a large class of CNN-based models, making them more transparent. Our approach - Gradient-weighted Class Activation Mapping (Grad-CAM), uses the gradients of any target concept, f

arxiv.org

 

발표 영상 : https://www.youtube.com/watch?v=U4Aq9GPH6Iw&t=2s

 

발표 자료

2024_5기_ADV_Session_Grad CAM_조현식.pdf
19.40MB

 

Class Activation Map (CAM) 관련 알고리즘

  • CNN이 이미지를 개라고 판별할 때와 고양이라고 판별할 때, 각각 이미지에서 중요하게 생각하는 영역이 다를 것
  • 즉, CNN 모델이 어느 곳을 보고 있는지 시각화 해주는 알고리즘

 

Class Activation MAP (CAM)

  • 2016년도 CVPR 학회 에서 등장한 방법론
  • CNN 모델로 예측 시, 어떤 부분이 class 예측에 큰 영향을 주었는지 확인 가능

  • 일반적인 CNN 구조는 Convolutional layer가 있고, Fully-Connected layer가 따라 붙는 구조
  • 하지만 CAM 계산을 위해서는 Convolutional layer 이후를 Global Average Pooling (GAP) 레이어로 바꿈

GAP (Global Average Pooling)

  • 각 feature map의 값들의 평균
  • 아래 그림에서는 feature map의 depth가 4이기 때문에 총 4개 값으로 이루어진 벡터를 얻게됨

  • GAP이 끝나면 FC layer를 붙여 fine-tuning 진행
  • 분류 결과에 따라 CAM에 활용되는 Weight가 달라짐

  • 전체 과정 요약
  • CAM의 특징은 class마다 계산할 수 있다는 점 (Dog class로 CAM을 계산할 경우 다른 heatmap을 얻게됨)

 

    마지막 Convolutional layer으로 CAM을 추출하는 이유

  • CNN의 각 layer는 처음에는 specific한 정보를, 뒤로 갈수록 broad한 범위의 정보를 갖음
  • 따라서 이미지 전체 중 특정 영역을 찾기 위한 layer로 마지막 layer가 가장 적합

  • CAM 결과 이미지

 

   CAM의 한계점

  • Global Average Pooling layer를 사용해야만 함
  • GAP layer를 사용해야 하기에 FC layer를 또 다시 fine tuning을 진행해야함
  • 마지막 Convolutional layer에 대해서만 CAM을 추출할 수 있다는 점

 

Gradient-weighted CAM (Grad-CAM)

  • CAM 방법론 이후 1년 뒤에 등장
  • 2017년도 ICCV에서 소개 됨

 

 

1. Abstract & Introduction

  • CNN을 기반으로 한 Deep Neural Model은 이미지 분류, 객체 탐지 등 다양한 CV task에서 놀라운 성과를 거둠
  • 하지만 개별적으로 직관적인 구성 요소로 분해할 수 없기 때문에 해석이 어려움

   해석 가능성 중요 (Interpretability matters) 

  • '투명한' 모델 구축
  • (AI < 인간) 모델의 실패 원인을 분석하고, 연구의 방향성의 제대로 잡기 위함
  • (AI = 인간) 모델 사용자에게 신뢰감을 주기 위함
  • (AI > 인간) 기계가 인간에게 더 나은 결정을 내리는 방법을 가르치기 위함

    What makes a good visual explanation?

  • 클래스 구별이 가능해야 함 (즉, 이미지에서 해당 카테고리를 localize할 수 있어야 함)
  • 고해상도여야 함 (즉, 세밀한 디테일을 포착할 수 있어야 함)

 

   Contributions

  • 아키텍처 변경이나 재훈련 없이 모든 CNN 기반 네트워크에 대해 visual explanation 생성
  • 이미지 분류, 이미지 캡션 생성, 시각적 질문 응답(VQA) 모델에 적용 가능
  • 데이터셋의 편향을 발견하고 모델의 문제점을 진단할 수 있음
  • 최신 모델인 ResNet (2017년 기준) 에도 적용 가능
  • 중요한 뉴런(ex. 고양이의 눈과 귀)을 식별하고 이를 통해 모델의 결정을 텍스트로 설명 가능
  • 전문 지식이 없는 사용자도 '강한' 모델과 '약한' 모델을 구분할 수 있음

 

2. Related Work

 

   Visualizing CNNs

  • [Deep inside convolutional networks : Visualising image classification models and saliency maps, K. Simonyan et al., 2013] 등
  • 다양한 선행 연구들은 CNN 예측에 있어 pixel 단위의 영향력을 시각화하려는 연구가 많았으나 class-discriminative X
  • 각 예측(cat, dog)에도 불구하고 feature map 상 두 클래스가 구분되지 않음

    Other Visualization

  • [Visualizing Higher-layer Features of a Deep Network, 2009] 등
  • 네트워크 유닛을 최대한 활성화하는 이미지 합성
  • 1. 랜덤함 이미지(고양이 이미지 X)에서 시작
  • 2. 뉴런이 더 많이 활성화되도록 이미지 조금씩 조정(고양이 특징을 점점 추가)
  • 3. 이 과정을 여러 번 반복하여 뉴런이 최대한 활성화되는 이미지를 얻음
  • 모델 내부의 잠재 표현(즉, 이미지의 특징)을 이용하여 원래 이미지 복원

    => 모델이 고양이를 인식할 때 주목하는 특징들이 강조된 이미지를 얻을 수 있음

  • 이러한 방법들은 고해상도이면서도 클래스 구별이 가능
  • 하지만 이는 특정한 한 장의 사진에만 해당하는 것이 아니라, 모델이 학습한 전체적인 패턴이나 특징을 시각화

 

   Assessing Model Trust

  • ["Why Should I Trust You?": Explaining the Predictions of Any Classifier, 2016]은 모델에 대한 신뢰성 연구
  • 본 논문은 이에 영감을 얻어 human study을 통해 Grad-CAM 시각화 평가
  • Grad-CAM이 자동화된 시스템(Deep Learning Model)을 평가하고 이용자에게 신뢰를 주기 위한 도구가 될 수 있음

   Aligning Gradient-based Importances

  • [Choose your neuron: Incorporating domain knowledge through neuron-importance, 2018]
  • Gradient 기반 Neuron 중요성 식별 
  • ex) 특정 클래스(예: 고양이)에 대한 예측에서 중요한 역할을 하는 뉴런들을 식별
  • 이러한 뉴런의 중요성을 인간의 class specific domain-knowledge와 매핑
  • ex) 고양이를 인식할 때 중요한 뉴런들은 고양이의 귀, 눈, 수염 등을 인식
  • 새로운 클래스 학습
  • ex) 고양이와 비슷한 특징을 가진 호랑이를 인식하기 위해 고양이 뉴런의 중요성 활용

   Weakly-supervised localization

  • 이미지 내 객체를 localize하기 위해 전체적인 이미지 클래스 라벨만 사용하는 방법
  • 해당 연구 중 가장 대표적이고 Grad-CAM과 연관이 깊은 것이 CAM(Class Activation Map)

 

3. Grad-CAM

  • CNN의 얕은 층은 specific한 정보를, 깊은 층으로 갈수록  broad한 범위의 정보를 갖음
  • 따라서 본 논문에서는 CNN의 마지막 layer에 흘러들어가는 gradient를 이용해 모델의 예측에 있어 각 뉴런의 중요도를 파악하는 연구 진행
  • Gradient는 Feature map의 각 원소가 특정 class에 주는 영향력

 

  • CNN 기본 구조를 변형하지 않고 그대로 사용 (즉, GAP layer 사용 X)

 

  • 추가 학습 필요없이 gradient를 통해 가중치를 구함

 

  • class C socre(yc)를 K번째 feature map의 (i,j)번째 원소에 대해 미분 
  • 이를 모두 합하고 global average pooling을 통해 k번째 feature map의 중요도(αkc)를 구함
  • yc는 꼭 class score일 필요가 없고, 미분 가능한 downstream task 결과이면 됨
  • k번째 feature map의 중요도(αkc)를 K번째 feature map과 선형 결합하여 Grad-CAM을 구함
  • 이때 ReLU를 사용해 양의 영향을 갖는 feature map만 가져옴

 

 

   3.1 Grad-CAM generalizes CAM

  • Grad-CAM이 CAM의 일반화인 이유를 공식적으로 증명
  • CAM 수식
  • GAP의 결과를 Fk로 치환

 

  • class socre Yc에 대한 feature map Fk의 gradient 계산

  • Grad-CAM이 CAM의 확장임(일반화)을 확인

 

   3.2 Guided Grad-CAM

  • Grad-CAM은 class-discriminative하지만 pixel-space visualization(ex. Guided Backpropagation)처럼 이미지 내의 미세한 부분을 처리하는 데 어려움 존재 (ex. 왜 'tiger cat'으로 예측했는지 알 수 X)
  • Guided Backpropagation : 모델의 출력에 대한 입력 이미지의 gradient를 계산, ReLU 활성화 함수에서 역전파할 때, 음의 gradient를 억제하여 양의 gradient만 전파  (하지만 class-discriminative X)
  • 두 방법 장점을 결합하자는 아이디어 (= Guided Grad-CAM)
  • Guided Backprop과 Grad-CAM 간 element-wise 곱하여 시각화
  • Grad-CAM은 먼저 bilinear interpolation을 사용하여 입력 이미지 해상도로 upsampling
  • (결과) 고해상도인 동시에 class-discriminative한 것을 확인

  • Guided Backpropagaition을 Deconvolution으로 대체해도 유사한 결과를 얻을 수 있지만, Guided Backpropagation이 일반적으로 노이즈가 적음

 

 

4. Evaluating Localization Ability of Grad-CAM

   4.1 Weakly-supervised Localization

  • Grad-CAM에서 최대 발화의 15%를 임계값(threshold)로 설정
  • 즉, 히트맵의 각 픽셀 값이 해당 임계값보다 크면 1(흰색), 작으면 0(검은색)으로 설정
  • 이진화된 히트맵에서 값이 1인 픽셀들이 연결된 segment 형성
  • 여러 segment가 있을 수 있지만, 가장 큰 단일 segment를 찾아 이를 둘러싸는 bounding box 생성
  • Grad-CAM은 localization 성능이 상대적으로 좋은 것을 확인
  • CAM은 모델 구조를 바꿔야 하기 때문에 상대적으로 classification 정확도 감소

 

   4.2 Weakly-supervised Segmentation

  • image-level에 대한 주석만으로 각각의 픽셀들에 대해 classification을 진행
  • 해당 주석은 image clssification dataset으로부터 쉽게 구할 수 있음

    Weakly-supervised을 위한 새로운 loss function 소개 (ex. 고양이)

  • 1) Weak Localization Cues : CAM 맵을 사용하여 고양이 얼굴 등의 중요한 위치를 찾음
  • 2) Object Seed Expansion : 초기 단서에서 고양이의 전체 영역으로 확장
  • 3) Boundary Constraints : segmentation이 고양이의 실제 경계를 정확히 따르도록 함
  • Grad-CAM 사용하여 더 높은 성능을 얻어냈고 PASCAL VOC 2012 segmentatin task에서 IoU 점수 49.6 기록

 

 

5. Evaluating Visualizations

   5.1 Evaluating Class Discrimination

  • 43명의 AMT 직원들 대상으로 주어진 map(from VGG-16, AlexNet)에서 두 개의 카테고리 중 어느 것이 더 잘 식별되는지 평가 (90장)
  • Guided Grad-CAM (61.23%) > Deconvolution Grad-CAM (60.37%) > Deconvolution (53.33%) > Guided Backprop (44.44%)

 

   5.2 Evaluating Trust

  • 54명의 AMT 직원들 대상으로 두 모델(VGG-16, AlexNet)의 예측에 대한 신뢰성 평가
  • Guided Backpropagation을 사용한 경우, 평균 점수가 1로 VGG-16이  AlexNet보다 '약간 더' 신뢰할 수 있다고 평가
  • 반면, Guided Grad-CAM은 평균 점수가 1.27로 더 높은 점수를 받아 VGG-16가이 '명확히 더' 신뢰할 수 있다고 평가
  • 이를 통해 Grad-CAM이 모델의 신뢰성을 평가하는 데 유리한 것을 알 수 있음

 

 

6. Diagnosing image classification CNNs with Grad-CAM

   6.1 Analyzing failure modes for VGG-16

  • VGG-16이 분류에 실패한 케이스
  • 고해상도 & class discriminative한 Guided Grad-CAM을 통해 실패 원인 분석 가능

 

   6.2 Effect of adversarial noise on VGG-16

  • 원본이미지에 adversarial noise 추가하여 모델이 잘못된 예측을 하도록 유도
  • Grad-CAM은 adversarial noise에 robust함을 확인

 

   6.3 Identifying bias in dataset

  • Biased dataset (의사=남자, 간호사=여자)으로 학습한 모델의 예측 결과를 확인해보니 머리 스타일 기준으로 분류함
  • 데이터셋에 남자 간호사, 여자 의사를 추가하여 편향의 감소시켜 모델의 정확도 향상시킴 
  • Test accuracy 82% -> 90% 개선

 

 

8. Grad-CAM for Image Captioning and VQA

   8.1 Image Captioning

  • Grad-CAM을 통해 이미지 캡션에 대한 위치를 시각화할 수 있음
  • 본 논문에서는 Neuraltalk2 모델에 Grad-CAM 적용
  • Neuraltalk2(image captioning model) : fintuned VGG16 + LSTM based language model
  • 이 모델은 attention 매커니즘이 없음
  • 캡션이 주어지면 로그 확률에 대한 마지막 CNN layer의 gradient를 계산하고 Grad-CAM visualization 생성
  • 'man'이라는 caption에 대해 이미지에서 여자가 아닌 남성의 얼굴에만 activated 됨을 확인할 수 있음

 

   Dense Captioning

  • Fully Convolutional localization network + LSTM-based language model
  • RoI에 대한 bounding box를 생성 + 관련 caption을 생성
  • bounding box를 기준으로 Grad-CAM의 박스 내부와 외부의 평균 activation 값의 비율 계산
  • Grad-CAM 3.27 ± 0.18, Guided Grad-CAM 6.38 ± 0.99, Guided Backpropagation 2.32 ± 0.08
  • 즉, Grad-CAM은 bounding box에 대한 학습이 전혀 없음에도 DenseCap이 설명하는 지역에 대해 잘 localize 할 수 있음

 

   8.2 Visual Question Answering

  • 전형적인 VQA(Vision Question Answering) 파이프라인은 이미지를 처리하기 위한 CNN과 question을 위한 RNN 언어 모델로 구성
  • 이미지와 question이 결합되어 답변을 예측하며, 일반적으로 1000개의 분류 문제로 해결
  • 분류 문제이기 때문에 answer(score yc)를 선택하고 해당 score를 사용하여 Grad-CAM을 통한 시각화 수행
  • Occlusion map과의 상관관계를 통해 VQA에서의 Grad-CAM 성능 측정
  • Occlusion map : 이미지의 일부분을 가려 모델의 예측 변화량을 측정하여, 이미지의 각 부분이 모델 예측에 얼마나 기여하는지 시각화하는 방법 (특정 패치를 가렸을 때 구문이 변하면, 해당 패치가 중요하다는 의미)
  • Guided Backpropagation의 경우 0.42 ± 0.038, Grad-CAM의 경우 0.60 ± 0.038
  • 우측은 ResNet에 적용한 Grad-CAM으로, 200개 layer를 갖는 deep model에 대해서도 downstream task(VQA)의 결과를 잘 설명할 수 있음을 보여줌

 

 

9. Conclusion

  • class-discriminative한 localization 방법론인 Grad-CAM을 제안했고 이를 통해 CNN 기반 모델을 보다 투명하게 만듦
  • 진정한 AI는 지능적일 뿐만 아니라, 그 결정을 인간이 이해하고 신뢰할 수 있도록 설명할 수 있어야 한다고 주장
  • 향후 연구는 강화학습, 자연어 처리, 비디오 응용 분야에서의 설명 가능한 AI 구축을 목표로 할 계획임

 

Reference

https://www.youtube.com/watch?v=uA5rIr79I0o

https://www.youtube.com/watch?v=rRiygGHjkOQ

https://tyami.github.io/deep%20learning/CNN-visualization-Grad-CAM/

http://dmqm.korea.ac.kr/activity/seminar/274

https://velog.io/@tobigs_xai/CAM-Grad-CAM-Grad-CAMpp

https://velog.io/@9e0na/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-CV-Grad-CAM-Visual-Explanations-from-Deep-Networksvia-Gradient-based-Localization2019-Summary

https://arxiv.org/abs/1512.04150

https://arxiv.org/pdf/1610.02391

'논문 리뷰 > CV' 카테고리의 다른 글

[D&A] GAN 논문 리뷰  (0) 2024.07.17
[X:AI] SimCLR 논문 리뷰  (1) 2024.07.14
[X:AI] Taskonomy 논문 리뷰  (0) 2024.05.21
[X:AI] Mask R-CNN 논문 리뷰  (0) 2024.05.06
[X:AI] SegNet 논문 리뷰  (0) 2024.04.09