VGG 19 笔记

1. ConvNet Configurations

  • Architecture

    • 图片的输入尺寸是 224×224×3 ,在预处理阶段,每个像素都要减去训练集中所有图片 RGB 值的均值。这样可以保证新的 RGB 值的均值为 0 。

    • 卷积核的尺寸设置为 3×3 ,或者 1×1 。其中图片经过尺寸为 1×1 的卷积核可以看作是在做一个线性变换。

    • Stride 设置为 1 。Padding 的设置可以让图像经过卷积层之后尺寸不变,也就是说当卷积核尺寸是 3×3 的时候,Padding 设置为 1 。

    • 池化操作采用的是 Max-Pooling,尺寸是 2×2 ,Stride 是 2 ,也就是说不像 AlexNet 那样是重叠的。

    • 没有使用 LRN(Local Response Normalization),因为实验结果表明,LRN 没有改善深度神经网络的表现,反而增加了很多的计算量和计算时间。

  • Configurations

    • 不同配置的深度神经网络最主要的差别在于卷积层的层数不同,从 11 层到 19 层。每一层 Channel 的个数从 64 到 512 。
  • Discussion

    • 卷积核的尺寸比传统的深度神经网络(比如 AlexNet )都要小。在效果上和性能上( Weights 变少了)都有提升。

    • 使用了三次 ReLU 层,而不是一次。

    • 1×1 的卷积核是增强决策函数非线性性质的一种方法,同时可以不影响其它的层。可以把 1×1 的卷积核看作是在相同维度的空间里面的线性变换,可以对 ReLU 层起到辅助的效果。

    • 比 GoogleNet 的结构更简单。

2. Details

  • Training

    • 整体的训练过程与 AlexNet 类似。

    • Learning Rate:学习率 η 初始化为 102 。在每次验证集准确率不再提高的时候,η 减小为原来的十分之一。

    • Momentum 设置为 0.9 。Momentum 代表在 Backward Propagation(BP)过程中沿用「上一次 BP 」的梯度的比例,即下式当中的 α ,这个操作可以让此次的变化梯度适当地沿用上次的,避免权重 w 的剧烈变化。

    Δwt+1=ηEwt+αΔwt

    • Regularization: 正则化采用了 Weight Decay 的方法,L2 惩罚因子 λ5×104

      正则化的目的是减少深度神经网络的过拟合。假设原始的损失函数为 E0(比如平方误差 12(yiˆyi)2 ),加入 L2 正则项之后的损失函数为:

      E=E0+λ2w2i

      求梯度可得:

      Δw=ηEw=ηE0wληw

      可以看出 L2 正则化是趋向于将权重 w 变小,使得权重对待各个输入更加公平,防止过分地放大某个输入。

      同时使用了 Momentum 和 Weight Decay 两种 Tricks 之后的梯度为:

      Δwt+1=ηEwt+αΔwtληwt

    • Dropout:在前两层全连接层实行 Dropout,概率为 0.5 。

    • Weights Initialisation:权重的初始化对于最后的结果影响很大。如果是随机初始化的话,权重 w 被初始化为服从 N(0,102) 高斯分布的随机值,偏置 b 设置为 0 。对于最浅层的网络采用随机初始化,当层数增加之后,沿用浅层相同的层的训练好的参数作为初始化值(Pre-Train 的思想)。

    • Training Set Augmentation:扩充训练样本。首先像 AlexNet 那样对原始训练集进行水平翻转、 RGB 值强度变化。然后还有对图片进行放大缩小的变换操作。有两种方法,一种是对于不同的尺寸训练不同的分类器。另一种是直接训练一个分类器,每张图片在训练之前会被随机缩放。

  • Testing

    测试方法与 Overfeat 当中类似,待补充。

  • Implement

    该网络通过一个定制的 Caffe 实现,可以同时利用多个 GPU 。GPU 之间通过并行地计算梯度来加速训练。

References