Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
논문 원본 : https://arxiv.org/abs/1610.02391
발표 영상 : https://www.youtube.com/watch?v=U4Aq9GPH6Iw&t=2s
발표 자료
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
'논문 리뷰 > 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 |