Bag of Tricks for Image Classification with Convolutional Neural Networks
Bag of Tricks for Image Classification with Convolutional Neural Networks(卷积神经网络图像分类的技巧包)
摘要
最近在图像分类研究中取得的许多进展可以归功于训练过程的改进,例如数据增强和优化方法的变化。然而,在文献中,大多数改进要么作为实现细节简要地提到,要么只在源代码中可见。在本文中,我们将研究这些改进的集合,并通过烧蚀研究经验评估它们对最终模型精度的影响。我们将证明,通过将这些改进结合在一起,我们能够显著改进各种CNN模型。例如,我们将ResNet-50在ImageNet上的前1验证准确率从75.3%提高到79.29%。我们还将证明,图像分类精度的提高会在其他应用领域(如对象检测和语义分割)中带来更好的迁移学习性能。
总结
主要就是一些小的trick:
- 数据增强:使用label smoothing, mixup等方法进行数据增强。
- 模型调整:调整卷积层的步长、卷积核大小等参数。如ResNet-B、ResNet-C、ResNet-D等。
- 训练过程优化:使用cosine学习率衰减、大batch训练、低精度训练等技术。
- 知识蒸馏:使用教师模型帮助训练学生模型。
- 调整损失函数:使用label smoothing调整交叉熵损失函数。
- 调整学习率:使用cosine学习率衰减、线性缩放学习率等技术。
- 调整训练轮数:增加训练轮数。
- 调整验证集:使用验证集进行早停等。
- 调整初始化:使用零初始化、均匀分布初始化等技术。
- 调整正则化:只对权重进行L2正则化等