深度学习_经典网络_VGGNet

一.模型介绍

VGGNet是由牛津大学视觉几何小组(Visual Geometry Group,VGG)提出的一种深度卷积网络结构,他们以7.32%的错误率赢得了2014年ILSVRC分类任务的亚军(冠军由GoogleNet以6.65%的错误率夺得)和25.32%的错误率夺得定位任务(Localization)的第一名,网络名称VGGNet取自该小组名缩写。
VGGNet是首批把图像分类的错误率降到10%以内的模型,同时该网络采用的3*3卷积核的思想是后来许多模型的基础。该模型对深度学习的发展有很大的推动作用,也很值得我们去深入学习。
VGG论文地址

二.模型结构

图1.VGG16模型结构

原论文中的VGGNet包含了6个版本的演进,分别是VGG11、VGG11-LRN、VGG13、VGG16-1、VGG16-3和VGG19,不同的后缀值表示不同的网络层数。
其中VGG11-LRN表示在第一层中采用了LRN的VGG11,VGG16-1表示后三组卷积块中最后一层卷积采用卷积核尺寸为1 * 1,而VGG16-3表示卷积核尺寸为3 * 3。
我们介绍的VGG16为VGG16-3。图1中的VGG16体现了VGGNet的核心思路,使用3 * 3的卷积组合代替大尺寸的卷积:2个3 * 3卷积即可与5 * 5卷积拥有相同的感受野。
下面我们列出VGG16网络参数配置:

网络层;输入尺寸;核尺寸 输出尺寸;参数个数
卷积层C11;224 * 224 * 3;3 * 3 * 64/1 224 * 224 * 64;(3 * 3 * 3+1)*64
卷积层C12;224 * 224 * 64;3 * 3 * 64/1 224 * 224 * 64;(3 * 3 * 64+1)*64
下采样层Smax1;224 * 224 * 64;2 * 2/2 112 * 112 * 128;(0)
卷积层C21;112 * 112 * 64;3 * 3 * 128 112 * 112 * 128;(3 * 3 * 64+1)*128
卷积层C22;112 * 112 * 128;3 * 3 * 128/1 112 * 112 * 128;(3 * 3 * 128+1)*128
下采样层Smax2;112 * 112 * 128;2 * 2/2 56 * 56 * 128;(0)
卷积层C31;56 * 56 * 128;3 * 3 * 256/1 56 * 56 * 256;(3 * 3 * 128+1)*256
卷积层C32;56 * 56 * 256;3 * 3 * 256/1 56 * 56 * 256;(3 * 3 * 256+1)*256
卷积层C33;56 * 56 * 256 ;3 * 3 * 256/1 56 * 56 * 256;(3 * 3 * 256+1)*256
下采样层Smax3;56 * 56 * 256;2 * 2/2 28 * 28 * 256;(0)
卷积层C41;28 * 28 * 256;3 * 3 * 512/1 28 * 28 * 512;(3 * 3 * 256+1)*512
卷积层C42;28 * 28 * 512;3 * 3 * 512/1 28 * 28 * 512;(3 * 3 * 512+1)*512
卷积层C43;28 * 28 * 512;3 * 3 * 512/1 28 * 28 * 512;(3 * 3 * 512+1)*512
下采样层Smax4;28 * 28 * 512;2 * 2/2 14 * 14 * 512;(0)
卷积层C51;14 * 14 * 512;3 * 3 * 512/1 14 * 14 * 512;(3 * 3 * 512+1)*512
卷积层C52;14 * 14 * 512;3 * 3 * 512/1 14 * 14 * 512;(3 * 3 * 512+1)*512
卷积层C53;14 * 14 * 512;3 * 3 * 512/1 14 * 14 * 512;(3 * 3 * 512+1)*512
下采样层Smax5;14 * 14 * 512;2 * 2/2 7 * 7 * 512;(0)
全连接层FC1;7 * 7 * 512;(7 * 7 * 512)*4096 1 * 4096;(7 * 7 * 512+1)*4096
全连接层FC2;1 * 4096;4096 * 4096 1 * 4096;(4096+1)*4096
全连接层FC3;1 * 4096;4096 * 1000 1 * 1000;(4096+1)*1000

三.模型特点

  1. 整个网络都使用了同样大小的卷积核尺寸3 * 3和最大池化尺寸2 * 2.
  2. 1*1卷积的意义在于线性变换,而输入通道数和输出通道数不变,没有发生降维。
  3. 两个3 * 3的卷积串联相当于1个5 * 5的卷积层,感受野大小为5 * 5。同样的,3个3 * 3的卷积层串联的效果则相当于1个7 * 7的卷积层。这样的连接方式使得网络的参数量更少,而且多层的激活函数(前者可以使用三次ReLU激活函数,而后者只有一次)令网络对特征的学习能力更强。
  4. VGGNet在训练时有一个小技巧,先训练浅层的简单网络VGG11,再复用VGG11的权重来初始化VGG13,如此反复训练并初始化VGG19,能够使训练时收敛的速度更快。
  5. 在训练的过程中使用多尺度的变换对原始数据做数据增强,使得模型不易过拟合。