"learning rate warm-up" 是什么意思?

What does "learning rate warm-up" mean?

在机器学习,尤其是深度学习中,warm-up是什么意思?

我有时听说,在某些模型中,热身是训练的一个阶段。但老实说,我不知道它是什么,因为我对 ML 很陌生。到现在为止我从未使用过或遇到过它,但我想知道它,因为我认为它可能对我有用。

什么是学习率预热,我们什么时候需要它?

这意味着如果您将学习率指定为 2e-5,那么在训练过程中,学习率将在前 10,000 步内从大约 0 线性增加到 2e-5。

如果您的数据集高度分化,您可能会遇到某种 "early over-fitting"。如果您的混洗数据恰好包含一组相关的、特征强烈的观察结果,您的模型的初始训练可能会严重偏向这些特征——或者更糟的是,偏向与主题根本不相关的附带特征。

预热是一种降低早期训练示例首要效应的方法。没有它,您可能需要 运行 几个额外的 epoch 才能获得所需的收敛,因为模型会取消训练那些早期的迷信。

许多模型都将此作为命令行选项提供。学习率在预热期间线性增加。如果目标学习率为 p 并且预热期为 n,则第一个批次迭代使用 1*p/n 作为其学习率;第二个使用 2*p/n,依此类推:迭代 i 使用 i*p/n,直到我们在迭代 n.

达到标称速率

这意味着第一次迭代仅获得 1/n 的首要效应。这合理地平衡了这种影响。

请注意,上升通常是一个时期的数量级——但对于特别倾斜的数据偶尔会更长,或者对于更均匀的分布来说更短。您可能需要进行调整,具体取决于将改组算法应用于训练集时批次的功能极端程度。

热身其实有两种策略,参考here

  • constant: 在最初的几个步骤中使用比基础学习率低的学习率。
  • gradual:在前几步中,学习率设置为低于基础学习率,随着步数的增加逐渐增加以接近基础学习率。正如@Prune 和@Patel 建议的那样。