[컴퓨터 비전의 모든 것] CNN Visualization (3) : 결과 분석
2024. 12. 20. 03:33ㆍMOOC
Model Decision Explanation
이번 강의에서는 특정 입력에 대해 모델이 어떤 방식으로 예측을 수행하고 있는지 분석하는 방법을 살펴본다. 모델이 입력 데이터를 바라보는 관점을 시각화하고 이해함으로써, 모델의 결정 과정을 파악할 수 있다.
Saliency Test
Saliency Test는 모델이 입력 이미지의 어떤 영역에 주목하고 있는지를 시각화하는 방법이다.
Occlusion Map
- 특정 영역을 가리고 입력했을 때, 클래스 스코어가 어떻게 변화하는지 관찰하여 중요한 영역을 추출한다.
- 예: 코끼리 이미지에서 얼굴을 가리면 클래스 스코어가 크게 감소하지만, 주변 배경을 가리면 스코어가 유지됨.
- 모든 영역에 대해 occlusion을 수행하고, 이를 맵으로 나타낸 결과가 Occlusion Map이다.
- 모델이 예측을 수행할 때 어떤 영역을 중요하게 여기는지 직관적으로 파악할 수 있다.
Backpropagation을 활용한 Saliency Map
- 입력 이미지를 분류할 때 중요한 역할을 한 영역을 heatmap으로 시각화한다.
- 예: 관심 물체의 영역이 밝게 나타남.
- 구체적인 과정:
- 이미지를 입력하여 클래스 스코어를 계산.
- 입력 도메인까지 backpropagation을 수행.
- 얻은 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의 단점을 보완하여 기존 네트워크를 변경하지 않고도 시각화를 가능하게 한다.
- 구현 과정:
- 관심 있는 activation layer까지만 backpropagation 수행.
- Loss를 기반으로 각 채널의 gradient 성분 크기를 계산(GAP 사용).
- 계산된 weight를 activation map과 결합하고 ReLU를 적용하여 heatmap 생성.
- Grad-CAM은 다양한 구조에서 활용 가능하며, Guided Backpropagation과 결합하여 Guided Grad-CAM 결과도 확인할 수 있다.
확장된 방법: SCOUTER
SCOUTER는 Grad-CAM을 확장하여 모델이 특정 결과를 예측한 이유뿐만 아니라, 다른 결과로 예측하지 않은 이유까지 시각화한다. 이를 통해 모델의 결정 과정을 더욱 명확히 이해할 수 있다.
응용 가능성
CNN은 사람이 동의할 만한 세부적인 정보를 파악하는 능력을 갖추고 있다. 이러한 특성을 활용하여 다양한 응용 과제를 해결할 수 있다.
- 예: GAN(Generative Adversarial Network)의 생성 과정에서 특정 노드가 집중하는 영역을 파악하고, 이미지를 부분적으로 수정하여 원하는 결과를 생성.
'MOOC' 카테고리의 다른 글
[컴퓨터 비전의 모든 것] Panoptic Segmentation & Landmark Localization (0) | 2024.12.20 |
---|---|
[컴퓨터 비전의 모든 것] Instance Segmentation (3) | 2024.12.20 |
[컴퓨터 비전의 모든 것] CNN Visualization (2) : 시각화 방법 (3) | 2024.12.20 |
[컴퓨터 비전의 모든 것] CNN Visualization (1) : 동작 원리 (2) | 2024.12.20 |
[컴퓨터 비전의 모든 것] Object Detection (2) | 2024.12.20 |