CNN의 내부 black box 구조에 가깝기 때문 다른 아키텍쳐들보다 모델이 왜 성능이 좋은지, 왜 잘 돌아가는지 확인이 어렵다.

그래서 모델이 동작하는 과정에 힌트를 얻을 수 있도록 디버깅 툴로서 visualization tool 을 사용하고 있다. 

크게 모델의 행동, 동작 방식을 분석하는 방법들과 데이터를 중심으로 모델의 예측 결과를 분석하는 방법으로 나눌 수 있다. 

 

1. Analysis of model behaviors (모델의 행동 분석)

1-1. Filter weight visualization 

convolution filter 사이즈가 큰 경우에만 적용가능하긴 하지만, convolution 의 역연산인 deconvolution 을 활용하여 CNN layer 들이 어떤 정보를 가지고 있는지 확인할 수 있다.

 

1-2. Nearest neighbors 

class 를 대표하는 이미지(query image)를 넣었을 때 마지막 layer의 특징을 하나의 cluster로 잡고, 이미지 DB를 넣었더니 space내에서 유사한 이미지끼리 군집화 되어 있다는 것을 알 수 있었다. 

또한, 이미지 DB 에서 마지막 층의 feature map 중 가장 가까운 class 를 찾는 과정에서 train data 데이터 분포를 확인할 수 있다. 

이 방법은 고차원의 벡터를 분석하는 방법을 몰라 이미 만들어진 DB로 간접적으로 확인해보는 방법이다. 

1-3. t-SNE

(따로 정리해보겠어요..)

 

1-4. Macimally activating patches

layer activation 에서 가장 큰 값을 가지는 patch의 위치를 기반으로 분석하는 방법

 

1-5. Class visualization (데이터 사용하지 않고 아키텍쳐에서 바로 추출)

 

 

 

 

 

 

f(I) : 이미지를 모델에 넣었을 때 출력되는 클래스 스코어

즉, 특정 클래스의 점수를 최대로 만드는 이미지를 찾는 과정이다.

뒤에 regularization term 은 image norm 을 적게 만들어서 최소한의 변화로 class score를 높이는 이미지를 찾는 방향으로 나아가게 한다. 

 

이후 위의 loss function 을 이용하여 역전파를 수행하여 class score를 최대화하는 방향으로 업데이트 시키는 방법이다. 

 

 

2. Model decision explanation 

이번에는 데이터를 중심으로 모델이 이를 어떻게 예측하는지 분석하는 방법이다. 

2-1. CAM (Class activation mapping)

신경망이 이미지의 어떤 영역을 기준으로 특정 클래스에 대한 결정을 내리는지 알려주는 시각화 방법이다. 

FC layer 전에  GAP(global average pooling) 을 수행하여 가중합을 구한 후 FC layer 로 전달된다. 

하지만 모델의 구조를 변경시켜 재학습 시켜야 한다는 한계를 가진다. 

 

2-2. GradCAM

위의 한계를 극복하여 모델의 수정과 재학습 없이 한번의 역전파로 class activation map 구현 가능한 방법이다. 

 

'AI Tech 7기 > Computer Vision' 카테고리의 다른 글

DreamFusion  (1) 2024.09.06
AE(Auto Encoder), VAE(Variational Auto Encoder)  (1) 2024.09.04
Vision Transformer  (0) 2024.08.29
CNN 아키텍쳐  (0) 2024.08.29
sweetpotato7