VGG论文给出了一个非常振奋人心的结论:卷积神经网络的深度增加和小卷积核的使用对网络的最终分类识别效果有很大的作用。记得在AlexNet论文中,也做了最后指出了网络深度的对最终的分类结果有很大的作用。这篇论文则更加直接的论证了这一结论。
作者Karen Simonyan & Andrew Zisserman来自Visual Geometry Group, Department of Engineering Science, University of Oxford
网络结构
论文指出:
- VGG不仅在ILSVRC的分类和检测任务中取得了the state-of-the-art的精度
- 在其他数据集上也具有很好的推广能力
结构Architecture
名称 | 说明 |
---|---|
输入图像大小 | 224x224 |
预处理 | 减去均值 |
卷积核 | 3x3,1x1 |
padding | 1 for 3x3 |
Max-pooling | 2x2 s-2 |
激活函数 | ReLU |
说明:
*1x1卷积核:降维,增加非线性性
*3x3卷积核:多个卷积核叠加,增加空间感受野,减少参数
论文中,作者指出,虽然LRN(Local Response Normalisation)在AlexNet对最终结果起到了作用,但在VGG网络中没有效果,并且该操作会增加内存和计算,从而作者在更深的网络结构中,没有使用该操作。
VGG网络结构
VGG网络参数
Q1: 为什么3个3x3的卷积可以代替7x7的卷积?
- 3个3x3的卷积,使用了3个非线性激活函数,增加了非线性表达能力,使得分割平面更具有可分性
- 减少参数个数。对于C个通道的卷积核,7x7含有参数72C2,参数大大减少
Q2: 1x1卷积核的作用
- 在不影响感受野的情况下,增加模型的非线性性
- 1x1卷机相当于线性变换,非线性激活函数起到非线性作用
Q3: 网络深度对结果的影响(同年google也独立发布了深度为22层的网络GoogleNet)
- VGG与GoogleNet模型都很深
- 都采用了小卷积
- VGG只采用3x3,而GoogleNet采用1x1, 3x3, 5x5,模型更加复杂(模型开始采用了很大的卷积核,来降低后面卷机层的计算)
模型框架
VGG采用了min-batch gradient descent去优化multinomial logistic regression objective
名称 | 说明 |
---|---|
batch size | 256 |
momentum | 0.9 |
learn rate | 10−2) |
max iterations | 370K/74epochs |
正则化方法:
- 增加了对权重的正则化,5∗10−4||W||L2
- 对FC全连接层进行dropout正则化,dropout ratio = 0.5
说明:虽然模型的参数和深度相比AlexNetyou 了很大的增加,但是模型的训练迭代次数却要求更少:a)正则化+小卷积核,b)特定层的预初始化
初始化策略:
- 首先,随机初始化网络结构A(A的深度较浅)
- 利用A的网络参数,给其他的模型进行初始化(初始化前4层卷积+全连接层,其他的层采用正态分布随机初始化,mean=0,var=10−2, biases = 0)最后证明,即使随机初始化所有的层,模型也能训练的很好
训练输入:
采用随机裁剪的方式,获取固定大小224x224的输入图像。并且采用了随机水平镜像和随机平移图像通道来丰富数据。
Training image size: 令S为图像的最小边,如果最小边S=224,那么做完224x224区域随机裁剪后,每张裁剪图,只能覆盖原图的一小部分内容。
注:因为训练数据的输入为224x224,从而图像的最小边S,不应该小于224
数据生成方式:首先对图像进行放缩变换,将图像的最小边缩放到S大小,然后
- 方法1: 在S=224和S=384的尺度下,对图像进行224x224区域随机裁剪
- 方法2: 令S随机的在[Smin,Smax])
预测方式:作者考虑了两种预测方式:
- 方法1: multi-crop,即对图像进行多样本的随机裁剪,然后通过网络预测每一个样本的结构,最终对所有结果平均
- 方法2: densely, 利用FCN的思想,将原图直接送到网络进行预测,将最后的全连接层改为1x1的卷积,这样最后可以得出一个预测的score map,再对结果求平均
上述两种方法分析:
- Szegedy et al.在2014年得出multi-crops相对于FCN效果要好
- multi-crops相当于对于dense evaluatio的补充,原因在于,两者在边界的处理方式不同:multi-crop相当于padding补充0值,而dense evaluation相当于padding补充了相邻的像素值,并且增大了感受野
- multi-crop存在重复计算带来的效率的问题
While we believe that in practice the increased computation time of
multiple crops does not justify the potential gains in accuracy.
最终,作者认为相对于multi-crop的在精度上的提高并不能弥补其在计算量上的消耗,但作者最后还是对比了这两种方法的效果
效果分析
单尺度
结论:
- 模型E(VGG19)的效果最好,即网络越深,效果越好
- 同一种模型,随机scale jittering的效果好于固定S大小的256,384两种尺度,即scale jittering数据增强能更准确的提取图像多尺度信息
多尺度
结论:
- 对比单尺度预测,多尺度综合预测,能够提升预测的精度
- 同单尺度预测,多尺度预测也证明了scale jittering的作用
多尺度裁剪
结论:
- 数据生成方式multi-crop效果略优于dense,但作者上文也提高,精度的提高不足以弥补计算上的损失
- multi-crop于dense方法结合的效果最后,也证明了作者的猜想:multi-crop和dense两种方法互为补充
模型融合
结论:
- 通过多种模型融合输出最终的预测结果,能达到the state-of-the-art的效果
对比
结论:
- 与其他模型对比发现,VGG也能达到非常好的效果。
总结
作者指出,VGG模型不仅能够在大规模数据集上的分类效果很好,其在其他数据集上的推广能力也非常出色。
参考文献
[1].https://arxiv.org/pdf/1409.1556.pdf
[2].http://blog.csdn.net/wangsidadehao/article/details/54311282
[3].http://www.360doc.com/content/17/0624/10/10408243_666125650.shtml
[4].https://www.cs.toronto.edu/~frossard/post/vgg16/
[5].http://www.jianshu.com/p/9c6d90e4f20e