부스트캠프 5주차

TAEJUN YOUN·2022년 10월 23일
0

CNN Visualization

1. CNN Visualization이란?

CNN의 연산은 그자체로는 해석이 어렵기 때문에 black box로 말한다. 근데 왜 작동이 잘되며 성능 향상을 위해 어떻게 할 것인지 시각화를 통해 어림잡아 추론할 수 있다.

Filter visualization

첫번째 사진은 alex net의 필터를 시각화 한 것이며 두번째 사진은 입력 이미지를 필터에 통과시킨 후 activation된 결과를 시각화한 것이다.(그래서 흑백이다.) 필터를 시각화할 수 있던 이유는 채널의 수가 3개이기 때문이다.

필터에 따라 시각화 결과가 다른 것을 확인할 수 있다.

2. Analysis of model behavior

Embedding feature analysis

  1. Nearest neighbors in feature space

데이터를 embedding하고 유사 이미지끼리 클러스터링을 하는 방법이다.

  1. Dimensionality reduction

embedding된 이미지(다차원)를 T-SNE를 통해 2차원으로 시각화한 결과이다. 시각적으로 비슷한 숫자들끼리 모여있는 것을 확인할 수 있다.

Activation investigation

layer activatoin: mid와 high level의 hidden unit의 행동을 확인한다.

윗그림: alex net의 5번째 layer의 특정 층의 채널을 thresholding하고 masking 후에 시각화 한 것이다. hidden unit의 행동을 확인할 수 있다.

Maximally activating patches

  1. 특정 레이어의 채널을 고른다.
  2. 이미지들의 덩어리를 넣고 activation map을 기록한다.
  3. activation value가 가장 높은 부분의 이미지를 잘라낸다.

Class visualization

→ random noise의 input으로부터 update된 특정 클래스의 이미지

데이터를 이용하지 않고 network가 기억하는 이미지를 분석하는 방법

최적화를 통해 특정 이미지를 찾아간다.

**과정**

  1. random이미지로부터 학습된 모델의 prediction score를 얻는다.
  2. 입력이 어떻게 변해야지 target class score가 높아지는지 찾는다
  3. 그에 따라 이미지를 업데이트한다.
  4. 그 이미지를 넣어 prediction score를 얻는다.

3. Model Decision explanation

Occlusion map

가리는 곳의 중요도에 따라 prediciton score가 다른 것을 이용한다.

via Backpropagation

입력에 대한 class score를 추출하고 backpropagate를 한다. 그리고 gradient가 바뀐 부분에 대해 시각화를 한다. class visualization과 비슷하지만 input으로 noise가 아닌 실제 사진을 넣어준다.

Class Activation Mapping

final decision에서 이미지의 어느 부분이 많이 기여했는지 시각화 하는 것임

CAM을 위해서 FC layer 대신 global average pool을 해준다. 그 후에 FC layer만 통과하는 구조로 수정 후에 다시 학습시긴다.

CAM은 avgpooling하기 전이므로 spatial한 정보를 가지고 있다. 이를 시각화 하면 CAM을 확인할 수 있다.

단점: 모델은 아키텍쳐를 바꾸고 파라미터를 재학습해야 한다.

Grad-CAM

기존 CAM 과 다르게 original network의 retraining이나 모델의 변형 없이도 결과를 얻을 수 있다.

핵심아이디어는 gradient backpropagation을 할 때 input image까지가 아닌 관심갖고 있는 activation map backpropagation을 한다.

이후 channel축으로 global average pooling을 적용하여 channel gradient성분의 크기를 구해 이를 activation map을 계산하기 위한 weights로 사용한다.

참고: boostcamp AI Tech 4기 CV강의

profile
Study and Share

0개의 댓글