Machine Learning, Deep Learning

[Paper review] Very Deep Convolutional Networks For Large-Scale Image Recognition

n.han 2021. 4. 5. 22:30

Karen Simonyan & Andrew Zisserman가 ICLR 2015에서 발표한 Very Deep Convolutional Networks For Large-Scale Image Recognition 논문을 리뷰한 포스트입니다. VGG Net으로 많이 알려져 있는 모델입니다.

VGG Net은 AlexNet 이후로 나온 모델인데요. VGG Net와 AlexNet의 가장 큰 차이는, VGG Net은 3 X 3 커널만을 사용한 대신에 모델을 깊게 쌓는 전략을 취했다는 것 입니다. 작은 커널을 사용하며 모델을 깊게 쌓았을 때 어떤 장점들이 있었을까요?
Layer를 두 층 쌓게 되면 하나의 픽셀은 3 X 3 Receptive Field로 확장되고, 한 층 더 쌓게 되면 5 X 5 Recpetive Field로 확장되는 효과가 있습니다.

Layer가 쌓임에 따른 Receptive field의 확장. 출처: https://discuss.pytorch.org/t/dynamic-structure-of-cnn/45870/2

두 층의 Convolution layer를 썼을 때 커널 크기를 3 X 3 에서 5 X 5로 늘린 한 층의 Convolution layer와 비교하여 두 가지 장점이 있습니다. 먼저 non-linear activation function을 하나 더 활용하여 표현을 풍성하게 한다는 것 이고, 더 중요한 것은 파라미터 수가 줄어든다는 것 입니다. 만약 입력과 출력의 채널 수가 같다고 하면 5 X 5 convolution은 25C^2(5X5XC^2)의 파라미터를 학습해야 하고, 3 X 3 convolution을 두 층 쌓은 경우 18C^2(2X3X3XC^2)의 파라미터를 학습해야 합니다 (Bias 파라미터 수는 무시하고 계산하였습니다). 이 효과는 층이 더 쌓일수록 커집니다.

본 논문에서는 여러 개의 모델들을 제안하였는데, 그 중 VGG 16과 VGG 19 두 모델이 가장 널리 알려져 있습니다. VGG 16의 Architecture은 아래와 같습니다.

VGG 16 Architecture. 출처: https://neurohive.io/en/popular-networks/vgg16/

Input: 224 X 224 RGB Channel로 구성된 이미지
CONV1: 224 X 224 X 64 Channel로 구성된 layer 2개
POOL1
CONV2: 112 X 112 X 128 Channel로 구성된 layer 2개
POOL2
CONV3: 56 X 56 X 256 Channel로 구성된 layer 3개
POOL3
CONV4: 28 X 28 X 512 Channel로 구성된 layer 3개
POOL4
CONV5: 14 X 14 X 512 Channel로 구성된 layer 3개
POOL5: 최종 출력 7 X 7 X 512
FC1: 7 X 7 X 512의 입력을 받아 4096개의 노드를 출력
FC2: 4096개를 입력으로 받아 4096개를 출력
FC3: 4096개를 입력으로 받아 1000개(클래스 개수 만큼)를 출력
Softmax: 분류 문제이므로 마지막에 덧댐

학습 과정에서의 하이퍼 파라미터들은 AlexNet과 크게 다르지 않습니다. Dropout과 SGD + Momentum, L2 norm으로 Weight decay, Learning rate을 1/10씩 두 번 정도 loss가 줄어들지 않을 때 감소 시켰습니다.

'Machine Learning, Deep Learning' 카테고리의 다른 글

Variational autoencoder  (0) 2021.04.16
Going deeper with convolutions (GoogLeNet)  (0) 2021.04.15
Transfer learning  (0) 2021.04.05
Optimization beyond SGD  (0) 2021.04.03
Regularization for neural networks  (0) 2021.04.02