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 활용.
- : 이미지가 들어왔을 때 이미지를 잘 요약할 수 있는 첫번째 단계
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
- 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은 계산 비용이 적으면서도 기존 방법과 유사한 결과를 제공
- 관심 있는 분들은 해당 논문을 살펴보면 좋을 것 같습니다.
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의 일반화인 이유를 설명
- GAP output Fk을 다음과 같이 정의할 수 있음.
- Fk를 위의 식에 대입하면 CAM은 최종 스코어를 다음과 같이 계산함.
- 이때 Wkc는 k번째 feature map과 class c를 잇는 가중치를 의미함. 클래스 스코어 Yc에 대한 feature map Fk의 gradient를 계산하면 다음과 같음.
- 위의 식을 계산하면 다음과 같음.
다음과 같은 식이 도출 됨.
- 2번에서 식을 다시 정리해보면, 다음과 같음.
- 모든 픽셀 (i,j)에 대해 양변에 시그마를 적용
- 이때,
이므로 다음과 같이 Wkc임을 알 수 있음.
따라서 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
- 저자가 뭘 해내고 싶어 했는가?
- 해석 가능성 향상
: CNN 모델은 '블랙박스'로 간주되는 경우가 많기 때문에 해석 하기 매우 어려움. 하지만 Grad-CAM은 모델의 예측을 시각적으로 설명하면서 어떤 영역이 결정에 중요하게 작용하는지를 나타내어 모델의 행동을 이해하게 끔 함.
- 기존 CAM과의 차별성
: 모델의 아키텍처나 FC Layer의 수정 없이도 사용할 수 있음. 그리고 보다 넓은 범위의 모델에 적용할 수 있음
- 일반화
: 다양한 CNN 아키텍처에 분류, 객체 탐지, 캡션 생성 등에 적용할 수 있음. 여러 다른 모델과 시각적 설명 가능.
- 이 연구의 접근 방식에서 중요한 요소는 무엇인가?
- Gradient Information
: 선택된 출력 class에 대한 마지막 Conv Layer의 Feature map에 대한 Gradient Information을 사용하는 것. 이는 특정 class에 대한 각 feature map의 중요도를 나타냄.
- Global Average Pooling(GAP) of Gradients
: 각 feature map channeldml gradient를 평균화하여 해당 채널의 중요도를 계산함.
- 어느 프로젝트에 적용할 수 있는가?
- 의료 이미징
: X-ray, MRI 분석에서 분류하는 모델의 결정 근거를 시각적으로 확인
- 참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?
- Learning Deep Features for Discriminative Localization(2016)
- 느낀점은?
- 딥러닝 모델은 항상 복잡했고, 왜 좋은 성능이 나오는지에 대한 이유를 설명하기 어려웠음.
- 하지만 Grad-CAM 논문을 통해 딥러닝 모델의 투명성과 해석 가능성에 대해 공부할 수 있었고, 설명 가능한 AI 기술을 통해 추후 연구를 하게 될 때, 논리적으로 설명할 수 있길 소망함.
📚 References