[논문리뷰 | CV] Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization(2019) Summary

9e0na·2023년 8월 10일
1

[논문리뷰]

목록 보기
19/42
post-thumbnail

Title

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


0. 이 논문을 읽기 전에 알면 좋을 것들

0.1. Convolution Neural Networks (CNN)

  • 이미지 데이터의 특성을 잘 반영하고 2D or 3D구조를 유지 및 학습하는 인공신경망 모델임.
  • Convolution 연산, Activaton 연산, Pooling 연산의 반복으로 구성
  • 일정 횟수 이상의 Feature Learning 이후에는 Flatten을 통해 이미지가 1차원의 vector로 변환됨.
  • 이미지를 입력 변수로 활용 & 이미지의 class를 맞추는 분류 모델 구조임.
  • Conv Layer와 Pooling Layer를 활용해서 이미지 내 정보를 요약함.
  • 최종 분류 예측 전에 Fully Connected Layer 활용.
  • Feature Extraction

    : 이미지가 들어왔을 때 이미지를 잘 요약할 수 있는 첫번째 단계
  • Classification

    잘 요약된 Feature를 가지고 분류하는 두번째 단계

0.2. Class Activation Map (CAM)

  • Learning Deep Features for Discriminative Localization(2016) 논문

  • CNN 모델로 예측 시, 어떤 부분이 class 예측에 큰 영향을 주었는지 확인 가능함.
  • 마지막에 global average pooling (GAP) 사용

Global average pooling(GAP)

그림 출처: https://you359.github.io/cnn visualization/CAM/

  • 각 feature map(채널)의 가중치값들의 평균
    • feature map의 크기와 관계없이 channel이 k개라면, k개의 평균값을 얻을 수 있음.
    • FC Layer와 달리 연산이 필요한 파라미터수를 크게 줄이고, overfitting 방지할 수 있음.
    • GAP Layer에서 위치정보를 담고 있기 때문에 localizaiton에 유리
  • 이 평균값들이 뒤의 어떤 분류기의 input이 됨.
    -> 일반적인 Nerual Network의 input

  • 이미지가 아이언맨이었다면, 아이어맨을 잘 분류할 수 있도록 weight들이 잘 조정이 됨.

분류 결과에 따라 CAM에 활용되는 weight가 달라짐.

  • 학습을 통해 얻어진 weight들을 앞의 Feature map에 곱함.
  • 각 feature map의 가중치가 적용된 feature map이 나오게 됨.
  • 동일 위치 Pixel별 합을 구하면, weight가 큰 부분이 밝게 보임.
    -> 해당 이미지가 밝게 보임.

CAM에서 마지막 Layer만으로도 원인 분석이 가능한 이유는?

  • 마지막 feature map 내 1개 값은 원본 이미지에서 많은 부분을 요약한 결과임.
  • 마지막 convolution feature map이 가진 정보량이 많기 때문.

0.3. CAM 구조 한계점

  • Global average pooling Layer를 반드시 사용해야 함.
  • 뒷 부분에 대해 fine tuning 과정을 해야 함.
  • 마지막 Conv Layer에 대해서만 CAM 추출 가능

Abstract

  • CAM 이후 1년 뒤에 등장함.
  • 2017년도 ICCV(International Conference on Computer Vision)에서 소개됨.
  • 저자들은 CNN 기반 모델의 결정에 대한 '시각적 설명'을 생성하는 기술, Grad-CAM을 제안
  • Grad-CAM은 대상 개념의 Gradient를 사용하여 예측에 중요한 이미지 영역을 강조
  • 다양한 CNN 모델에 아키텍처 변경 없이 적용 가능하며, 이미지 분류, 캡션 생성, VQA 등 다양한 작업에 활용
  • Grad-CAM은 모델의 결정에 대한 시각적 및 텍스트 설명을 제공하고, 사용자의 모델에 대한 신뢰를 증진

1. Introduction

  • CNNs는 이미지 분류, 객체 탐지, 시맨틱 분할, 이미지 캡션 생성, 시각적 질문 응답 등 다양한 컴퓨터 비전 작업에서 돌파구를 열었지만, 개별적으로 직관적으로 분해할 수 없기 때문에 해석하기 어려움.
  • Grad-CAM은 CNN 기반 네트워크의 모든 결정에 대한 시각적 설명을 생성하는 기술임. 이 기술은 아키텍처 변경이나 재훈련 없이 다양한 CNN 모델에 적용 가능함.
  • Grad-CAM은 이미지 분류, 이미지 캡션 생성, 시각적 질문 응답 등 다양한 모델에 적용되며, 실패 모드와 데이터셋의 편향을 진단하는 데 도움이 됨.
  • 위의 그림은 고양이와 강아지가 있는 이미지에 대한 다양한 시각화 방법을 보여줌.
  • Guided Backpropagation은 전체 특징을 강조하며, Grad-CAM은 특정 클래스를 구별하는 영역을 강조
  • Grad-CAM과 Guided Backpropagation을 결합하면 더 세밀한 클래스 구별 시각화가 가능함.
  • Grad-CAM은 계산 비용이 적으면서도 기존 방법과 유사한 결과를 제공

2. Related Work

  • 관심 있는 분들은 해당 논문을 살펴보면 좋을 것 같습니다.

3. Grad-CAM

  • CNN의 깊은 표현은 높은 수준의 시각적 구성을 포착하며, 마지막 Conv Layer는 고수준 의미와 공간 정보를 유지함.
  • Grad-CAM은 CNN의 마지막 컨볼루션 레이어로 흐르는 그래디언트 정보를 사용하여 특정 결정에 대한 각 뉴런의 중요도를 할당
  • 클래스 구별 위치 지정 맵을 얻기 위해 클래스 점수에 대한 Feature map 활성화의 Gradient를 계산
    -> Gradient 중요한 뉴런 가중치를 얻기 위해 평균 풀링이 됨.
  • Grad-CAM은 '양의' 영향을 주는 특징만에 관심이 있기 때문에 ReLU를 적용하여 최종 위치 지정 map을 얻음

  • 위의 식은 deep network의 partial linerarization을 의미, 타켓 class c에 대한 k채널의 feature map의 중요도를 나타냄.
  • 이때 (뒤) backpropagation을 통해 계산할 수 있고, (앞)은 GAP을 의미함.
  • Gradient을 통해 feature map의 가중치 계산

  • Gradient는 특정 class(output)에 특정 input이 주는 영향력
  • '양의' 영향을 주는 특징만에 관심이 있기 때문에 ReLU를 적용하여 최종 위치 Feature map을 얻음.
  • ReLU는 class c에 긍정적인 영향을 미치는 feature만을 확인하기 위해 사용
  • ReLU가 없는 경우 localization map는 가끔 원하는 클래스 외의 지역을 하이라이트하고, localization 성능이 떨어짐.

Gradient

: Feature map의 각 원소가 특정 class에 주는 영향력

  • 최종 결과를 각 feature map에 대해서 미분을 통해 원소마다 Gradient을 구한 뒤, 평균을 구하면 Feature map에 대한 영향력이 보여짐.

3.1. Grad-CAM generalizes CAM

  • Grad-CAM과 Class Activation Mapping (CAM) 사이의 연관성에 대해 논의하며, 다양한 CNN 기반 아키텍처에 대해 Grad-CAM이 CAM을 일반화한다는 것을 공식적으로 증명
    -> Grad-CAM이 CAM의 일반화인 이유를 설명
  1. GAP output FkF^k을 다음과 같이 정의할 수 있음.
  1. FkF^k를 위의 식에 대입하면 CAM은 최종 스코어를 다음과 같이 계산함.

  1. 이때 WkcW_k^c는 k번째 feature map과 class c를 잇는 가중치를 의미함. 클래스 스코어 YcY^c에 대한 feature map FkF^k의 gradient를 계산하면 다음과 같음.

  1. 위의 식을 계산하면 다음과 같음.

다음과 같은 식이 도출 됨.

  1. 2번에서 식을 다시 정리해보면, 다음과 같음.

  2. 모든 픽셀 (i,j)에 대해 양변에 시그마를 적용

  1. 이때,

이므로 다음과 같이 WkcW_k^c임을 알 수 있음.

따라서 Grad-CAM은 CAM의 일반화 버전임


3.2. Guided Grad-CAM

  • Grad-CAM의 접근법은 이미지 내의 미세한 부분을 처리하는 데 어려움이 있음.
  • Guided backpropagation visualization은 ReLu layer를 거쳐 backpropagating할 때, 음의 gradient를 없애며 시각화하는데, 이는 뉴런이 어떤 pixel을 감지하는지 명확하게 파악하기 위함.
  • Grad-CAM은 객체의 위치를 쉽게 파악할 수 있지만, 대략적인 heatmap을 통해 네트워크가 왜 특정 객체를 특정 클래스로 분류했는지의 이유를 파악하기는 복잡함.
  • 두 방법론의 장점을 결합하여 Guided backpropagation과 Grad-CAM을 element-wise 곱하여 시각화를 진행

  • 시각화 결과는 위와 같음.
  • 고해상도인 동시에 class-discriminative한 것을 확인할 수 있음.
  • Guided backpropagation with Decovolution과 비슷한 결과이지만 훨씬 노이즈가 적음.

4. Evaluating Localization Ability of Grad-CAM

4.1. Weakly-supervised Localization

  • bounding box에 대한 정보 없이 학습하는 모델을 의미
  • 이미지가 주어지면, 먼저 네트워크로부터 class prediction을 진행하고, 예측한 클래스에 대한 Grad-CAM map을 생성
  • GRAD-CCAM은 모델의 구조에 변화를 가하지 않기 때문에 classification 성능의 손실 없이 높은 localization

4.2. Weakly-supervised Segmentation

  • 각각의 픽셀들에 대해 classification을 진행
  • imagle-level에 대한 정보가 없이 학습이 이뤄지기 때문에 image classification dataset으로부터 데이터를 쉽게 구할 수 있음.
  • 기존의 알고리즘은 weak localization seed에 따라 성능이 민감하게 차이난다는 단점
  • 결과는 아래와 같음.


4.3. Pointing Game

  • 이미지에서 타켓 물체는 localizing하는 시각화 방법들의 discriminativeness를 평가
  • 히트맵에서 가장 크게 activate된 지점을 추출하고 실제 물체의 라벨과 비교하여 Acc를 구함.
  • 그러나 이 방법론은 정확도만을 측정하기 때문에 우리는 recall을 고려하기 위해 top-5 class prediction에 대한 localization map을 계산하고 만약 ground-truth가 아닌 부분을 아니라고 정확히 예측했다면 hit으로 분류함.
  • Grad-CAM은 70.58%의 성능으로 c-MWP의 60.30%를 상회하였고, Grad-CAM의 경우 이미지에서 해당 클래스가 나타나지 않으면 c-MWP와 달리 heatmap이 그려지지 않는 것을 확인할 수 있음.


5. Diagnosing image classification CNNs with Grad-CAM

5.1. Analyzing failure modes for VGG-16

  • VGG-16이 분류를 실패한 케이스들에 대해 실제 라벨과 예측된 라벨의 Guided Grad-CAM을 그려봄.
  • 위의 그림을 통해 알 수 있듯이 잘못된 예측에는 그럴만한 이유가 있음을 알 수 있었음.
    -> Guided Grad-CAM의 장점 중 하나는 고해상도이고, class-discriminative하므로 이러한 분석을 쉽게 가능

5.2. Effect of adversarial noise on VGG-16

  • Adversarial attack은 현재의 deep network가 가지는 취약점
  • 입력 이미지에 인지할 수 없는 노이즈를 넣으면 높은 확률로 잘못된 분류를 함.
  • VGG-16모델에 대해 실제로 존재하는 카테고리의 확률은 낮고, 존재하지 않는 카테고리의 확률이 높은 adversarial image를 생성하여 Grad-CAM visualization을 실행한 결과, Grad-CAM이 adversarial noise에 대해 상당히 robust함을 확인할 수 있었음.

5.3. Identifying bias in dataset

  • Grad-CAM은 학습 데이터셋의 편향을 감지하고 수정하는 데 유용함.
  • 이미지 검색을 통해 얻은 의사와 간호사의 데이터로 VGG-16 모델을 학습시켰을 때, 모델은 검증 정확도는 높지만 일반화 성능이 낮았음. 하지만 Grad-CAM을 사용하여 확인하니, 모델은 얼굴과 머리 스타일을 기준으로 분류함.
  • 검색된 의사 이미지의 대부분이 남자이고, 간호사 이미지의 대부분이 여자였음. 이러한 편향을 줄이기 위해, 학습 데이터에 다양한 이미지를 추가했고, 개선된 결과를 얻음.
  • Grad-CAM은 데이터의 편향을 감소시키고, 모델의 일반화 성능을 향상시키는데 도움을 줄 수 있음.

6. Conclusion

  • CNN 모델의 투명성을 높이기 위한 새로운 기술인 Grad-CAM을 소개하였고, 이를 통해 더 세밀하고 클래스를 구별하는 시각화를 제공함.
  • 본 논문의 저자들은 진정한 AI 시스템은 지능적일 뿐만 아니라 그것의 신념과 행동에 대해 이유를 설명할 수 있어야 한다고 주장함.
  • 향후 작업은 강화 학습, 자연어 처리 및 비디오 응용 프로그램과 같은 분야에서 딥 네트워크에 의해 내린 결정을 설명하는 등 이 기술을 확장할 계획임.

🎯 Summary

  1. 저자가 뭘 해내고 싶어 했는가?
  • 해석 가능성 향상
    : CNN 모델은 '블랙박스'로 간주되는 경우가 많기 때문에 해석 하기 매우 어려움. 하지만 Grad-CAM은 모델의 예측을 시각적으로 설명하면서 어떤 영역이 결정에 중요하게 작용하는지를 나타내어 모델의 행동을 이해하게 끔 함.
  • 기존 CAM과의 차별성
    : 모델의 아키텍처나 FC Layer의 수정 없이도 사용할 수 있음. 그리고 보다 넓은 범위의 모델에 적용할 수 있음
  • 일반화
    : 다양한 CNN 아키텍처에 분류, 객체 탐지, 캡션 생성 등에 적용할 수 있음. 여러 다른 모델과 시각적 설명 가능.
  1. 이 연구의 접근 방식에서 중요한 요소는 무엇인가?
  • Gradient Information
    : 선택된 출력 class에 대한 마지막 Conv Layer의 Feature map에 대한 Gradient Information을 사용하는 것. 이는 특정 class에 대한 각 feature map의 중요도를 나타냄.
  • Global Average Pooling(GAP) of Gradients
    : 각 feature map channeldml gradient를 평균화하여 해당 채널의 중요도를 계산함.
  1. 어느 프로젝트에 적용할 수 있는가?
  • 이미지 분류
  • 객체 탐지
  • 의료 이미징
    : X-ray, MRI 분석에서 분류하는 모델의 결정 근거를 시각적으로 확인
  • 이미지 캡션
  • 비디오 분석
  1. 참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?
  • Learning Deep Features for Discriminative Localization(2016)
  1. 느낀점은?
  • 딥러닝 모델은 항상 복잡했고, 왜 좋은 성능이 나오는지에 대한 이유를 설명하기 어려웠음.
  • 하지만 Grad-CAM 논문을 통해 딥러닝 모델의 투명성과 해석 가능성에 대해 공부할 수 있었고, 설명 가능한 AI 기술을 통해 추후 연구를 하게 될 때, 논리적으로 설명할 수 있길 소망함.

📚 References

profile
데이터사이언티스트가 되기 위해 [a-zA-Z]까지 정리하는 거나입니다 😊

0개의 댓글