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 |