[U] Week 4 - CNN Visualization

JaeJun Lee ·2022년 10월 13일
0

부스트캠프 AI Tech

목록 보기
25/30

CV 분야에서 CNN이 큰 효과를 보이고 있는데 CNN 구조가 어떻게 이루어지는지, 왜 성능이 잘 나오는지, 성능 향상을 위해 어떤 방법을 도입할 수 있는지에 대해 시각화를 통해 분석 및 확인할 수 있다.

  • 해석이 가능하면 응용이 가능하다

먼저 모델 자체의 행동을 분석하는 방법이 있다.

간단한 방법으로는 filter를 visualization 하는 방법이 있다. 깊은 혹은 두 번째 이상 레이어의 filter 부터는 사람이 직관적으로 해석하기 어려운 특징들이 생성되기 때문에 보통 첫 번째 filter를 사용한다.

고차원에 데이터는 형태를 상상하기 어려운 경우가 많아 저차원으로 축소하여 분석하는 방법도 존재한다.

  • t-SNE

Maximally activation patches 방법이 있는데 데이터 분포 중 가장 큰 값을 가지는 패치를 추출하여 분석한다.

Class Visualization - Gradient ascent방법은 다음과 같은 방법을 사용한다.

I=argmaxIf(I)λI22RegularizationtermI^* =argmax_If(I) - \lambda \Vert I\Vert^2_2 \\ \qquad\qquad\qquad\qquad\quad \tiny Regularization\, term

임의의 영상으로 분석하고자 하는 CNN 모델에 입력으로 하여 최종 class score를 출력하고 backpropagation을 통해 구한 입력 단에 gradient를 인풋 데이터에 더해 업데이트한다. 즉, class score가 높아지기 위한 인풋 데이터를 찾는 과정이며 이 과정을 반복한다.

  • 초기값을 어떻게 설정하냐에 따라 다양한 결과를 얻을 수 있다

모델이 특정 입력을 어떤 각도로 바라보는지 해석하는 방법도 있다.

Saliency test 방법으로 Occlusion map이 있는데 영상이 주어졌을 때 제대로 판정되기 위한 각 영역에 중요도를 판정하는 방법이다. 특정 부분을 가려서 측정한 class score를 통해 중요한 영역을 판별한다.

Backpropagation을 사용하는 방법은 입력 영상을 통해 하나의 class score를 구하고 backpropagation을 통해 입력 도메인까지 얻어지는 gradient의 절대적인 크기를 확인할 수 있도록 절댓값 혹은 제곱을 통해 이미지 형태로 표현한다.

  • 인풋 단에서 어떤 부분이 민감하게 작용했는지 분석할 수 있다
  • 현재 데이터가 어떻게 해석되는지 분석할 수 있다

DeConvolution과 Backpropagation의 조건을 만족하는 guided backpropagation 방법도 존재한다.

Class activation mapping(CAM)은 heatmap과 같은 형태로 입력 데이터에서 어떤 부분을 참조하는지 분석할 수 있다. 이 방법은 global average pooling과 하나의 FC Layer를 사용한다.

  • pretrain된 모델을 사용할 때 구조를 변경하지 않고 재학습이 필요없는 Grad-CAM 방법도 제안되었다
  • 이후 Guided backpropagation과 Grad-CAM을 결합한 Guided Grad-CAM 방법이 제안되었다
  • 더 개선한 SCOUTER 방법도 있다

0개의 댓글