[컴퓨터 비전의 모든 것] CNN Visualization (2) : 시각화 방법
2024. 12. 20. 03:24ㆍMOOC
Analysis of Model Behaviors
모델의 행동 방식과 특성을 분석하는 방법에 대해 살펴보자.
Embedding Feature Analysis
모델의 embedding feature를 분석하는 첫 번째 방법은 예제 이미지를 활용한 시각화다. Nearest-Neighbor 방식을 사용하여 query image를 입력하면, 데이터베이스(DB) 내에서 query image와 유사한 이미지를 찾는 방식으로 구현된다.
예제: Embedding Space의 군집화
예를 들어, 코끼리 이미지를 입력했을 때 유사한 코끼리 이미지가 반환된다면, embedding space 내에서 의미론적으로 유사한 이미지들이 군집을 이루고 있다는 것을 확인할 수 있다.
- 동일한 개 이미지라도 자세가 다를 경우, 이미지 자체는 상이해 보인다.
- 하지만 query image에 따라 적절한 이미지가 반환된다면, embedding space가 물체의 의미나 개념을 잘 이해하고 있음을 알 수 있다.
Embedding Vector 활용
이미지를 embedding vector로 표현하는 과정은 학습된 네트워크에 이미지를 forward pass하여 이루어진다.
- 보통 classification task에서는 embedding vector를 마지막 classification head로 연결하지만, 시각화를 목적으로 할 때는 embedding vector 자체를 사용한다.
- DB 이미지와 embedding vector를 매칭시킨 뒤, Nearest-Neighbor 알고리즘을 수행하여 결과를 도출한다.
차원 축소와 시각화
Embedding vector는 고차원 데이터를 포함하기 때문에 사람이 직관적으로 이해하기 어렵다. 이를 해결하기 위해 t-SNE와 같은 차원 축소 기법을 사용하여 3차원 또는 2차원으로 변환한다.
- 예시: MNIST 데이터셋의 숫자 이미지(0-9)를 t-SNE로 저차원 벡터로 매핑한 결과, 각 클래스가 색상별로 군집화되었음을 확인할 수 있다.
- 대부분의 데이터는 군집화되었지만, 일부 아웃라이어가 존재한다.
Activation Investigation
모델의 특정 layer에서 활성화된 값을 분석하여 모델의 동작 방식을 파악할 수 있다.
Layer Activation 분석
- 예시: AlexNet의 conv5 layer에서 특정 채널의 activation을 thresholding하여 mask를 생성한 뒤, 이를 원본 이미지에 overlay한 결과.
- 특정 채널이 얼굴을 탐지하거나 계단을 탐지하는 등, hidden node의 역할을 파악할 수 있다.
Activation Map 기반 분석
- Activation map에서 가장 큰 값을 가지는 patch 위치를 기반으로 분석한다.
- 이미지 입력 후 특정 layer의 activation map에서 최댓값 위치를 저장.
- 해당 위치에 해당하는 이미지 영역을 확인하여, layer가 탐지하는 대상(예: 강아지의 눈, 코 등)을 추정할 수 있다.
Class Visualization
Class visualization은 데이터를 사용하지 않고 네트워크 내 정보를 시각화하는 방법이다.
- 예시: "새" 클래스를 시각화한 결과, 새의 형상과 나뭇가지와 유사한 패턴을 탐지함을 확인할 수 있다.
- 데이터셋에 따른 특성도 반영된다. 예를 들어, "개" 클래스에서는 개와 함께 등장한 가족 이미지로 인해 아이의 형상이 나타날 수도 있다.
Gradient Ascent를 활용한 시각화
Gradient ascent 기법을 통해 클래스 스코어를 최대화하는 이미지를 생성한다.
- 임의의 dummy 이미지에서 시작.
- 특정 클래스의 스코어를 최대화하는 방향으로 이미지를 업데이트(backpropagation).
- 반복적으로 과정을 수행하여 최종 시각화 결과를 얻는다.
Loss Function
- 클래스 스코어를 최대화하는 argmax 항.
- Regularization term: L2 norm을 추가하여 사람이 이해 가능한 이미지를 생성하도록 제약을 부여한다.
'MOOC' 카테고리의 다른 글
[컴퓨터 비전의 모든 것] Instance Segmentation (3) | 2024.12.20 |
---|---|
[컴퓨터 비전의 모든 것] CNN Visualization (3) : 결과 분석 (0) | 2024.12.20 |
[컴퓨터 비전의 모든 것] CNN Visualization (1) : 동작 원리 (2) | 2024.12.20 |
[컴퓨터 비전의 모든 것] Object Detection (2) | 2024.12.20 |
[컴퓨터 비전의 모든 것] Semantic Segmentation (0) | 2024.12.20 |