- SPP-Net
- deep learning
- object detection
- LeNet 구현
- 딥러닝
- overfeat
- image classification
- Optimizer
- Convolution 종류
- Weight initialization
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Today
- Total
I'm Lim
[논문 요약] ZFNet 본문
1. Paper
Zeiler, Matthew D., and Rob Fergus. "Visualizing and understanding convolutional networks." European conference on computer vision. Springer, Cham, 2014.
2. Introduction
이 논문은 ILSVRC 2012 우승을 차지한 AlexNet 모델을 분석합니다. AlexNet 모델의 성능이 굉장히 좋은 것은 사실이지만, 왜 그런지에 대한 설명은 없고, 그렇기 때문에 성능 개선시킬 수 있는지도 알 수 없습니다. 이 논문에서는 그 이유에 대해 분석하고, 모델을 개선시킴으로써 AlexNet보다 우수한 성능을 달성했습니다.
3. Visualization with a Deconvnet
1 ) DeconvNet (Transposed Convolution)
Convolution 연산이 filtering, pooling으로 이루어지는 것을 역으로 연산하여 원래의 feature map 크기로 되돌려놓는 연산입니다. 실제로는 역연산이 아니라 Transpose 과정을 거치기 때문에 torch에서는 ConvTranspose라는 이름으로 구현이 되어있습니다.
i ) Unpooling
Max-pooling은 역연산이 가능한 것이 아니므로 미리 Pooling 연산시 Max값을 따로 switch 변수에 저장해 놓습니다. 그리고, unpooling 연산시 이 switch를 이용하여 정보의 위치를 복원합니다.
ii ) Rectification
ReLU와 동일한 연산을 수행합니다.
iii ) Filtering
Convolution 연산 시 얻었던 feature map에 transpose를 취한 후, 이를 Unpooling-Rectification을 거친 map에 적용합니다.
4. ConvNet Visualization
위 Deconvolution 연산을 이용하여 시각화시킨 결과로 초반부 레이어에서는 low-level feature가 나타나고, 후반부 레이어에서는 high-level feature가 나타나는 것을 보여주었습니다.
AlexNet을 시각화 시켰을 때, 첫 번째 레이어에는 극단적인 High frequency information과 Low frequency information이 섞여있었다고 합니다. 또한, 두 번째 레이어에서는 Alias 현상이 발생했다고 합니다.
이러한 문제를 해결하기 위해, ZFNet은 첫 번째 레이어의 kernel size를 11에서 7로 줄이고, stride를 4에서 2로 감소시켰습니다.
5. Model Architecture
kernel_size | stride | padding | in_channel | out_channel | input_shape | |
conv (LRN) | 7 | 2 | 1 | 3 | 96 | (3, 224, 224) |
MaxPool | 3 | 2 | 1 | (96, 110, 110) | ||
conv (LRN) | 5 | 2 | 96 | 256 | (96, 55, 55) | |
MaxPool | 3 | 2 | 1 | (256, 26, 26) | ||
conv | 3 | 1 | 1 | 256 | 512 | (256, 13, 13) |
conv | 3 | 1 | 1 | 512 | 1024 | (256, 13, 13) |
conv | 3 | 1 | 1 | 1024 | 512 | (384, 13, 13) |
Maxpool | 3 | 2 | (256, 13, 13) | |||
linear (Dropout) | 512 * 6 * 6 | 4096 | (256 * 6 * 6, ) | |||
linear (Dropout) | 4096 | 4096 | (4096, ) | |||
linear | 4096 | 1000 | (4096, ) |
※ 표는 최고성능을 보인 모델 기준입니다.
6. Result
AlexNet에서 약간만 수정시킨 ZFNet 모델은 AlexNet보다 뛰어난 성능을 보였다.
7. Experiment
1 ) ImageNet Dataset
모델 학습을 위해 본 논문에서는 ImageNet 데이터셋을 사용하였고, AlexNet의 전처리 과정을 그대로 사용하였습니다.
2 ) Feature Generalization
이 논문에서는 Pre-trained 기법을 적극 활용하였습니다. 데이터 셋에 맞게 마지막 layer의 out_features만을 수정함으로써 (데이터 셋의 크기에 맞게) 빠르게 학습을 시킬 수 있었다고 합니다. 그 결과 Caltech 데이터 셋에서는 SOTA를 기록하였다고 합니다.
그러나, PASCAL 데이터 셋에서는 SOTA 모델에 비해 3.2% 낮은 mean performance를 보였는데 이는 PASCAL 데이터 셋이 Pre-trained에 사용되었던 ImageNet 데이터 셋과 차이가 있어서라고 합니다.
Discussion
본 논문은 AlexNet 모델이 각 레이어에서 어떤 feature를 추출하는지 시각화하였고, 이를 통해 모델을 적절히 개선시켰다는 점에서 의미가 있습니다.
'Classification > Paper' 카테고리의 다른 글
[논문 요약] AlexNet (0) | 2022.10.31 |
---|---|
[논문 요약] LeNet (0) | 2022.10.30 |