VGGNet은 2014년 ImageNet Large Scale Visual Recognition Challenge (ILSVRC)에서 성공적인 결과를 달성한 모델이다.
VGGNet의 논문 이름은 VeryDeep Convolutional Networks for Large-Scale Image Recognition로 Karen Simonyan과 Andrew Zisserman이 작성했다.
Abstract
Large-scale image recognition을 해결하기 위해서 convolutional network의 depth를 집중적으로 연구하여 accuracy를 어떤 영향을 주는지를 연구했다. 3 x 3의 작은 convolution filter를 가지고도 depth를 충분히 쌓는다면 좋은 결과를 도출할 수 있다. 이때 여기서 제시한 모델은 16-19의 depth의 weight layers를 가진다. 2014년 ImageNet Challenge에서 localisation에서는 1위를, classification에서는 2위를 차지했다.
Introduction
최근 large-sacle image and vidoe recognition에서 Convolutional Networks (ConvNets)가 좋은 성능을 거두고 있다. GPU와 같은 고성능 컴퓨팅 시스템에 힘입었다.
기존의 많은 CV 필드에서의 방법론들은 AlexNet보다 향상시키기 위해 노력하고 있다. 또한 smaller receptive fields 즉, smaller kernel size도 시도 되고 있는데 본 논문에서는 ConvNet의 설계에서 depth라는 측면에 주목했다.
본문에서는 classification을 설명하고 object localisation은 appendix에서 설명한다.
ConvNet Configurations
Input 데이터는 224 x 224 RGB의 fixed size 이미지다. 적용한 pre-processing은 substracing the mean RGB value 하나 밖에 없다. 오직 3 x 3의 small receptive field만을 사용했으며 1 x 1 convolution도 사용했다. Convoulution stride는 1 pixel로 고정했으며, spatial padding은 convolution의 경우 1 pixel로 거장했다. Spatial pooling은 5개의 max pooling으로 수행했으며, 몇몇 conv layers의 뒤에 따라온다. Max-pooling은 2 x 2 pixel window이며 stride는 2이다.
Stack of conv layers의 뒤에는 Fully-Connected (FC) layers가 따라오는데 처음의 2개는 모두 4096 채널을 가지고 있고, 마지막 레이어만 1000을 가진다. 이는 ILSVRC classification의 class 개수인 1000개를 맞추기 위함이다. 그리고 마지막 layer는 soft-max layer다.
모든 hidden layers는 ReLU로 non-linearty를 확보한다. 여기서는 AlexNet과는 다르게 Local Response Normalisation을 적용하지 않았다.
Figure 1을 보면 weight layers의 depth에 따른 각 layers의 구조를 확인할 수 있다.
해당 논문에서는 3 x 3 kernels의 stack이 5 x 5나 7 x 7 커널의 효율적인 방식임을 보이고 있다. 따라서 기존의 큰 사이즈의 커널 대신 stack of 3 x 3 kernels의 사용을 주장한다. 7 x 7이 C 개의 채널을 가질 때 필요한 파라미터는 49$C^2$이다. 반면에 7 x 7 kernel과 동일한 3 stack of 3 x 3 kernels의 경우 채널이 모두 C일 때, 9$C^2$ x 3이므로, 27$C^2$라서 파라미터의 수가 많이 줄어든다. 7 x 7 kernel이 3 stack of 3 x 3 kernels 동일한지는 아래의 Figure 2를 보면 이해가 빠르다.
마찬가지로 5 x 5 kernel은 2 stack of 3 x 3 kernels와 동일하다.
본 논문에서 1 x 1 convolution을 적용한 이유는 receptive field에 영향을 주지 않고 non-linearity를 늘리기 위함이다.
Classification Framework
전반적인 학습 방법은 AlexNet을 따랐다. Multinomial logistic objective function을 최적화하며 mini-batch gradient descent을 사용했고 batch size는 256, momentum은 0.9고, weight decay를 0.9로 두어 regularization을 수행했다. 첫 두개의 FC layers 사이에 dropout을 지정했는데 drouput probability는 0.5다.
Layers에 대한 initialization도 수행하였는데 weights는 N(0, 0.01)에서 샘플링했고, biases는 모두 0으로 초기화를 수행했다. Input size는 224 x 224로 고정하기 위해서 random crop을 rescaled traning images에서 수행했다.
실험은 C++ Caffe로 Multi-GPU를 통해서 수행했다.
Classification Experiments
ILSVRC-2014에서는 ILSVRC-2012 dataset을 이용했다. 이는 1000개의 class가 있었다. Training에 1.3 million images, validation에 50 thousand images, testing에는 100 thousand images with held-out class labels이 담겨져있다. Classification performance는 top-1 error와 top-5 error로 측정한다.
Single Scale Test
Single Scale Test에서는 local response normalisation이 효과가 있는지 없는지를 우선 살펴본다.
여기서 Scale은 image의 size를 의미한다. Single scale이란 트레이닝 데이터의 이미지와 테스트 데이터의 이미지 크기가 같을 때를 의미한다. 트레이닝은 256 x 256 이나 384 x 384나 512 x 512를, 테스트에서는 256 x 256 이나 384 x 384를 활용한다.
그 다음 depth가 증가함에 따라 성능이 증가하는지 아닌지를 11 layers부터 19 layers까지 늘려가며 관찰한다.
Table 3의 결과를 보면 A, B, C, D, E로 (11 layers의 A와 19 layers의 E layers) 가 증가할수록 top-1과 top-5 val error가 감소함을 알 수 있다. A부터 E까지의 자세한 모델의 구조는 Figure 1을 살펴보면 알 수 있다.
Multi-Scale Test
여기서는 트레이닝 이미지 크기와 테스트 이미지의 크기가 다를 때를 실험했으며, A와 A-LRN은 제외하고 B부터 E까지의 모델들만 결과가 나와있다.
16 layers의 모델 D와 19 layers의 모델 E가 서로 동률을 이룸을 알 수 있다. 그리고 전반적으로 layers를 깊게 쌓을수록 더 나은 성능을 보여줌을 알 수 있다. Table 3에서와 마찬가지로 일관된 결과를 보여준다.
마지막으로 Table 7은 ILSVRC Classification의 SOTA (State-Of-The-Arts = 최신) 모델들의 성능 비교를 나타낸다.
Top-5 Val error에 대해서는 VGG가 GoogLeNet 보다 근소하게 더 좋은 결과를 나타냄을 알 수 있다.
Conclusion
19 layers까지 굉장히 깊게 쌓은 네트워크가 엄청나게 큰 이미지 데이터의 분류 문제에서 좋은 성능임을 보였다.
Appendix
Localisation
Localisation은 object detection의 special case라고 볼 수 있다. single object에 대해서 bounding box를 그리는 작업이다. 그리고 이 bounding box는 top-5 classes를 예측한다.
Localisation은 classification과 유사하게 학습을 진행한다. Single scale로 실험을 진행했으며 이미지 사이즈는 256과 384 두 가지 각각에 대해서 별도의 모델로 학습시켰다.
Abstract에서 이야기했듯이 VGG가 localisation에서 top-5에서 1위를 기록했음을 Table 10에서 확인할 수 있다.
저자들은 추가적으로 PASCAL VOC-2007과 VOC-2012, 그리고 Caltech-101과 Caltech-256이라는 데이터에 대해서도 추가적인 classification 성능 실험을 해보았는데 굉장히 좋은 성능을 보였다.
References:
https://image-net.org/challenges/LSVRC/2012/analysis/
https://arxiv.org/pdf/1409.1556.pdf
'Computer Vision' 카테고리의 다른 글
GoogLeNet = Inception v1 (2014) 논문 리뷰 (0) | 2024.04.03 |
---|---|
VGGNet PyTorch Code Implementation (0) | 2024.04.02 |
AlexNet PyTorch Code Implementation (0) | 2024.03.27 |
AlexNet (2012) 논문 리뷰 (0) | 2024.02.28 |
Computer Vision 소개 (0) | 2024.02.21 |