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卷积。
  • VGG网络分析
    • 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的训练
        这里写图片描述
    • 多裁剪测试

      • mult-crop 效果优于dense ConvNet( FC->CONV ),但相差不大
      • 组合效果最好
        这里写图片描述
    • 多模型融合,效果有提升
      这里写图片描述

    猜你喜欢

    转载自blog.csdn.net/chunfengyanyulove/article/details/79089608
    VGG
    今日推荐