一、VGGNet模型简介
VGGNet由牛津大学的视觉几何组(Visual Geometry Group,简称VGG)提出的,在ILSVRC-2014中取得了定位任务第一名和分类任务第二名,它总共有19层。其突出贡献在于证明使用很小的卷积(3*3)来增加网络深度可以有效提升模型的效果,而且VGGNet对其他数据集具有很好的泛化能力。VGGNet的缺点就是需要更大的存储空间,参数量达到达到140M。
VGGNet是从AlexNet发展而来,主要进行了两个方面的改进:(1)在第一个卷积层使用更小的filter尺寸和间隔。(2)在整个图片和multi-scale上训练和测试图片。
二、VGGNet模型的特点
(1)小的Filter尺寸为3*3,卷积的间隔s=1,3*3的卷积层有1个像素的填充。
(2)3*3是最小的能够捕获上下左右和中心概念的尺寸。
(3)两个3*3的卷基层的有限感受野是5*5;三个3*3的感受野是7*7,可以替代大的filter尺寸。
(4)多个3*3的卷基层比一个大尺寸filter卷基层有更多的非线性,使得判决函数更加具有判决性。
(5)多个3*3的卷积层比一个大尺寸的filter有更少的参数。
三、VGGNet模型的结构
VGGNet模型的结构如下图所示:
模型有5个max-pooling层,故是5阶段卷积特征提取。每层的卷积个数从首阶段的64个开始,每个阶段增长一倍,直到达到最高的512个,然后保持。
基本结构A:Input(224,224,3)→64F(3,3,3,1)→max-p(2,2)→128F(3,3,64,1)→max-p(2,2) →256F(3,3,128,1)→256F(3,3,256,1)→max-p(2,2)→512F(3,3,256,1)→512F(3,3,512,1)→max-p(2,2)→512F(3,3,256,1)→512F(3,3,512,1)→max-p(2,2)→4096fc→4096fc→1000softmax。有8个卷积层,3个全连接层,共计11层。
结构B:在结构A的stage2 和stage3分别增加一个3*3的卷积层,10个卷积层,总计13层。
结构C:在结构B的基础上,stage3,stage4,stage5分别增加1*1的卷积层,13个卷积层,总计16层。
结构D:在结构C的基础上,stage3,stage4,stage5分别增加3*3的卷积层,13个卷积层,总计16层。
结构E:在结构D的基础上,stage3,stage4,stage5分别增加3*3的卷积层,16个卷积层,总计19层。
各个结构的模型参数大小如下图所示:
四、VGGNet网络训练
4.1 训练参数设置
Minibatch=256,尽管VGG比Alex-net有更多的参数,更深的层次;但是VGG需要很少的迭代次数就开始收敛。这是得益于一下两个方法:
(1)深度和小的filter尺寸起到了隐式的规则化的作用;
(2)先训练浅层网络。在得到A网络的参数后,训练更深的网络E时,使用A中得到的参数初始化对应的层。
Multi-scale 训练:把原始 image缩放到最小边S>224;然后在full image上随机提取224*224窗口,进行训练。由于物体尺寸的变化多样,Multi-scale可以更好的识别物体,有两种多尺度的训练方法。
(1)在S=256,和S=384上训练两个模型,然后求平均;
(2)类似OverFeat测试时使用的方法,在[Smin,Smax]scale上,随机选取一个scale,然后提取224*224的图片,训练一个网络。这种方法类似图片尺寸上的数据增益。
4.2 测试阶段single-scale对比
A vs A-LRN:A-LRN结果没有A好,说明LRN作用不大;
A vs B,C,D,E:越深越好;
A vs C:增加1*1filter,即增加额外的非线性确实提升效果;
C vs D:3*3的filter比1*1filter要好,使用较大的filter能够捕捉更大的空间特征。
训练方法:在scale区间[256,512]通过scale增益来训练网络,比在固定的两个S=256和S=512,结果明显提升。Multi-scale训练确实很有用,因为卷积网络对于缩放有一定的不变性,通过multi-scale训练可以增加这种不变性的能力。
4.3 Multi-scale训练
方法1:single-scale训练 S,multi-scale测试 {S-32,S,S+32};
方法2:multi-scale训练[Smin;Smax],multi-scale测试{Smin,middle,Smax}。
(1)B vs B’, C vs C’… :single-scale训练,利用multi-scale测试,有0.2%的top-5提升。
(2)B-256 vs B-384 …:single-scale在256和348上训练,无论用什么测试方法,结果基本上差不多。说明网络在单个scale上提取能力有限。
(3)multi-scale训练,multi-scale测试,对于网络提升明显,D’和E’的top-5分类达到了7.5%。