노션에서 작성된 페이지입니다. 이미지 포함 자세한 내용은
https://western-hortensia-8e0.notion.site/Visualizing-and-Understanding-Convolutional-Networks-2013-5ecf1486d2314dd1897a4389d2369425?pvs=4 를 참고해주세요!
1. Introduction
[ 문제상황 ] covolution network의 발전, 그러나 internal operation에 대해서는 이해가 부족
- 내부 작동에 대한 이해가 부족하다면 convnet의 발전은 trial-and-error에 지나지 않을 것
[ 제안 ] model layer의 feature map에 대한 visualization technique
[ 방법론 ]
- Deconvolutional network (decovnet) : feature activation을 input pixel space로 projection
- sensitivity analysis : input image의 부분부분을 가리면서 scene의 어떤 부분이 classification에 영향을 미치는지 분석
[ 실험 ]
- ImageNet에 대해 여러가지 architecture를 실험
- generalization ability: 맨 마지막 softmax classifier만 retrain시켜 확인
2. Approach
[ ConvNet 모델 ]
- input & output : color 2D input image xi → C개의 class에 대한 probability vector yi
- 한 개의 layer의 구성
- 직전 layer output에 대한 convolution
- linear function RELU( max(x,0));
- [optional] local neighborhood에 대해 max pool
- [optional] feature map에 걸쳐 normalization (local contrast operation)
- final layer: softmax classifer
2.1. Visualization with DeconvNet
[ 목표 ] intermediate layer에서 feature activity를 해석
[ 아이디어 ] deconvnet을 통해 map activities back to input pixel space
- input pattern의 어떤 부분이 activation을 일으켰는지 확인
- deconvnet을 이용
- convnet 모델과 반대의 역할
- pixel to feature가 아니라 featur to pixel
- 학습시키지 않고 이미 학습된 convnet을 이용
- 방법 : 확인하고자 하는 activation을 제외한 activation을 zero로 만들어 deconvnet을 통과시킴
- 구성 : unpool, rectify, filter
[ Unpooling ]
- convnet에서 maxpooling은 non-invertible한 과정
- max값의 위치는 switch variable을 통해 저장한 후 unpool
[ Rectification ]
- convnet은 feature map이 항상 postiive하고 non-linear하도록 relu를 사용
- 각 layer의 feature reconstruction 역시 postivie해야 하므로 reconstructed signal을 relu에 통과시킴
[ Filtering ]
- convnet은 직전 layer의 input으로부터 feature map을 얻기 위해 filter를 학습시킴
- deconvnet은 convnet filter의 transposed version을 사용( 학습 x)
- 실전에서는, filter를 vertical/horizontal하게 flip하는 효과
3. Training Details
생략
4. Convnet Visualization
[ Feature Visualization ]
- Top 9 strongest activation에 대해 visualize
- pixel space로의 projection을 통해 feature map에 가장 영향을 주는 structure를 찾아냄 → input deformation에 대한 invariance를 보여줌
- visualization에 대응하는 image patch를 함께 보여줌(layer가 갈수록 해당하는 부분의 image patch가 넓어짐)
- network의 hierarchial nature를 보여줌
- layer 2: corner/edge/color conjunction
- layer 3: 더 복잡한 invariance, texture를 capture
- layer 4: class-specific한 variation
- layer 5: 전체 object에 대한 pose estimation
[ Feature Evolution during Training]
- strongest activation이 feature map에서 pixel space로 projection 되는 과정을 visualize
- lower layer에서는 금방 converge하지만, 깊어질수록 converge하는데 epoch가 많이 걸림
[ Feature Invariance ]
- sample image를 translate, rotate, sclae했을 때 feature vector의 invariance를 확인
- small transformation → 첫 번째 layer에서 큰 영향을 보이다가 갈수록 영향이 줄어듦
- translation과 scaling에 대해서는 network output이 안정적이지만, rotation에 대해서는 invariant하지 않음(symmetrc한 이미지 제외)
4.1. Architecture Selection
- 첫 번째, 두 번째 layer에서 정보를 많이 보존할 수 있도록
- 첫 번째 layer의 filter size를 1111 → 77
- 첫 번째 layer의 convolution stride를 4 → 2
4.2. Occlusion Sensitivity
- model이 정말로 object의 location을 identify하고 있는지 , 아니면 주변의 context를 통해 classification하는지 확인하기 위함
- 회색 정사각형으로 input image의 여러 부분을 가리면서 classifier의 output을 관찰
- object에 해당하는 location을 가리면 classification 젇확도가 급격히 떨어짐
- feature map의 activity 또한 크게 떨어짐
[ Correspondence Analysis ]
- image의 specific 한 object part를 corresponding하는 mechanism이 없다 → deep model에서 implicit하게 알고 있는 것은 아닐까?
- 5마리의 random한 dog image에서 같은 부분을 mask
- 방법
- layer l의 feature vector 변화를 구함
- 같은 부분을 masking한 5개의 이미지의 vector에 대해 모든 pair에 대한 consistency를 Hamming distance로 구함
- H 값이 작을수록 해당하는 masking operation의 consistency가 큰 것
댓글 영역