「cs231n」深度学习网络训练技巧3——After training

三、After training

训练好一个model后该干什么:Model ensembles;transfer learning;large-batch training。

Model ensembles

(李沐大神也提到过这个)
1.训练多个独立的models
2.在test时,取多个model的结果的平均值(取预测概率分布的平均,选择argmax)

  • 会得到2%左右的提升

Tips and Tricks

  • cyclic learning rate: 每个模型的 lr 都从头开始变化。
    「cs231n」深度学习网络训练技巧3——After training_第1张图片
  • 使用多个模型迭代中的平均weights 而不是最终weights

Transfer learning

见这里的介绍
还有毕设工作也是基于迁移学习的,毕设翻译的论文是迁移学习相关研究结论。
E:\dplrn\cs231n\paper\visualize 有相关论文

  • 迁移学习已经是ML中的普遍trick。

这是一个pipeline:
「cs231n」深度学习网络训练技巧3——After training_第2张图片

现有的一些研究结论:

  • 预训练得到的性能,非预训练时要进行3倍的训练才能得到。(Rethinking ImageNet Pre-Training,ICCV2019)
    「cs231n」深度学习网络训练技巧3——After training_第3张图片

  • 当datasize很小,pretrain+finetuning 效果很好。
    「cs231n」深度学习网络训练技巧3——After training_第4张图片

  • 即使数据集大,迁移学习也有效。

论文

  • CNN features off-the-shelf: an astounding baseline for recognition(transfet learning相关)

Distributed Training

问题:数据量太大难以训练,时间长。

  1. 将不同层在不同的GPU上训练——Model Parallelism 缺点:时间长
    「cs231n」深度学习网络训练技巧3——After training_第5张图片

  2. 将模型不同分支在不同GPU上训练
    「cs231n」深度学习网络训练技巧3——After training_第6张图片

  3. 常用:划分数据,在不同GPU上训练

    • 问题:学习率太大可能会梯度爆炸

「cs231n」深度学习网络训练技巧3——After training_第7张图片
「cs231n」深度学习网络训练技巧3——After training_第8张图片

  • 解决:Learning rate warm up

「cs231n」深度学习网络训练技巧3——After training_第9张图片

Large-batch training

「cs231n」深度学习网络训练技巧3——After training_第10张图片
「cs231n」深度学习网络训练技巧3——After training_第11张图片

  • 其他可用的trick
    「cs231n」深度学习网络训练技巧3——After training_第12张图片

论文:
「cs231n」深度学习网络训练技巧3——After training_第13张图片

你可能感兴趣的:(深度学习,cs231n,深度学习,人工智能,计算机视觉)