[네이버 부스트 캠프] 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 ?
Neural Network visualization 하는 여러 가지 방법에 대한 그래프
왼쪽으로 갈 수록 모델에 초점, 오른쪽으로 갈 수록 data에 중점
Analysis of model behaviors
- Embedding feature analysis - Nearest Neighbors(NN)
high level feature 후에 나오는 feature 에 대한 분석
예제 데이터 셋 (DB) 내에서 유사한 영상을 질의, 가장 가까운 이미지에 따라 정렬
- 비슷한 의미를 가진 (물체의 종류와 같은) concepts끼리 clustered 된 것 확인 가능
- 학습된 feature가 위치(포즈)가 완전히 달랐다. 이를 통해 학습된 feature가 단지 pixel-wise comparison에 국한되지 않고 위치 변화에도 강인하다는 것을 볼 수 있다.
위의 Neares neighbors 방법에 대한 표현
DB로부터 영상에 대한 feature를 뽑아서 mapping을 시킨다. (feature를 뽑는 것은 high level feature후, fc layer를 통과하기 전에 단계)
빨간색 돌멩이는 test했을 때 mapping 되는 image에 대한 내용이다. 아래와 같이 테스트를 했을 때, 가장 feature와의 거리가 비슷한 이미지를 return 한다.
- t-distributed stochastic neighbor embedding (t-SNE)
위의 이미지처럼 차원이 너무 크기 때문에 사람이 직관적으로 파악하기가 어렵다. dimensionality reduction 방법을 이용한다. (고차원 → 2D space)
아래는 ‘숫자’ 에 대한 clustering (MNIST)
- Activation investigation - Layer activation
mid ~ high 사이에 있는 layer에서의 visualization에서는 hidden unit에 대한 의미를 알 수 있다.
- Activation investigation2 - Maximallys activating patches
hidden node가 어떤 특징점을 detect하는 지 시각화한다.
위의 visualization image를 가져오는 과정
-
Activation investigation3 - Class visualization
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}}\]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가 달라지는 것이 보인다.
마스크의 위치에 따라 물체의 학습에 중요한 부분을 알려준다.
- Saliency test 2
via Backpropagation
Input Image를 넣은 후에 모델에서 중요하게 보는 부분을 파악하는 것,
위에서 했던 Class Visualization 과는 Input Image 에서 차이를 보인다.
-
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을 통해서 클래스가 어디 부분을 중점으로 구별되었는 지 시각화할 수 있다. -
Grad-CAM
2. 고민 내용, 결과 (과제 수행 과정, 결과물 정리)
과제
3. 피어세션 정리
-
Instance/Panoptic Segmentation and Landmark Localization Mask R-CNN / Panoptic segmentation
-
일반인을 대상으로 한 computer vision
Fei-Fei Li: How we’re teaching computers to understand pictures
-
cs 231
CS231n: Convolutional Neural Networks for Visual Recognition
-
cs 231 번역
4. 학습 회고
- Visualizing CNN에 대해서 어느 정도 이해를 알 수 있었다. 하지만 완벽히 이해하기는 아직 힘든 부분이 많이 있다. CS231을 통해 computer vision에서 유명했던 강의에 대해서도 알아봐야겠다. 점점 관심이 증가하는게 느껴진다.