-
VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION머신러닝, 딥러닝 공부 2020. 1. 30. 19:40반응형
2012년 AlexNet의 등장으로 image classification 분야에서 CNN 모델이 주목을 받았다. AlexNet을 이어받아 2014년에 VGG 모델과 GoogLeNet 모델이 ILSVRC에서 뛰어난 성과를 얻었다. 이 모델들의 AlexNet 보다 더 깊은 layer를 쌓으면서 뛰어난 성능을 보였다.
ABSTRACT
요약하자면 기존의 CNN에 비해 convolution filter의 크기를 감소시키고 layer을 더 깊게 만들어 large-scale image recognition 성능을 끌어 올렸다는 내용이다.
INTRODUCTION
Introduction은 CNN layer의 depth에 중점을 두고 연구했다고 설명하고 있다. 이전 모델들은 conv filter size가 조금씩 달랐지만 이 논문은 모든 layer에 3x3 conv filter를 동일하게 적용했다. 예를들어 AlexNet은 입력 conv filter size를 11x11을 사용했다.
CONVNET CONFIGURATIONS
1. ARCHITECTURE
- Input : 224x224로 고정, 전체 이미지에서 RGB 픽셀의 mean value를 뺀다.
- Conv layer : 기본적으로 3x3 conv filter을 사용, input channel에 대한 linear transformation을 위해 1x1 filter도 사용
- Pooling layer : 5 layer의 max pooling 사용 2x2 크기에 stride는 2이다.
- Fully-Connected layer : 4096 channel
2. Configuration
논문에서 사용한 모델들(A~E) 이다. 입력 이미지의 경우 ImageNet 데이터셋이므로 256x256x3을 pre-processing한 224x224x3으로 동일하다. convolution filter size가 작기 때문에 네트워크의 depth가 깊음에도 파라메터수가 133~144M개 사이로 얕은 depth를 가진 네트워크와 비교해도 크지 않음을 알 수 있다.
3. Discussion
3x3 conv filter 2개를 사용하는 것이 하나의 5x5 conv filter를 사용하는 것과 같은 효과를 가진다고 설명한다. 아래 그림을 참고하자.
3x3 conv filter를 사용하면 7x7 conv filter에 비해 더 많은 activation function(예를들어 ReLU)을 통과할 수 있으므로 non-linear한 문제를 더 잘 풀 수있다. 또한 3x3 conv filter를 사용하는 conv layer를 2번 사용하는 것이 7x7 conv filter 한 개보다 사용되는되는 parameter수가 적다. 따라서 overfitting이 감소하게 된다.
CLASSIFICATION FRAMEWORK
1. TRAINING
논문에서는 모델의 가중치를 다음과 같이 초기화 한다.
- 상대적으로 얕은 11-Layer 네트워크를 우선적으로 학습한다.
- 어느 정도 학습이 완료되면 입력층 부분의 4개 층과 마지막 3개의 fully-connected layer의 weight를 학습할 네트워크의 초기값으로 사용한다.
또한 모델 학습 시 입력 이미지에 Data augmentation을 적용했다. 입력 크기는 모두 224x224로 고정이지만 학습 이미지는 각 이미지에 대해 256x256~512x512 내에서 임의의 크기로 변환하고, 크기가 변환된 이미지에서 임의의 224x224 이미지를 Crop하여 사용하였다. 대략 아래와 같은 방식이다.
2. TESTING
Fully-Convolutional Networks를 사용한다. 관련된 내용은 후에 다룬다. 만약 신경망이 convolution 레이어로만 구성될 경우 입력 이미지의 크기 제약이 없어진다는 장점이 있다.
CLASSIFICATION EXPERIMENTS
결록적으로 VGG Net의 핵심은 기존 ConvNet 아키텍쳐보다 작은 receptive field 사용 및 최대 19 depth까지 weight layer를 깊게 설계를 하여 좋은 성능을 이끌어 냈다. 실험 결과 네트워크의 깊이가 깊어질수록 이미지 분류 정확도가 높아지는 것을 확인할 수 있었다.
References
반응형'머신러닝, 딥러닝 공부' 카테고리의 다른 글
Accelerating the Super-Resolution Convolutional Neural Network (0) 2020.02.16 Spatial Transformer Networks (0) 2020.02.08 Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (0) 2020.02.07 Learning Deep Features for Discriminative Localization (0) 2020.02.02 Deep Residual Learning for Image Recognition (0) 2020.01.31