[네이버 부스트 캠프] AI-Tech - Lv2 week2(2)

학습기록 - 32

오늘 할 일

  • CNN Visualization

1. 강의 복습 내용

CNN visualization

데이터 시각화에 관한 내용. CNN 내에서 layer 마다 Image를 visualization 하는 형태

  • What is inside CNNs (black box) ?
  • Why do they perform so well ?
  • How would they be improved ?

Untitled

Neural Network visualization 하는 여러 가지 방법에 대한 그래프

왼쪽으로 갈 수록 모델에 초점, 오른쪽으로 갈 수록 data에 중점

Untitled

Analysis of model behaviors

  • Embedding feature analysis - Nearest Neighbors(NN)

high level feature 후에 나오는 feature 에 대한 분석

Untitled

예제 데이터 셋 (DB) 내에서 유사한 영상을 질의, 가장 가까운 이미지에 따라 정렬

Untitled

  1. 비슷한 의미를 가진 (물체의 종류와 같은) concepts끼리 clustered 된 것 확인 가능
  2. 학습된 feature가 위치(포즈)가 완전히 달랐다. 이를 통해 학습된 feature가 단지 pixel-wise comparison에 국한되지 않고 위치 변화에도 강인하다는 것을 볼 수 있다.

위의 Neares neighbors 방법에 대한 표현

Untitled

DB로부터 영상에 대한 feature를 뽑아서 mapping을 시킨다. (feature를 뽑는 것은 high level feature후, fc layer를 통과하기 전에 단계)

Untitled

빨간색 돌멩이는 test했을 때 mapping 되는 image에 대한 내용이다. 아래와 같이 테스트를 했을 때, 가장 feature와의 거리가 비슷한 이미지를 return 한다.

Untitled

  • t-distributed stochastic neighbor embedding (t-SNE)

위의 이미지처럼 차원이 너무 크기 때문에 사람이 직관적으로 파악하기가 어렵다. dimensionality reduction 방법을 이용한다. (고차원 → 2D space)

아래는 ‘숫자’ 에 대한 clustering (MNIST)

Untitled

  • Activation investigation - Layer activation

Untitled

mid ~ high 사이에 있는 layer에서의 visualization에서는 hidden unit에 대한 의미를 알 수 있다.

Untitled

  • Activation investigation2 - Maximallys activating patches

Untitled

hidden node가 어떤 특징점을 detect하는 지 시각화한다.

위의 visualization image를 가져오는 과정

Untitled

Untitled

Untitled

  • Activation investigation3 - Class visualization

    Untitled

    Untitled

class에 대한 시각화, 어떻게 하는 것일까?

Generate a synthetic image that triggers maximal class activation

\[I^{*}=\underset{I}{\arg \max } f(I)-\underset{\text { Regularization term }}{\lambda\|I\|_{2}^{2}}\]

Untitled

1) dummy Image를 통해 prediction score를 얻고, input image에 대해 target class score를 최대화하는 back prop을 진행해서 image를 생성한다.

2) image를 생성할 때, gradient ascent를 통해서 특정 필터의 값을 최대로 하는 image 값을 찾는다.

3) 이 과정을 반복하면서 특정 카테고리에 좀 더 구체적인 image를 찾는 것이다.

→ 네트워크의 parameter를 업데이트 하는 것이 아닌 score를 최대로 하는 image의 값을 찾는 것!

Model이 특정 입력에서 어떤 결과를 내는지?

Modoel decision explanation

  • Saliency test 1

Occlusion map

마스크의 위치에 따라 score가 달라지는 것이 보인다.

Untitled

마스크의 위치에 따라 물체의 학습에 중요한 부분을 알려준다.

Untitled

  • Saliency test 2

via Backpropagation

Input Image를 넣은 후에 모델에서 중요하게 보는 부분을 파악하는 것,

위에서 했던 Class Visualization 과는 Input Image 에서 차이를 보인다.

Untitled

Untitled

  • Backpropagation-based saliency

    guided backpropagation

  • Class activation mapping (CAM)

    CAM을 이용한 시각화는 conv를 통해 뽑아지 결과를 FC layer 가 아닌 GAP(Global Average Pooling) layer를 넣어서 feature별로 색을 다르게 해서 추출한다.

    아래와 같이 gap feature와 weight의 곱으로 나타낸 표현으로 class 의 스코어로 나타낸다.
    heat map을 통해서 클래스가 어디 부분을 중점으로 구별되었는 지 시각화할 수 있다.

    Untitled

    Untitled

    Untitled

  • Grad-CAM

2. 고민 내용, 결과 (과제 수행 과정, 결과물 정리)

과제

3. 피어세션 정리

4. 학습 회고

  • Visualizing CNN에 대해서 어느 정도 이해를 알 수 있었다. 하지만 완벽히 이해하기는 아직 힘든 부분이 많이 있다. CS231을 통해 computer vision에서 유명했던 강의에 대해서도 알아봐야겠다. 점점 관심이 증가하는게 느껴진다.