1. Introduction
이 논문에서는 특정 계층의 feature maps을 활성화하는 입력 자극 (input stimuli)을 시각적으로 나타내는 기법을 소개한다.
이 시각화 기법은 다층 디컨볼루션 네트워크 (deconvolutional network, deconv) 를 사용해서 특징 활성화(feature activation)를 다시 입력 픽셀 공간에 투영하는 방식으로 구현된다.
또한 분류기의 출력에 대한 민감도 분석을 수행해 입력 이미지의 일부를 가려보면서 분류에서 중요한 부분을 분석한다.
1.1 관련 연구 해석
신경망의 동작 방식을 직관적으로 이해하기 위해 feature를 시각화하는 것은 일반적인 연구 방식이다.
하지만 이는 주로 첫 번째 층에만 적용 되고 더 높은 계층에는 어려움이 있다.
이러한 문제를 해결하기 위해 본 논문에서는 비모수적 방식을 사용한다.
2. Approach
본 논문에서는 supervised ConvNet 모델을 사용한다.
컬러 2D 이미지를 받고 여러 계층을 거쳐 확률 벡터 출력 후, 클래스에 대한 확률을 나타낸다
각 계층은 다음 연산을 수행한다.
1. Convolution
2. ReLU 활성화 함수 적용
3. Max Pooling (선택적)
4. Local Constrast Normalization
2.1 Visualization with a Deconvnet
이 논문에서는 활성화 값을 입력 픽셀 공간으로 다시 매핑하고 이를 통해 어떤 입력 패턴이 feature map을 활성화 했는지를 알 수 있는 방법을 제안한다.
이 매핑 과정에서 디컨볼루션 네트워크를 사용한다. Deconvnet을 간단히 알아보자면,
- Convnet과 동일한 구성 요소지만 반대 방향으로 작동
-> 픽셀에서 feature로 변환하는 Convnet과 달리 feature에서 픽셀로 변환
- 분석과정
1. 입력 이미지를 Convnet에 전달해 feature 계산
2. 분석하고자하는 특정 활성화 값만 남기고 나머지는 0으로 설정
3. 해당 feature map을 Deconvnet을 거쳐 입력 공간으로 투영
4. 이 과정에서 순차적으로 Unpooling, Rectifition, Filtering 수행
5. 위 과정 반복하면서 입력 픽셀 공간 복원
-Unpooling : 풀링된 feature map을 원래 위치로 복원해 자극 구조 유지
- Rectification : 복원된 신호를 다시 한 번 ReLU를 통과시킴
- Filtering : Convnet에서 사용한 필터를 수직 및 수평으로 뒤집어서 사용해 feature map 합성곱 함
Deconvnet으로 시각화한 결과, 각 활성화 값에 해당하는 입력 이미지의 일부를 복원한다.
입력 이미지의 어떤 부분이 특정 feature map을 활성화 했는지 시각적으로 보여준다.
3. Training Details
- 모델 구조 : ImageNet 분류 모델
- 데이터셋 및 전처리 : ImageNet 2012, 224X224 크롭 10개 생성
- 학습 방법 : SGD, 학습률 수동 조정, Dropout
- 필터 정규화
- 데이터 증강
4. Convnet Visualization
Feature Visualization
Fig. 2는 완전히 학습된 모델에서의 feature 시각화 결과를 보여준다.
본 연구에서는 각 feature map에서 가장 강한 활성화 9개를 픽셀 공간으로 투영하여 시각화한다.
이를 통해 어떤 입력 구조가 특정 feature map을 활성화하는지 알 수 있으며, 입력 변형에 대해 불변성을 가지는지 보여준다.
이와 함께 각 feature map과 관련된 이미지 패치도 함께 표시된다.
Layer 2 : 모서리, 색상, 코너와 같은 기본적인 특징
Layer 3 : 질감, 패턴
Layer 4 : 클래스별 특징
Layer 5 : 자세 변화에 대한 불변성
Feature Evolution during Training
특정 feature map에서 가장 강한 활성화를 픽셀 공간으로 투영하여 시각화한다.
- feature map에서 가장 강한 활성화가 발생한 이미지가 바뀔 때 갑작스러운 변화 발생
- 모델의 하위 계층은 빠르게 수렴한다. 상위 계층은 40~50 epochs 이후에 특징 뚜렷
Feature Invariance
Fig. 5에서 5개의 샘플 이미지를 이동, 회전, 크기 조정을 하면서 상위 및 하위 계층의 특징 벡터가 어떻게 변화하는지 분석한다.
- 작은 변형에서는 첫 번째 계층의 특징 벡터는 큰 영향을 받고 상위 계층은 안정적이다, 특히 이동 및 크기 조정에 대한 변화를 보임.
- 네트워크의 출력은 이동 및 크기 조정에 안정적이고 회전에 대해서는 불변성이 없다.
4.2 Architecture Selection
학습된 모델을 시각화 하는 것은 신경망 아키텍처에도 유용하다.
위 그림 (b,d)에서 몇 가지 문제가 발견됐다.
1. Layer 1에서 고주파와 저주파 정보가 혼합 되어 있고 중간 주파수 대역을 제대로 커버하지 못함
2. Layer 2에서 필터 크기와 큰 스트라이드로 인해 앨리어싱 현상이 발생
이를 해결하기 위해 모델 수정을 한다.
1. 필터 크기 : 11X11 -> 7X7
2. stride : 4 -> 2
이 변경으로 훨씬 더 많은 정보 유지와 분류 성능을 향상시킨다.
4.2 Occlusion Sensitivity
이미지 분류에서 중요한 문제는 모델이 실제로 object의 위치를 식별하는지, 아니면 단순히 주변 context 정보를 활용하는지다.
그래서 입력 이미지의 특정 부분을 회색 사각형으로 가려서 occlusion하고 이 때 모델의 분류 출력이 어떻게 변하는지 관찰한다.
object가 occlusion 될 때 올바른 클래스에 대한 예측 확률이 크게 감소했다. 이는 모델이 object의 실제 위치 정보를 인식하고 있다고 본다.
또한 모델이 단순히 주변 context 정보를 이용하는 것이 아니고 object 자체로 학습했다고 볼 수 있다.
4.3 Correspondence Analysis
기존 객체 인식 방법은 객체의 특정 부분을 명시적으로 정렬하는 기법을 사용한다.
하지만 딥러닝 모델에서는 이러한 정렬 없이 암묵적으로 이러한 대응을 학습한다.
이를 탐구하기 위해 아래와 같은 실험을 수행한다.
1. 정면으로 된 강아지 이미지 5개를 무작위로 선택
2. 각 이미지에서 동일한 얼굴 부분을 체계적으로 가림 ex) 왼쪽 눈
3. 각 이미지 i에 대해 다음 식 계산 수행
4. 모든 이미지 쌍 (i,j)에 대해 변화량의 일관성 측정
여기서 H는 해밍 거리인데 낮을 수록 같은 부분이 가려질 때 유사한 변화가 발생한 것이다.
즉, 모델이 같은 위치의 대응 관계를 학습한 것이다.
5. Experiments
5.1 ImageNet 2012
다중 모델 조합 시 14.8% 오류율 -> 당시 최고 성능
5.2 Feature Generalization
- Caltech-101 : 86.5%
- Caltech-256 : 74.2%
- PASCAL VOC 2012 : 기존 최고 성능보다 3.2% 낮음
5.3 Feature Analysis
상위 계층으로 갈 수록 특징이 강렬해지고 SVM, Softmax를 사용한 테스트는 최고의 성능을 보임
6. Discussion
- Coonvnet 내부 특징을 시각화 하면서 모델이 무작위 패턴을 학습하는 것이 아니고 점진적으로 더 의미 있는 특징을 학습한 것으로 확인.
- Occlusion 실험으로 모델이 실제 객체 구조를 학습하고 있음을 검증
- 모델의 깊이가 성능 향상에 중요함