VGG
VGG网络简介
VGG网络是在AlexNet网络的基础上发展而来的,其主要贡献在于使用非常小的3*3的卷积核进行网络设计,并且将网络深度增加到16-19层。在2014年ImageNet比赛中,获得了定位第1,分类第2的好成绩,网络具有很好的泛化能力。
VGG网络结构
网络结构
如下图是VGG网络不同深度的网络结构图,从左到右层数在增加。对比与AlexNet的异同
- VGG与AlexNet均采用5+3结构,即5个卷积层用pooling分开,然后卷积层后接3个全连接层。
- AlexNet每层只有一个卷积,而VGG每层有多个卷积
- AlexNet卷积核大小较大,VGG全部采用3*3大小的卷积,同时网络C引入了1*1卷积。
- 2个3*3的卷积层连接,就达到了5*5的效果,3个3*3的卷积层连接,就达到了7*7的效果。
- 用3个3*3卷积层代替7*7的卷积层可以有效的减少参数的数量,如:
3个3*3 :3(32C2) 个参数;7*7:72C2 个参数。
- 网络C中,引入1*1卷积核进行非线性变换。
VGG网络训练
-
训练图像
1、固定尺寸,即缩放图像最小边S到256或者384,然后裁剪得到输入数据是224*224,进行训练。
2、多尺度,即缩放图像最小边到[256,512]之间,然后裁剪训练,该方法有效的考虑了图像中目标大小的不一致,有利于训练。并且考虑到速度原因,本文在单尺度(S=384)的基础上,进行微调得到多尺度模型。 -
测试图像
1、将图像缩放到预定义的最小图像边Q,Q不一定与S相等。
2、将全连接层转换为卷积层,第一FC层转换到7×7卷积层,最后两个FC层转换到1×1卷积层,已达到任意大小的输入,同时避免重复裁剪带来的时间浪费。
3、采用FC变换到CONV后,会得到多个输出,本文对多个输出取平均,以及对镜像图像进行处理,取平均,得到最终的结果。
实验分析
- 数据集:ILSVRC-2012数据集上实现的图像分类结果。
- 单尺度测试,Q=S,S∈[S_min,S_max],Q=0.5(S_min+S_max)。
- 实验对比结果分析
1、对比采用LRN后,并未对网络效果进行改善
2、分类误差随着深度的增加而减小
3、C比B好,说明增加1*1的非线性卷积,对提高分类效果具有一定作用。
4、C比D差,说明,增大感受野到3*3具有更好的效果。
5、19层以上错误率达到饱和,再加深需要更大数据集。
6、B网络与5*5卷积核对比,利用5*5替换2个3*3卷积,发现3*3具有更好的效果。
7、训练时的尺寸抖动,具有更好的效果,说明有用啊。
- 实验对比结果分析
-
多尺度测试,Q=S−32,S,S+32 ; Q= {Smin,0.5*(Smin+Smax),Smax}
- 尺度抖动优于使用固定最小边S的训练
- 尺度抖动优于使用固定最小边S的训练
-
多裁剪测试
- mult-crop 效果优于dense ConvNet( FC->CONV ),但相差不大
- 组合效果最好
多模型融合,效果有提升