본문 바로가기
Paper review/CV

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

by 오서영 2025. 7. 1.

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

논문 한 줄 요약: CNN 기반 모델의 '결정 근거'를 시각화하는 기법 Grad-CAM(Gradient-weighted Class Activation Mapping)을 제안하여, 모델의 예측을 해석하고 신뢰할 수 있도록 하는 데 기여


딥러닝 모델의 해석 가능성 문제

현대의 딥러닝 모델들은 높은 성능을 보이지만 "블랙박스"로 여겨져 그 내부 동작을 이해하기 어렵다. 특히 의료진단, 자율주행, 금융 등의 중요한 의사결정 분야에서는 모델의 예측 근거를 명확히 이해하는 것이 필수적이다. 이러한 필요성으로 인해 설명 가능한 인공지능(XAI, eXplainable AI) 분야가 주목받고 있으며, 시각적 설명 방법들이 활발히 연구되고 있다.

CNN 모델의 경우, 입력 이미지에서 어떤 부분이 최종 예측에 영향을 미쳤는지를 시각적으로 보여주는 것이 모델 해석의 핵심이다. 이를 통해 모델이 올바른 특징을 학습했는지 확인할 수 있고, 잘못된 예측의 원인을 분석할 수 있으며, 데이터셋의 편향이나 문제점을 발견할 수 있다.

CAM의 등장과 기여

Class Activation Mapping(CAM)은 2016년에 제안된 방법으로, CNN 모델의 예측 근거를 시각화하는 혁신적인 접근법이었다. CAM은 Global Average Pooling(GAP)을 활용하여 CNN의 마지막 컨볼루션 레이어에서 클래스별 중요도 맵을 생성한다. 이 방법은 모델이 이미지의 어느 부분에 집중하여 특정 클래스로 분류했는지를 명확히 보여준다.

CAM의 핵심 아이디어는 다음과 같다. 마지막 컨볼루션 레이어의 각 feature map에 대해 Global Average Pooling을 적용하여 하나의 값을 얻는다. 이 값들을 가중합하여 최종 클래스 점수를 계산하는데, 이때 사용되는 가중치가 각 feature map의 중요도를 나타낸다. 따라서 feature map들을 이 가중치로 선형결합하면 클래스별 활성화 맵을 얻을 수 있다.

CAM 구조 예시

CAM의 한계점

하지만 CAM은 몇 가지 치명적인 한계점을 가지고 있다. 첫째, 모델의 구조가 반드시 GAP + FC layer 형태여야 한다. 이는 기존에 학습된 대부분의 모델들이 여러 개의 FC layer를 가지고 있기 때문에 심각한 제약이다. 둘째, CAM을 적용하기 위해서는 모델의 마지막 부분을 GAP 구조로 변경하고 재학습해야 한다. 이 과정에서 기존 모델의 성능이 저하될 수 있다. 셋째, 오직 마지막 컨볼루션 레이어에서만 시각화가 가능하다.

이러한 한계점들은 CAM의 실용성을 크게 떨어뜨린다. 특히 이미 배포된 모델이나 복잡한 구조를 가진 모델에서는 CAM을 적용하기 어렵다. 또한 ImageNet에서 사전 학습된 모델들을 전이학습으로 사용하는 경우에도 구조 변경이 필요하여 불편함이 크다.

Grad-CAM의 혁신적 접근

핵심 아이디어와 철학

Grad-CAM은 CAM의 이러한 한계점들을 근본적으로 해결하는 혁신적인 방법이다. 가장 중요한 아이디어는 CAM에서 사용하는 가중치 w_k^c를 gradient 정보로 대체하는 것이다. 이를 통해 어떤 CNN 구조든 상관없이 모델 변경 없이 바로 적용할 수 있다.

Grad-CAM의 핵심 철학은 "gradient가 중요도를 나타낸다"는 것이다. 특정 클래스에 대한 점수를 feature map의 각 위치에 대해 편미분하면, 그 위치의 값이 약간 변할 때 클래스 점수가 얼마나 변하는지를 알 수 있다. 이는 곧 그 위치의 중요도를 의미한다.

 

Grad-CAM의 수학적 정의를 단계별로 살펴보자. 먼저 클래스 c에 대한 점수를 y^c라고 하고, k번째 feature map을 A^k라고 한다.

1단계: Gradient 계산

이는 feature map A^k의 위치 (i,j)에서의 값이 클래스 c의 점수에 미치는 영향을 나타낸다. 양수이면 그 위치의 값이 증가할 때 클래스 c의 점수도 증가한다는 의미이고, 음수이면 반대이다.

2단계: 중요도 가중치 계산

여기서 Z는 feature map의 픽셀 수(i×j)이다. 이 과정은 각 feature map에 대해 모든 위치의 gradient를 평균내어 하나의 중요도 값을 구하는 것이다. 이는 CAM에서 사용하는 Global Average Pooling과 동일한 연산이다.

3단계: Grad-CAM 생성

각 feature map에 해당하는 중요도 가중치를 곱하고 모든 feature map에 대해 합산한다. 마지막에 ReLU 함수를 적용하여 음수 값을 제거한다.

ReLU 적용의 중요성

ReLU 함수의 적용은 Grad-CAM에서 매우 중요한 역할을 한다. 이는 단순히 음수를 제거하는 것이 아니라, 클래스 c에 "긍정적인 영향"을 미치는 부분만을 강조하기 위함이다.

구체적으로 설명하면, gradient가 양수인 부분은 해당 feature의 값이 증가할 때 목표 클래스의 점수도 증가함을 의미한다. 반대로 gradient가 음수인 부분은 해당 feature의 값이 증가할 때 목표 클래스의 점수가 감소함을 의미한다. Grad-CAM에서는 클래스 예측에 도움이 되는 부분을 시각화하는 것이 목적이므로 ReLU를 적용한다.

실험적으로도 ReLU를 제거하면 localization 성능이 떨어지고, 원하지 않는 영역이 강조되는 현상이 발생한다는 것이 확인되었다.

 

Grad-CAM의 해상도 한계

Grad-CAM은 뛰어난 일반화 능력을 가지고 있지만, 한 가지 중요한 한계가 있다. 마지막 컨볼루션 레이어의 feature map을 기반으로 하기 때문에 원본 이미지에 비해 해상도가 낮다는 것이다. 예를 들어, 224×224 입력 이미지에 대해 마지막 컨볼루션 레이어의 feature map이 14×14라면, Grad-CAM도 14×14 해상도를 가진다.

이는 대략적인 위치는 파악할 수 있지만, 정확한 경계나 세부적인 특징을 시각화하기 어렵다는 의미이다. 특히 의료 영상이나 정밀한 분석이 필요한 분야에서는 이러한 해상도 한계가 문제가 될 수 있다.

Guided Backpropagation의 특성

한편, Guided Backpropagation은 원본 이미지와 동일한 해상도의 시각화를 제공한다. 이 방법은 ReLU 레이어를 통과할 때 음의 gradient를 제거하여 뉴런이 감지하는 세부적인 픽셀 패턴을 시각화한다.

하지만 Guided Backpropagation은 클래스 구별 능력이 부족하다는 단점이 있다. 예를 들어, 고양이와 강아지가 함께 있는 이미지에서 "고양이" 클래스와 "강아지" 클래스에 대한 Guided Backpropagation 결과가 거의 동일하게 나타난다. 이는 두 방법 모두 전체적인 객체 영역을 강조하기 때문이다.

Guided Grad-CAM의 혁신적 결합

Guided Grad-CAM은 이 두 방법의 장점을 결합한 혁신적인 접근법이다. 수식으로 표현하면:

Guided Grad-CAM = Guided Backpropagation ⊙ Grad-CAM

 

여기서 ⊙는 element-wise 곱셈을 의미한다. 이때 Grad-CAM은 먼저 원본 이미지와 같은 크기로 업샘플링된다.

이 결합의 효과는 매우 강력하다. Guided Backpropagation이 제공하는 고해상도 세부 정보와 Grad-CAM이 제공하는 클래스별 위치 정보가 결합되어, 고해상도이면서도 클래스를 명확히 구별하는 시각화를 얻을 수 있다.

실제 적용 효과

실험 결과를 보면, Guided Grad-CAM은 다음과 같은 우수한 특성을 보인다. 첫째, 원본 이미지 수준의 고해상도 시각화가 가능하다. 둘째, 서로 다른 클래스에 대해 명확히 구별되는 시각화를 제공한다. 셋째, Deconvolution과 Guided Backpropagation의 조합에 비해 노이즈가 현저히 적다.

특히 클래스 구별 능력에서 큰 차이를 보인다. 같은 이미지에서 "고양이"와 "강아지"에 대한 Guided Grad-CAM은 각각 해당 동물의 영역만을 정확히 강조한다. 이는 모델의 의사결정 과정을 훨씬 명확하게 이해할 수 있게 해준다.

Image Classification에서의 심층 분석

이미지 분류 분야에서 Grad-CAM의 활용은 단순한 시각화를 넘어 모델의 동작을 깊이 있게 이해하는 도구로 사용된다. 특히 모델이 잘못된 예측을 했을 때 그 원인을 분석하는 데 매우 유용하다.

이미지 표시

VGG-16 모델의 분류 실패 사례를 분석한 결과, 대부분의 "잘못된" 예측에는 그럴만한 합리적인 이유가 있다는 것을 발견했다. 예를 들어, 화산(volcano) 이미지를 자동차 거울(car mirror)로 잘못 분류한 경우, Grad-CAM 시각화를 보면 모델이 실제로 이미지의 창문틀 부분에 집중했다는 것을 알 수 있다. 이는 모델이 완전히 무작위로 예측한 것이 아니라, 시각적으로 유사한 특징에 기반해 예측했음을 보여준다.

이러한 분석은 모델 개선에 직접적으로 활용될 수 있다. 모델이 잘못된 특징에 집중하는 패턴을 발견하면, 데이터 증강이나 학습 전략을 수정하여 모델의 성능을 향상시킬 수 있다.

Image Captioning에서의 혁신적 적용

이미지 캡셔닝 분야에서 Grad-CAM의 적용은 특히 흥미롭다. 기존의 attention 메커니즘이 없는 모델에서도 각 단어가 이미지의 어느 부분에 해당하는지를 시각화할 수 있기 때문이다.

이미지 표시

neuraltalk2 모델을 사용한 실험에서, 생성된 캡션의 각 단어에 대해 Grad-CAM을 적용하면 해당 단어와 관련된 이미지 영역이 강조된다. 예를 들어, "A man riding a bike"라는 캡션이 생성된 경우, "man"에 대한 Grad-CAM은 사람 영역을, "bike"에 대한 Grad-CAM은 자전거 영역을 강조한다.

이는 모델이 단순히 전체 이미지의 통계적 특성만을 보는 것이 아니라, 실제로 의미 있는 영역에 기반해 캡션을 생성한다는 것을 보여준다. 또한 잘못된 캡션이 생성된 경우 그 원인을 분석할 수 있어, 캡셔닝 모델의 개선에도 도움이 된다.

Visual Question Answering(VQA)에서의 복잡한 추론 과정 시각화

VQA는 이미지와 질문이 주어졌을 때 답을 생성하는 복잡한 태스크이다. 이 과정에서 모델이 어떤 추론을 거쳐 답에 도달했는지를 이해하는 것은 매우 어려웠다. Grad-CAM은 이러한 복잡한 추론 과정을 시각적으로 설명할 수 있는 강력한 도구를 제공한다.

예를 들어, "What color is the fire hydrant?"라는 질문에 대해 "red", "yellow", "yellow and red"라는 서로 다른 답변 후보에 대해 각각 Grad-CAM을 적용하면, 모델이 각 답변을 고려할 때 주목하는 이미지 영역이 다르다는 것을 확인할 수 있다. "red"에 대해서는 소화전의 빨간 부분이, "yellow"에 대해서는 노란 부분이 강조된다.

이러한 시각화는 VQA 모델이 단순히 이미지 전체의 특징과 질문을 매칭하는 것이 아니라, 질문에서 요구하는 특정 속성과 관련된 이미지 영역을 찾아 답변한다는 것을 보여준다. 이는 모델의 추론 능력을 객관적으로 평가할 수 있는 방법을 제공한다.