본문 바로가기
TIL/Boostcamp AI tech

[Boostcamp Lv2] Week7-Day30. CNN Visualization :: seoftware

by seowit 2021. 9. 16.
목차
1. 강의정리
    1-1. CV - chap6-1. CNN Visualization
    1-2. CV - chap6-2. AutoGrad

📜 강의 정리 


[CV] Chapter6-1. CNN Visualization

1. CNN Visualization은 무엇일까?

CNN 내부의 weight들을 시각화해보니 위와 같은 특징이 있었다. Low-level에서는 선분, 점 등의 특징을 추출하고, High-level에서는 디테일한 특징을 추출한다.

위와 같은 특징들을 시각화하는 방법은 모델을 분석하는 Analysis of model behaviors와 출력을 분석하는 Model decision explanation으로 나뉜다. 위에서는 Parameter examination에서 Filter visualization에 대해 알아보았다. 앞으로는 Feature analysis와 Sensitivity analysis에 대해 알아보자.  

 

2. Analysis of model behaviors

✔ Embedding feature analysis 1 - Nearest Neighbors search

: low, middle, high level을 거쳐 나온 feature들에 대해 분석. 

예제 영상을 통해 visualization을 하는 방법으로 Nearest Neighbors search 방법을 사용한다. Query data가 들어오면 DB에서 유사한 features를 가진 데이터를 거리에 따라 정렬한다.

아래 예시를 통해 Nearst Neighbors Search를 했을 때, 의미론적인 컨셉위치에 관계없이 학습함을 알 수 있다.

Nearest Neighbors Search는 각각의 이미지에 해당하는 feature map이 있다고 표현할 수 있다.

Nearest Neightbors Search는 전체적인 그림을 판별하기 어려운 단점이 있다.

 

✔ Embedding feature analysis 2 - t-SNE

고차원 분포는 가시적으로 확인 및 분석하기가 어려운데, 차원 축소 방법(Dimensionality Reduction)을 통해 고차원을 3차원 이하의 차원으로 변환시킬 수 있다.

Dimensionality Reduction 방법 중에 t-SNE 기법이 있다. t-SNE는 t-distributed stochastic neightbor embedding의 약어

t-SNE 기법을 통해 3, 5, 8의 분포가 맞다아 있음을 확인할 수 있다.

 

✔ Activation investigation 1

Layer activation : middle layer와 high layer을 해석하는 방법

위를 통해 알 수 있는 점은 hidden layer의 각 weight들은 특정 사물, 부분을 detection하는 특성을 가지고 있고, weight들의 조합으로 최종 분류를 하는 것을 알 수 있다.

중간 노드의 weight 중에서 가장 값이 큰 분포의 패치를 뜯어와서 시각화하면 다음과 같은 특징을 볼 수 있다. 부분적인 특징을 추출하기 때문에 high-level 보다는 mid-level 분석에 적합한 방법이다.

✔ Gradient ascent

모델이 어떤 이미지를 학습하고 있는지 보여주는 방법. 결과적으로 새 이미지가 몽환적으로 나오게 된다.

3. Model Decision Explanation

: 모델 입력이 특정 입력을 어떤 각도로 바라보는지 해석

✔ Saliency test

강아지 사진을 넣어주고 gradient의 제곱 또는 절댓값을 더해서 visualization 이미지를 업데이트한다. 하얀색 영역이 물체가 감지되는 영역으로 해석한다. 

위에서 봤던 gradient ascent 방법과 다른 점은 gradient ascent 방법은 백지에서 gradient가 그림을 그리는 방법인 반면에, saliency test는 input image(위의 예시에서는 강아지 사진)을 넣어주고 강아지 영역의 하얗게 표현한다. 

 

✔ Guided Backpropagation

forward와 backward 둘 다에서 ReLU 함수를 사용하는 것

 

✔ Class Activation Mapping - CAM

: 어떤 부분을 참조했는지 heatmap 형태로 시각화한 것.

모델의 마지막 conv layer에 GAP layer를 추가하는 방법으로 사용한다. 모델의 아키텍쳐를 변형하여 재학습한다는 점이 cam의 단점이다.

모델의 아키텍쳐를 변형하게 되면 FC layer가 3개인 AlexNet 같은 네트워크에서는 성능의 차이가 생길 수 있다.

이를 개선하기 위해 등장한 것이 Grad-CAM이다.


댓글