0. Reference
https://arxiv.org/abs/1311.2901
Visualizing and Understanding Convolutional Networks
Large Convolutional Network models have recently demonstrated impressive classification performance on the ImageNet benchmark. However there is no clear understanding of why they perform so well, or how they might be improved. In this paper we address both
arxiv.org
1. Introduction
- 논문에서 ConvNets의 성능 향상 요인은 다음과 같다.
i) 대규모 train dataset
ii) GPU 발전
iii) Dropout을 통한 Overfitting 감소
- 해당 논문이 나오기 전까진, ConvNets이 뛰어난 성능을 보이지만, 내부 작동 원리와 성능의 근거가 명확하지 않았다.
- 이러한 불명확성은 계속 trial-and-error에 의존하게 된다.
- 그렇기에 본 연구에선 ConvNets의 내부 작동 원리를 이해하고, 모델 개선을 돕기 위해 시각화 기법을 제안한다.
- 이러한 시각화 기법을 위해 다음과 같은 핵심 요소가 존재한다.
i) Deconvolutional Network 사용
--> ConvNet의 feature activation을 input data space에 Projection시킨다.
ii) Sensitivity Analysis
- 입력 이미지의 특정 영역을 의도적으로 occluding(가려)하여 해당 영역이 분류 결과에 얼마나 영향을 미치는지 분석한다.
cf) 기존의 AlexNet을 활용하여 연구를 진행하게 됨.
2. Approach
- 본 연구에선 supervised 방식의 ConvNets을 사용하여 실험을 진행하였다.(LeNet5,AlexNet)
- 본 연구에서 AlexNet과 다른 부분은 다음과 같다.
- average pooling을 max pooling으로 선택하여 down sampling하였다.
- 비슷한 부분은 activation function으로 ReLU를 사용하고, LCN을 사용한다.
- FC Layer의 Output layer는 softmax classifier를 사용한다.
2.1. Visualization with a Deconvnet
- ConvNet의 작동 방식을 이해하려면, 중간 layer에서의 feature activity을 해석할 필요가 있다.
- feature map에서의 activation이 어떤 input pattern에 의해 유도되었는지
- input pixel space으로 매핑하는 새로운 방법을 제시한다.
- DeconvNet은 ConvNet의 구성 요소(filtering, pooling)을 역으로 사용한다.
- 즉, ConvNet은 입력 픽셀을 feature로 mapping시키고,
- DeconvNet는 feature를 입력 픽셀로 매핑시킨다.\
- 본 연구에선, DeconvNet을 ConvNet을 해석하기 위한 도구로 사용하였다고 생각하면 된다.
- 시각화 절차는 다음과 같이 이루어 진다.
"""
I) DeconvNet 연결
- ConvNet의 각 레이어에 DeconvNet을 연결하여,
- 연속적으로 input pixel space로 매핑이 가능하도록 구성한다.
II) 활성화 분석 과정
i) ConvNet에 입력 이미지 전달
- 입력 이미지를 ConvNet에 넣고, 각 layer에서 feature를 계산한다.
ii) 특정 활성화 선택
- 분석하고자 하는 특정 활성화 값만 유지하고,
- 다른 활성화 값은 모두 0으로 설정한다.
iii) DeconvNet을 통한 역투영
- 선택된 활성화 값을 DeconvNet에 전달하고,
- 다음 과정을 반복하여 input pixel space가지 매핑한다.
(i) Unpooling -> (ii) Rectification(ReLU) -> (iii) Filtering
"""
(1) Unpooling
- ConvNet의 Max Pooling은 non-invertible이다.
- 따라서 Unpooling을 통해 이를 근사적으로 복구한다.
- 방법 :
---> ConvNet에서 Pooling 시 선택된 최대값의 위치를 "switch variable"로 기록된다.
---> DeconvNet에서는 이 스위치를 이용하여, 상위 Layer의 재구성 결과를 적절한 위치에 배치한다.
---> 이를 통해 입력 이미지의 구조적 특성을 유지할 수 있다.
(2) Rectification
- ConvNet는 ReLU를 사용하여 feature map을 positive인 부분만 남겨둔다.
- DeconvNet에서도 mapping된 결과가 positive가 되도록,
- ReLU를 다시 적용하여 feature를 재구성한다.
(3) Filtering
- ConvNet은 학습된 필터를 사용하여 feature map을 convolution한다.
- DeconvNet에서는 이를 역으로 수행한다.
- 방법 :
--> ConvNet에서 사용된 필터를 수평 및 수직으로 뒤집어 transpose 적용한다.
--> 단, 이전 레이어의 출력이 아닌, ReLU가 적용된 맵에 필터링을 수행.
- DeconvNet의 중요한 인사이트는 다음과 같다.
i) 모델이 어떤 입력 부분에 민감하게 반응하는지 시각적으로 확인할 수 있다.
ii) DeconvNet으로 얻은 매핑은 모델이 학습한 discriminative 패턴을 암시한다.
3. Training Data
- 이미지를 256x256으로 맞추고,
- 224x224로 패치를 네개의 모서리 + 중앙으로 5개를 만들고
- 그 5개의 패치를 각각 Horizontal reflection하여 10개의 패치를 확보하여 증강시킨다.
- Validation error가 정체될때마다 Learning rate를 감소시킨다.
--> Learning rate Scheduler사용
4. Convnet Visualization
- 각 Layer별 얻은 Feature Map에서 가장 강한 feature 9개와 그에 해당하는 원본이미지이다.
- 각 Layer별 학습되며 어떤 Feature를 추출하는지 알 수 있음
"""
- Layer 1&2 : Edge나 Color처럼 low-level feature 시각화
- Layer 3 : 더 복잡한 Invariance를 가지거나, Texture를 보여주는 Feature 시각화
- Layer 4 : 사물이나 개체의 일부분을 보여주는 Feature 시각화 (e.g. 개의 얼굴, 새의 다리)
- Layer 5 : 사물이나 개체의 위치 및 자세 변화를 포함하는 High Level Feature 시각화
"""
4.1. Occlusion Sensitivity
- Input Image의 특정 부분을 가리면서 Classifier가 어떻게 동작하는지 확인하는 실험을 진행하였다.
- 맥락만을 활용하여 분류를 수행하는지, 혹은 정확한 물체의 위치를 찾아내어 분류를 수행하는지 확인한다.
- 강아지의 얼굴이라는 강력한 feature를 학습하여 이미지에서 해당하는 부분을 찾아내 분류를 수행한다는 것을 확인할 수 있다.
4.2. Correspondence Analysis
- Layer가 깊어질수록 Feature를 시각화한 결과, 학습 Epoch이 어느 정도 진행되어야 함을 보여주고 있다.
- 각각의 Feature를 학습하는데 Layer가 깊어질수록 많은 epoch이 소요된다는 것을 알 수 있다.
- 즉, Epoch이 커지면 커질 수록 feature를 제대로 추출해낸다는 것을 의미한다.
'Paper Review(논문 리뷰) > Computer Vision' 카테고리의 다른 글
[논문 리뷰] [CV] Going deeper with convolutions (0) | 2025.03.18 |
---|---|
[논문 리뷰] [CV] VERY DEEP CONVOLUTIONAL NETWORKSFOR LARGE-SCALE IMAGE RECOGNITION (0) | 2025.03.17 |
[논문 리뷰] [CV] Network In Network (0) | 2025.03.17 |
[논문 리뷰] [CV] ImageNet Classification with Deep ConvolutionalNeural Networks (0) | 2025.03.16 |
[논문 리뷰] [CV] Gradient-Based Learning Applied to Document Recognition, pytorch 구현 (0) | 2025.03.16 |