상세 컨텐츠

본문 제목

[3주차/논문리뷰/백서경] Visualizing and Understanding Convolutional Networks

2023 Summer Session/CV Team 2

by bravesk 2023. 7. 26. 23:59

본문

노션에서 작성된 페이지입니다. 이미지 포함 자세한 내용은

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가 큰 것

 

관련글 더보기

댓글 영역