/ DATA

합성곱 신경망 기초 5(VGGNet, Very Deep Convolutional Network)

CNN 강좌는 여러 절로 구성되어 있습니다.

VGGNet

  • ILSVRC 2014 대회에서 2등을 차지한 Karen Simonyan과 Andrew Zisserman이 만든 CNN 모델
  • ILSVRC는 ImageNet Large Scale Visual Recognition Challenge의 약자로, 2010년에 시작된 이미지 인식(Image Recognition) 경진대회

VGG-16 Architecture

1 0

  • 13 Convolution Layers + 3 Fully-connected Layers
  • 3x3 convolution filters
  • stride: 1 & padding: 1
  • 2x2 max pooling (stride : 2)
  • ReLU

Configuration

4

  • Input Size RGB 224x224, 복수의 Convolution layer, Max-Pooling층이 반복되는 구조이며 최종단에는 FC layer으로 구성되어 있다.

3x3 필터 사용 (Why use smaller filters?)

  • VGG 모델 이전 Convolutional Network를 활용하여 이미지 분류에서 좋은 성과를 보였던 모델들은 비교적 큰 Receptive Field를 갖는 11x11필터나 7x7 필터를 포함
  • 그러나 VGG 모델은 오직 3x3 크기의 작은 필터만 사용했음에도 이미지 분류 정확도를 비약적으로 개선 3
  • 파라미터 수를 줄이고 Layer를 다층 쌓아서 모델의 전체 Depth를 깊게 만들기 위해서이다.
  • Input Size가 7x7이며, 3x3의 Output Size를 도출해내야 한다고 가정하자, 이때 Filter Size가 3x3이라면 총 두 차례의 Convolution을 진행해야 한다.
  • 반면 5x5의 Filter Size로는 단 한 번의 Convolution으로 동일한 사이즈의 Feature Map을 산출한다. 3x3 Filter로 세 차례 Convolution 하는 것은 7x7 Filter로 한 번 Convolution 하는 것과 대응된다.
  • 즉, 3x3 Filter 3개는 7x7 Filter 하나와 동일한 Receptive Field (= Filter가 한 번에 볼 수 있는 입력 이미지의 Spatial Area) 를 가지면서도 더 깊은 레이어를 쌓을 수 있게 하는 것이다.
  • 이처럼 Layer 수가 늘어나면 이미지 특성에 비선형성을 더 추가할 수 있기 때문에(Deeper, more non-linearities), Filter를 통해 추출한 Feature가 점점 유용해지는 이점을 얻게 된다.

필터의 크기가 작으면 파라미터 수도 적어진다(Smaller filters, fewer parameters)

  • 3x3 Filter에는 9개의 파라미터가 있다. 이때 Depth를 C라고 한다면 3 x 3 x C 개의 파라미터가 있고, 여기에 출력되는 Feature Map의 개수(=입력 Depth)를 곱하면 각 레이어 당 3x3xCxC의 파라미터를 가지게 된다. 만약 Layer가 3개라면, 총 파라미터는 3 * (32C2)개이다.
  • 반면 7x7 Filter의 경우 7x7xCxC개의 파라미터 수가 있을 것이다. 레이어를 더 적게 쌓았음에도 파라미터 수가 많은 것을 확인할 수 있다.
  • 여기서 파라미터(weight) 수가 적다는 것은 어떤 의미를 가질까? CNN에서 가중치는 모두 훈련이 필요한 것들이므로, 파라미터 수가 적을 수록 학습 속도가 빨라진다는 이점을 얻을 수 있다.

결론

  1. VGGNet은 3x3의 작은 필터를 모든 Conv 레이어에 사용하였다.
  2. 작은 필터를 사용함으로써 더 많은 ReLU함수를 사용할 수 있고 더 많은 비선형성을 확보할 수 있었다.
  3. VGGNet의 A~E까지 각각의 다른 모델이 아니라 학습의 단계부터 알 수 있듯, 업그레이드된 모델이다.
  4. 위와 같은 특징들로 AlexNet보다 2배 이상 깊은 네트워크이며 좋은 성능을 가진 모델을 만들어 낼 수 있었다.
  5. 줄였음에도 파라미터의 수가 엄청나게 많기 때문에 학습 시간이 오래 걸린다

참조 문헌
https://arxiv.org/pdf/1409.1556.pdf