深度学习-LR(学习率)

kunlong00 2018-10-11

问题1 - 选择正确的LR

LR(学习率)超参数可以显著影响机器学习模型训练所花费的时间。找到最佳学习速度以加快收敛始终是至关重要的。

学习率是最难设置的参数之一,学习率决定了您想要更新权重的速度。

  • 如果学习率太小,则需要很长时间才能达到最低点
  • 如果学习率太大,它可能会从底部摆动。

深度学习-LR(学习率)

大LR与小LR

虽然有许多经验法则,用于估计选择学习速率的可能起点,但它们并没有提供寻找它的通用算法,而且大多数情况下是特定情况或有其他限制,不能应用于所有用例。

如果我告诉我们可以完全自动化找出最佳学习率而不是选择Naively,该怎么办?

论文(http://arxiv.org/abs/1506.01186)中的总体思路是,在每个小批量之后简单地提高学习率。最终,学习率太高,损失会变得更糟。

深度学习-LR(学习率)

自动LR查找器

深度学习-LR(学习率)

然后,我们查看学习率与损失的关系曲线,并确定最低点并返回一个幅度并选择它作为学习率。

问题2-减少机器学习模型训练时间

机器学习模型训练就是减少训练组的损失,并通过验证设置进行验证,以确保不会过度拟合。了解LR将如何帮助减少我们需要了解的关于鞍点的训练时间。

Saddlepoint是以下3d图像中的红点:

深度学习-LR(学习率)

Saddlepoint

基于梯度的优化算法能够从鞍点逃脱,但是它们确实减慢了训练速度,因为这样的点周围的表面更平坦并且梯度趋向于接近零。

为了克服这个问题,我们可以使用SGDR(Stochastic Gradient Descent with restarts),这是学习率退火的一种变体,随着训练的进行逐渐降低学习率。这很有用,因为当我们接近最佳权重时,我们希望采取更小的步骤。这种降低学习率的技术称为余弦退火

深度学习-LR(学习率)

Cycle 1 Number of epochs 3

一个周期是我们在每个epoch restart LR的时间。另一个变化是使下一个周期比前一个周期长一些常数因子。

然而,我们可能会发现自己处于权重空间的一部分,而不是非常有弹性(鞍点) - 也就是说,权重的微小变化可能会导致损失发生重大变化。我们希望鼓励我们的机器学习模型找到既精确又稳定的权重空间部分。因此,我们不时会增加学习率(这是'SGDR'中的'restarts'),如果当前区域是“spikey”,它将强制模型跳转到权重空间的不同部分。这是一张如果我们将学习率重置3次(在论文(https://arxiv.org/pdf/1608.03983.pdf)中他们称之为“cyclic LR schedule”)的情况下的图片:

深度学习-LR(学习率)

相关推荐