VGGNet网络模型

来源:互联网 发布:三星s5数据备份apk下载 编辑:程序博客网 时间:2024/05/21 19:32

一、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%。

原创粉丝点击