Priceless

[부스트코스] CNN Visualization 본문

ComputerVision

[부스트코스] CNN Visualization

Hyun__ 2023. 11. 7. 20:23

1. Visualizing CNN(CNN 시각화)

Convolution Neural Network 를 시각화하는 필요성, 방법론

1-1. Visualizing CNN 이란

학습 모델이 성능이 잘 나오지 않은 경우가 있다

왜 잘 되지 않는지 알아보기 위한 방법이다

 

black box 구조: 내부를 알 수 없다

내부를 들어다보고 구조를 확인할 수 있다

 

weight의 다발로 있기 때문에 사실상 해석이 되지 않아

black box와 같다

 

시각화의 필요성

CNN 내부 구조를 확인하기 위해

왜 성능이 잘나오는지

성능을 높이는 방법을 알기 위해

 

 

1-2. Vanilla Example: Filter Visualization

간단한 방법

필터를 시각화 한다

 

필터를 시각화 할수도 있고 activation map 도 시각화 할 수 있다

간단한 시각화를 통해 CNN의 first layer가 어떤 것을 보고 어떤 것을 하고 있는지 알 수 있다

 

왜 첫번째 레이어를 사용하나?

뒤쪽 레이어는 차원 수가 높기 때문에 시각화하기 어렵다

직관적으로 알아볼 수 있는 형태가 아닐 수 있기 때문에 해석이 어렵다

반복된 conv으로 많이 변형되기 때문이다

 

1-3. Neural network를 시각화 하는 방법

다양한 시각화 방법

 

모델의 행위 특성을 분석하는 방법과 모델이 어떻게 결론까지 도달했는지 분석하는 방법이 있다

 

모델을 이해하기 위한 방법과 데이터 결과를 분석하는 방법으로 나눠져있다

2. Analysis of Model Behaviors(모델 특성 분석)

모델 특성 분석을 위한 시각화

 

high level layer를 거쳐서 얻은 feature를 분석하는 방법

2-1. Embedding Feature Analysis

step1

Nearest neighbors는 

데이터 베이스 내에 예제 데이터셋을 저장한다

 

쿼리 데이터가 들어오면 이웃 영상을 찾기 위해 검색한다

유사한 영상들을 거리에 따라 정리한다

 

의미론적으로 유사한 영상들이 cluster가 되어 있다

혹은 픽셀 값 비교를 통해 영상을 찾을 수 있다

 

물체의 위치 등에 상관 없이 개념을 잘 학습했다고 할 수 있다

 

 

feature space에서의 Nearest neighbors

embedding space 내에 고차원 feature vector로 구성되어 있다

 

미리 학습된 nn을 준비한다

fc layer를 거치기 전의 high level layer에서 feature를 추출한다

 

추출된 특징이 공간 내에 어디에 있을 때 

입력 값마다 추출된 특징을 공간에 나타낼 수 있다

 

step2

고차원 공간을 저차원 공간으로 변환한다(차원 축소)

 

high level layer을 해석할 때 사용할 수 있는

t-SNE 같은 대표적인 함수가 있다

유사도를 알 수 있다

 

 

 

2-2. Activation Investigation

layer activation 분석

mid high 해석

영상에 마스크를 씌워 모델이 무엇을 찾는지 확인할 수 있다

 

maximally activating patch

mid 해석

히든 노드에서 가장 큰 값을 가지고 있는 데이터를 뽑는다 patch

확인하면 patch들의 유사도를 확인할 수 있다

 

과정

- 특정 레이어에 있는 채널 중 하나 고른다

- 질의 데이터를 네트워크에 넣어서 activation을 다 뽑는다

이후 뽑고 싶은 채널의 activation을 저장한다

- 저장된 채널에서 가장 큰 값을 갖는 위치를 파악하고

입력 채널의 receptive field를 찾고 patch로 가져온다

 

 class visualization

클래스를 시각화 하여

주변에 무엇이 있는지도 확인할 수 있다

 

 

 

3. Model Decision Explanation(모델 결정 설명)

입력 데이터에 따른 모델이 한 결정을 시각화한 방법론 

모델에 특정 데이터를 입력했을 때 입력에 대해 어떤 결정을 내렸는지 확인한다

3-1. Saliency Test

Occlusion map(교합)

patch를 통해 찾고자 하는 물체를 가린다

이후 cnn을 거치면 점수가 나온다

 

물체의 중요한 영역을 가리면 점수가 낮아지는 것을 활용한다

 

- heatmap

patch를 이미지 모든 위치에 적용하는 방법이다

위치마다 나타나는 점수를 기록한다

 

Backpropagation

gradient acsent를 통해 

 

과정

- 입력 영상을 넣고 점수를 얻는다

- 입력 도메인까지 backpropagation을 진행한다

- 그 결과로 얻은 gradient의 절대적 크기(절대값 혹은 제곱)를 구해 이미지 형태로 출력한다

 

 

 

 

3-2. Backpropagate Features

3-3. Class Activation Mapping