参考论文:Very Deep Convolutional Networks for Large-Scale Image Recognition 作者信息:Karen Simonyan, Andrew Zisserman

要点

VGG_2014ILSVRC - 图2:接收窗;
VGG_2014ILSVRC - 图3:感受野;
研究了网络深度和识别精度之间的关系;
利用VGG_2014ILSVRC - 图4的卷积核,使得网络深度达到了16-19层;(小卷积核)GoogleNet也是如此
目的是想让网络做得够深

特点

  • 数据预处理:每张RGB图都减去了训练集上的均值;
  • VGG_2014ILSVRC - 图5卷积核的作用:可实现channel的变换、跨通道信息交互、增加非线性性(后接Relu等—网络可以更深)、可以充当全连接;
  • 卷积核采用VGG_2014ILSVRC - 图6小卷积核,和之前的有区别;
  • 采用maxpooling,pooling核为VGG_2014ILSVRC - 图7,步长为2;(未重叠)
  • 此文中指出LRN并不能提升准确率,只会徒增内存消耗和计算时间;
  • 每次为了保证图像的精度不变,每次卷积padding为1;
  • 为了保证每次maxpooling之后信息不丢失,每次pooling之后,channel数翻倍;(网络设计的一种范式了,但是VGG_2014ILSVRC - 图8卷积可以设计瓶颈)

隐藏层:除了输入和输出层之外都被称为隐藏层。

网络结构

vgg.png

小卷积核的特点

  • 大卷积核可以由多个小卷积核串联实现;
  • 小卷积核之间可以有更多的Relu等非线性层;
  • 减少了参数量:比如3个VGG_2014ILSVRC - 图10串联相当于一个VGG_2014ILSVRC - 图11,假设输入和输出channel都是VGG_2014ILSVRC - 图12,那么VGG_2014ILSVRC - 图13需要的参数量:VGG_2014ILSVRC - 图14;对于VGG_2014ILSVRC - 图15需要参数量:VGG_2014ILSVRC - 图16;(论文中指出相当于对VGG_2014ILSVRC - 图17卷积进行了正则化操作—使得模型变得稀疏,使得模型压缩)

    VGG_2014ILSVRC - 图18卷积的特点

  • 实现channel数的改变;

  • 在channel数不变的情况下,可以引入Relu增加非线性性,使得网络更深;
  • 跨通道信息交互;
  • 充当全连接层;(貌似只能是最后每个channel只有一个元素后,可以作为普通的fc —> 这就是全卷积网络的实现方式)

学习率的改变一般是通过validation结果进行调整的。(比如此文中:当validation里面的正确率不再改变时,则lr除以10,此时学习率是一个超参数)

VGG_2014ILSVRC - 图19卷积主要用于跨通道特征组合,可以用于设计瓶颈,减小计算量。

训练

  • 采用了mini-batch gradient descent(MBGD,之前用到的SGD是随机梯度下降):权值更新的loss是一整个batch的总loss,也就是说一个batch才更新一次参数。mini-batch是相对于BGD来说的,BGD(batch gradient descent,优点是全局最优)是将整个训练集进行计算之后再算梯度,而mini-batch就是在batch基础上算梯度。
  • batch size为256,momentum为0.9,weight decay VGG_2014ILSVRC - 图20
  • 收敛速度加快:小conv、深度更深、特定层的预初始化;
  • 特定层的预处理方式:先训练浅层模型,之后利用浅层模型的参数赋值给深层网络;(浅层没有的就随机正态分布赋值)

    总结

  • LRN不能提升效果;

  • 多余的非线性能够提升效果(利用VGG_2014ILSVRC - 图21卷积实现),但是相对于普通的卷积,如果是相同深度,1*1卷积的效果还是要差一些;
  • 小卷积核(小池化核)的效果相对更好;(保证感受野一样的条件下:两个VGG_2014ILSVRC - 图22替代一个VGG_2014ILSVRC - 图23
  • 引入scale jittering(用在增强数据时),比固定图像大小效果更好;(multi-scale image
    • 就是图像rescale时,不是rescale到固定值,而是一个范围,这样增强数据效果更好(增加了多样性)
  • 训练集和测试集的差异不能太大(这是在数据增强时需要注意的),太大显然会降低效果VGG_2014ILSVRC - 图24这其实就是说很多论文中提到的,训练集和测试集的分布问题;
  • ConvNet Fusion可以提升效果(综合多个模型的结果)
  1. 论文中提到三种evalution:single evalution、multi-scale evalution、multi-crop evalution、dense evalution;
    • single evalution:rescale图像最小变为固定值;(对应于train时)
    • multi-scale evalution:rescale图像最小值为一个范围之间的随机采样值;(对应于train时)
    • multi-crop evalution:对于一张一键被rescale的图片,从中进行多样本随机裁剪,最后将这些所有图片输入网络进行预测,最后对所有的预测取平均;
    • dense evalution:利用卷积取代全连接层,最后通常为VGG_2014ILSVRC - 图25卷积层,产生的channel和类别对应,最后不同大小的图片输入产生不同的分辨率,这时最后的每个channel可以看作一张score map(可以看作是multi-crop evalution中不同剪切输入产生的score组成的一个map),最后利用sum – pool将其映射为最终得分(取综合平均结果)。

(两者边界处理方式不同,效果往往不同)

本文最为重要的包括:

  • VGG_2014ILSVRC - 图26卷积的使用;
  • 小卷积(池化)核的使用;
  • 全卷积网络实现对输入数据size的自适应;
  • 数据增强的scale jittering(也即是多尺度训练);