经典论文解读之VGG——ILSVRC-2014挑战赛目标定位赛道冠军,图像分类赛道亚军

1 介绍

VGG是2014年 ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)大赛冠军使用的模型。论文全名为VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION.其作者是 Karen Simonyan 和 Andrew Zisserman 两位来自牛津大学的教授。该网络在ImageNet定位和分类赛道上分别获得了第一名和第二名。该论文的主要贡献是发现更深的网络会带来更高的准确率,VGG网络将深度推进到前所未有的16-19层。

2 背景

谦虚地表示得益于最近几年大型数据集的出现和计算机硬件资源的迅速发展,还有前几届ImageNet比赛的贡献。

3 网络结构

  1. 网络的输入为224x224的RGB图片,没有做太多的处理,只是每个像素都减去了整个训练集的均值。(是每个像素都计算均值,还是所有像素的均值?我猜是后者)
  2. 卷积层全使用3x3大小的卷积核,有一些会在后面跟1x1的卷积核。
    1. 使用大小为3x3,padding=1,stride=1的kernel会输出和输入一样的size,可以很轻松地增加网络深度,不用小心翼翼地设计每一层的输入输出大小。
    2. 两层3x3的卷积可以得到一层5x5卷积核同样的感受野,两个3x3的卷积核参数数量为18,一个5x5的卷积核参数数量为25,所以可以减少网络参数。同样地三层3x3的卷积核可以获得7x7卷积核的感受野,参数分别是27和49。
    3. 使用1x1卷积核,1x1卷积核由于后边跟着非线性激活函数,可以增强模型的非线性表达能力。
  3. 下采样的任务交给5个MaxPooling池化层,并不是每个卷积层后面都跟着池化层,如下图所示。每个池化层都是size为2x2,步长stride=2。也就是没有使用AlexNet提到的overlapping pooling。
  4. 卷积层的channels大小在第一层设置为64,在下个阶段(一个池化层为一个阶段)channels会乘以2,最大为512(到512就不会扩大了)。
  5. 最后是三个卷积层,前两层使用Dropout,p=0.5。
  6. 所有隐藏层都使用ReLU作为激活函数。

4 训练相关

  • batch-size设置为256
  • 优化器为SGD, lr=0.01, momentum=0.9, 模型在验证集上的准确率不再提高时,学习率lr = lr * 0.1。实际上学习率只衰减了三次。在大约370K次迭代(74个epochs)后就收敛了。
  • 参数初始化
    • 先使用均值为0标准差为0.01的高斯分布随机初始化训练一个表中配置为A的网络,然后使用A的前四个卷积层参数和后三层全连接层的参数初始化更深的网络来进行训练。bias都设置为0.
阅读(102)
评论(0)
updated@2021-08-04
评论区
目录