一、概述
该论文从实验和理论的角度阐述了一系列卷积神经网络在图像分类方面的一些训练技巧,主要聚焦的是效率和精度两个方面,主题涵盖了数据增强、超参数设置、知识蒸馏等。
二、大Batch训练
在凸优化问题中,使用较大的Batch训练模型,往往收敛率会随之降低,需要更多的Epoch才能收敛到近似最优解。但是,神经网络是否是凸函数要看其所使用的激活函数,但是神经网络参数空间的局部可以近似看作是凸的。如何处理大Batch训练问题,该文叙述了几个代表方法。
- 线性缩放学习率。随着batch增大,线性的改变学习率,如 。
- 学习率预热(warmup)。由于初始参数都是随机的,直接使用较大的学习率在训练初始阶段会造成数值不稳定,不容易收敛;通过设定一个较小的训练窗口(比如3个Epoch),使学习率在窗口内逐步的从0上升到预设学习率(比如0.01),可以缓解初期的训练。
- Cosine Learning Rate Decay。余弦学习率衰减,学习率以周期性的、平滑的、余弦式的改变,训练过程更平稳,有更大的机会找到比较好的解。
- 置 0。ResNet每个残差块的BN部分 初始置0,简化模型,易于初始的训练。
- No bias decay。L2正则不作用于偏置、、。
三、低精度训练
低精度就是将高精度参数取值类型换成低精度取值类型,如FP32改为FP16。
- 训练、推理速度更快
- 掉点不多
- 模型小
四、模型结构调整
模型结构调整,虽然改动小,但可能对训练效率和精度影响甚大。
- BottleNeck:,第1个卷积不改变分辨率,第2个卷积开始分辨率开始降低,如瓶口一样,下面粗上面细。
- 三个 计算效率优于一个 ,而且引入了更多的非线性因素,在Inception-v2模型中首次引入。
- 方法很多,最终目的无非两个,一是提速,二是尽可能利用上所有信息。
五、其他Trick
- 标签平滑。相比one-hot表示,平滑处理的标签使得模型的输出概率分布更接近理论上的分布(以ImageNet数据集来近似),因此可以缓解过拟合。
- 知识蒸馏。实验说明了一点问题,同一族的模型进行蒸馏效果要优于不同族模型之间的蒸馏,比如用ResNet101蒸ResNet50可能会比蒸MobileNet要好。
- Mixup。为何有效?