저자 : Matthew D. Zeiler, Rob Fergus
(ECCV 2014)
* Abstract
- Alexnet을 시작으로 굉장히 Large한 CNN모델이 Imagenet 벤치마크에서 상당히 인상적인 성능을 보여주었으나,
왜 그러한 모델들이 잘 동작하는지, 어떻게 개선이 된 것인지에 대한 명확한 이해는 없음
- 본 논문은 intermediate feature layer들과 분류기의 operation에 대한 함수의 통찰력을 제공해주는 새로운
시각화 기법을 제안함
- 저자들은 서로다른 레이어들이 성능에 미치는 기여도를 확인하기 위해 하나씩 제거해보는 연구를 수행해보았다고 함
* Introduction
- 1990년대 LeCun의 연구를 통해서 CNN이 손글씨 인식이나 face detection등의 task에 우수한 성능을 보인 것이 소개됨
- 2012년에 Alexnet이 PASCAL VOC 데이터 셋에 대하여 차등모델에 비해 약10%나 향상된 정확도를 보였는데,
극적인 성능향상은 다음의 세가지 요인에 의하여 이루어질 수 있었음
1. 레이블링된 수백만개의 샘플들로 구성된 굉장히 큰 규모의 학습셋 제공이 가능해짐 (빅데이터의 제공)
2. 강력한 GPU파워가 제공되어 굉장히 큰 규모의 모델들의 학습이 practical해짐.
3. Dropout과 같은 모델을 Regularization하는 좋은 전략들이 연구됨
- 이러한 진보적인 발전에 비하여 이러한 복잡한 모델들이 어떻게 behavior하고 어떻게 좋은 성능을 얻는지, 내부적으로
어떻게 동작하는지에 대한 Insight가 굉장히 부족함
- 논문의 접근
-> 모델의 모든 layer에 대한 각각의 feature map들을 자극하는 입력 stimuli를 드러내기 위한 시각화 기법을 연구
시각화는 학습동안에 발생되는 feature의 진화를 관측할 수 있게 해주며 모델의 잠재적 문제를 진단할 수 있게 해줌
-> 이들이 제안하는 시각화 기법은 Zeiler가 제안한 Deconvolution Network를 사용하여 입력 Pixel 공간에
feature activation을 투영시키는 방법
-> 분류를 하는데 어느 부분이 중요한 역할을 하는지 알기 위해 입력 이미지의 일부를 가리고(occlude) 분류기의 출력이
얼마나 민감하게 변화하는지 분석하는 연구를 수행함
- 논문의 관련연구
-> Visualization
+ 현실에서 네트워크 직관을 얻기위하여 시각화를 많이 수행하나 대부분이 Pixel공간으로 투영이 가능한 1번째 레이어로 제한된 연구
+ 상위레이어를 시각화 하는 방법 중 하나는 unit의 activation을 최대화 하기 위하여 이미지 공간의 gradient descent를 수행하여
각 unit의 최적의 stimuli를 찾아내는 것
(careful initialization이 요구되며, unit의 불변*에 대한 어떠한 정보도 제공받지 못하는 단점이 있음)
+ 상위레이어를 시각화 하는 또 다른 연구로, 주어진 unit의 Hessian이 최적의 response에 얼마나 수치적으로 연산될 수 있음으로써
invariance함에 대한 insight를 제공해주는지에 대한 연구가 있었음
(상위 레이어들에 대해 invariance함이 너무 극도로 복잡하여 단순한 2차 근사로는 계산해내기가 굉장히 어려운 문제가 있음)
+ 본 논문에서는 학습 데이터셋에 대하여 어떤 패턴이 feature map을 activate시키는지 보이기 위해 invariance를 non-parametric한
관점에서 제공한 기법을 연구함
+ 본 논문의 관점은 본 논문에서 사용하는 Convolution layer 대신 Convnet의 Fully connected layer로부터 투영하여 saliency map을
얻는 기법과 상당히 유사하다고 볼 수 있음
-> Feature Generalization
+ "A deep convolutional activation feature for generic visual recognition" 연구에 기반하여 CNN feature의 generalization ability
를 설명함
========================================================================================
Unit's Invariance?
-> 패턴인식의 관점에서 Ideal한 feature란 robust하고 selective한 feature를 말합니다. Hidden layer의 Unit들은
feature detector로 해석될 수 있으며, 이는 hidden unit이 표현하는 feature가 현재 입력에 존재하는 경우
strongly respond하고 현재 입력에 부재하는 경우 weakly respond하는 경향을 보이는 것을 의미합니다.
-> Invariant 한 뉴런이라는 것은 입력이 특정 변환들을 거치게 되더라도 해당 feature로의 high response를 유지하는
것을 의미합니다.
(예를 들면, 어떤 뉴런이 얼굴의 특징을 탐지하는 뉴런이라고 할때, 얼굴이 Rotate되더라도 response를 잘 해내는 것이라고 할 수 있습니다.)
"Measuring Invariances in Deep Networks"논문 참고
========================================================================================
* Approach
- 본 논문에서는 표준 fully supervised convent모델인 Alexnet을 사용함
(Alexnet은 너무나 잘 알려져 있기 때문에 이 내용에 대해서는 생략하겠습니다.)
- Visualization with a Deconvnet
+ CNN의 동작을 이해하기 위해서는 중간의 hidden layer들의 feature activity에 대한 해석이 요구됨에 따라서, 이러한 activity들을
input space로 다시 mapping시키는 Deconvolutional Network에 기반한 기법을 보임
+ Deconvnet은 convnet과 같은 component(filtering, pooling)등을 사용하지만 역으로 수행되는 네트워크.
즉, pixel이 feature로 mapping되는 과정의 반대과정이라고 생각하면 됨
[ 그림 1. Unpooling을 통해 feature map을 image로 reconstruction하는 과정 ]
+ Convnet을 examine하기 위하여, deconvnet이 각각의 layer에 부착되며(그림 1 참고), Image pixel들까지 다시 되돌아오는 경로가 제공됨
+ [그림 1]을 통해 바라보는 시각화 과정 순서
1. 입력 Image가 convnet에 제공되고 feature가 각 layer를 통과하여 계산됨.
2. 주어진 convnet의 activation을 examine하기 위해서 layer 내의 모든 activation들을 0으로 setting하고 feature map을 통과하게
함으로써 부착된 deconvnet layer의 입력이 되도록 함
3.1 Unpooling을 수행
3.2 Rectification을 수행
3.3 Filtering을 수행하여 layer아래의 activity들을 reconstruct해줌으로써 선택된 activation의 시각화를 수행
================================ ================================ ================================
-> 1. Unpooling
Convnet에서 Maxpooling 연산은 non-invertible(역을 계산할 수 없는)한 연산
=> Maxpooling은 영역 내의 가장 큰 값을 취하고 나머지는 버리는 연산이기 때문에, 이에 대한 역으로의 연산은 정보의 소실로 불가능
하지만, 각 pooling 영역의 maxima값의 location 정보들을 저장한 것을 switch variable의 집합이라고 표현하는데
이 set of switch variables를 기록함으로써 inverse를 근사하는 값을 얻어낼 수 있음.
Deconvnet에서 Unpooling 연산은 이러한 switch들을 layer로부터 reconstruction하는 과정에서 적절한 위치를 잡게 해줌으로써
stimulus의 구조를 보존하도록 하는 역할을 함
-> 2. Rectification
본 논문에서 사용한 Convnet은 비선형 relu 함수로써, feature map들이 rectify 됨으로써 feature map들이 항상 positive한 상태를
보장 받음
따라서 각 레이어에 대한 유효한 feature reconstruction을 얻기 위해서는 비선형함수인 relu에 reconstruct된 신호를 통과시켜야함
-> 3. Filtering
Convnet은 이전 layer로부터 feature map들을 convolve하기 위해 학습된 filter들을 사용
이를 근사하게 inverse 하기 위하여 deconvnet은 같은 filter들의 transposed된 버전을 사용(Auto encoder나 RBM같은)
=> 하지만, 레이어 아래의 출력이 아니라 rectified된 map들에 적용
(이는 각 필터를 수직과 수평적으로 flipping하는 것을 의미)
================================ ================================ ================================
+ Reconstruction path에서 normalization을 수행하지 않는 것에 주의해야함
+ 상위 레이어에서 하위로 Projecting하는 것은 convnet이 inference연산을 하는 과정중 max pooling을 통해 생성된 switch setting을 사용
+ 이들 switch setting은 주어진 image에 peculiar하기 때문에, 하나의 activation으로부터 얻게되는 reconstruction을
여러개를 resemble하면 original 입력 image의 일부분을 얻을 수 있음
+ 모든 처리과정은 마치 single strong activation을 Backproping 하는 것과 유사하며, 수식으로 표현하면 다음과 같음
(단, relu가 독립적으로 impose되고, normalization이 사용되지 않음)
+++ 논문에서 제안하는 General Shortcomming Approach 의 결점
+ single activation을 시각화 하는것(이전 레이어의 joint acitvity를 시각화 하는 것이 아님)
* Training Details
- ImageNet 데이터셋의 분류 수행을 위하여 AlexNet모델을 사용
(단, 3,4,5번째 레이어의 sparse connection을 dense connection으로 대체함)
- AlexNet모델은 ImageNet 2012데이터셋을 기반으로 학습
(1.3m개의 이미지, 1000개 클래스)
- 입력크기는 256x256으로 먼저 cropping을 수행한 후, 224x224로 sub cropping을 수행
- 128 minibatch size를 기반으로 SGD로 학습, learning rate은 0.01로 두고 annealing을 함
- 학습하는 도중 첫번째 레이어의 시각화를 수행하면, 일부가 dominate하는 것을 확인할 수 있음
=> 이를 해결하기 위해 convolutional layer의 각 filter를 renormalize함
- 70 epoch이후 학습을 멈추고 12일간 GTX580으로 학습시킴
[ 그림 2. 논문에서 사용한 모델의 구조 ]
* Convnet Visualization Result
[ 그림 3. 학습된 모델의 feature들을 시각화한 결과 ]
[ 그림 4. 학습이 되면서 랜덤하게 선택된 모델의 feature의 subset들이 진화하는 과정 ]
[ 그림 5. stronggest feature map projection으로 시각화함으로써 입력된 이미지가 어떠한 부분에 중점을 두고 classification되었는지 알 수 있음]