[컴퓨터 비전의 모든 것] CNN Visualization (3) : 결과 분석

2024. 12. 20. 03:33MOOC

Model Decision Explanation

이번 강의에서는 특정 입력에 대해 모델이 어떤 방식으로 예측을 수행하고 있는지 분석하는 방법을 살펴본다. 모델이 입력 데이터를 바라보는 관점을 시각화하고 이해함으로써, 모델의 결정 과정을 파악할 수 있다.


Saliency Test

Saliency Test는 모델이 입력 이미지의 어떤 영역에 주목하고 있는지를 시각화하는 방법이다.

Occlusion Map

  • 특정 영역을 가리고 입력했을 때, 클래스 스코어가 어떻게 변화하는지 관찰하여 중요한 영역을 추출한다.
    • 예: 코끼리 이미지에서 얼굴을 가리면 클래스 스코어가 크게 감소하지만, 주변 배경을 가리면 스코어가 유지됨.
  • 모든 영역에 대해 occlusion을 수행하고, 이를 맵으로 나타낸 결과가 Occlusion Map이다.
    • 모델이 예측을 수행할 때 어떤 영역을 중요하게 여기는지 직관적으로 파악할 수 있다.

Backpropagation을 활용한 Saliency Map

  • 입력 이미지를 분류할 때 중요한 역할을 한 영역을 heatmap으로 시각화한다.
    • 예: 관심 물체의 영역이 밝게 나타남.
  • 구체적인 과정:
    1. 이미지를 입력하여 클래스 스코어를 계산.
    2. 입력 도메인까지 backpropagation을 수행.
    3. 얻은 gradient의 절댓값을 시각화하여 Gradient Magnitude Map을 생성.
    • Gradient Magnitude가 클수록 해당 영역이 중요한 역할을 한다.

Backpropagate Features

Backpropagation 기반의 Saliency Map을 확장하여 더 정교한 분석이 가능한 방법들이다.

Guided Backpropagation

  • Forward pass와 backward pass에서 ReLU 활성화 함수로 얻은 mask를 사용하여, AND Gate로 결합한 후 saliency map을 생성한다.
  • 양수 gradient에 집중하여 모델의 클래스 분류에 영향을 미치는 영역만 시각화.
    • 사람이 입력 이미지를 분류할 때 중점적으로 보는 영역과 유사한 결과를 도출.

Class Activation Mapping (CAM)

CAM은 모델의 예측 결과에서 특정 영역이 얼마나 중요한지 heatmap으로 시각화하는 방법이다.

구현 과정

  • 모델 구조를 일부 변경해야 한다:
    • Global Average Pooling (GAP)을 도입하여 convolution layer의 feature map을 FC layer에 통과시키기 전에 공간 정보를 유지.
  • 클래스 스코어는 GAP 이후 FC layer의 선형 결합을 통해 계산된다.
  • CAM은 feature map의 픽셀별 중요도를 나타내는 heatmap으로 시각화된다.

결과

  • CAM은 모델이 물체의 위치 정보를 효과적으로 파악하고 있음을 보여준다.
    • 단순히 image classification을 수행했음에도, 물체의 위치와 같은 추가 정보를 학습.
    • 하지만 네트워크 구조를 변경하고 재학습해야 한다는 한계가 있다.

Grad-CAM

  • Grad-CAM은 CAM의 단점을 보완하여 기존 네트워크를 변경하지 않고도 시각화를 가능하게 한다.

  • 구현 과정:
    1. 관심 있는 activation layer까지만 backpropagation 수행.
    2. Loss를 기반으로 각 채널의 gradient 성분 크기를 계산(GAP 사용).
    3. 계산된 weight를 activation map과 결합하고 ReLU를 적용하여 heatmap 생성.
  • Grad-CAM은 다양한 구조에서 활용 가능하며, Guided Backpropagation과 결합하여 Guided Grad-CAM 결과도 확인할 수 있다.


확장된 방법: SCOUTER

SCOUTER는 Grad-CAM을 확장하여 모델이 특정 결과를 예측한 이유뿐만 아니라, 다른 결과로 예측하지 않은 이유까지 시각화한다. 이를 통해 모델의 결정 과정을 더욱 명확히 이해할 수 있다.


응용 가능성

CNN은 사람이 동의할 만한 세부적인 정보를 파악하는 능력을 갖추고 있다. 이러한 특성을 활용하여 다양한 응용 과제를 해결할 수 있다.

  • 예: GAN(Generative Adversarial Network)의 생성 과정에서 특정 노드가 집중하는 영역을 파악하고, 이미지를 부분적으로 수정하여 원하는 결과를 생성.