CV 분야에서 CNN이 큰 효과를 보이고 있는데 CNN 구조가 어떻게 이루어지는지, 왜 성능이 잘 나오는지, 성능 향상을 위해 어떤 방법을 도입할 수 있는지에 대해 시각화를 통해 분석 및 확인할 수 있다.
간단한 방법으로는 filter를 visualization 하는 방법이 있다. 깊은 혹은 두 번째 이상 레이어의 filter 부터는 사람이 직관적으로 해석하기 어려운 특징들이 생성되기 때문에 보통 첫 번째 filter를 사용한다.
고차원에 데이터는 형태를 상상하기 어려운 경우가 많아 저차원으로 축소하여 분석하는 방법도 존재한다.
Maximally activation patches 방법이 있는데 데이터 분포 중 가장 큰 값을 가지는 패치를 추출하여 분석한다.
Class Visualization - Gradient ascent방법은 다음과 같은 방법을 사용한다.
임의의 영상으로 분석하고자 하는 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를 사용한다.