为啥adam不需要太大的学习率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥adam不需要太大的学习率相关的知识,希望对你有一定的参考价值。

参考技术A 因为adam损失下降特别快,不用设置那么大的初始学习率 参考技术B 我们利用TensorFlow提供的tf.train.AdamOptimizer来控制学习速度。AdamOptimizer通过使用动量(参数的移动平均数)来改善传统梯度下降,促进超参数动态调整本回答被提问者采纳

机器学习笔记:学习率预热 warmup

1 学习率预热介绍

  • 在mini-batch 梯度下降方法中,如果batch比较大的话,通常需要比较大的学习率
  • 但在一开始的训练中,由于参数是随机初始化的,所以此时的梯度往往也很大
    • 如果此时学习率也很大的话,训练将变得很不稳定
  • ——>为了提高训练的稳定性,我们在最初几轮迭代时,采用较小的学习率,等梯度下降到一定程度之后,再恢复到初始的学习率
    • 这种方法称为学习率预热 learning rate warmup
    • 当预热过程结束的时候,再选择一种学习率衰减的方式来降低学习率

2 逐渐预热 gradual warmup

一种常见的方法是逐渐预热。假设预热的迭代次数为T‘,初始学习率为α0,那么在预热的过程中,每次更新的学习率为

以上是关于为啥adam不需要太大的学习率的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的学习率会下降,即使损失正在改善?

如何在 TF2 中更改 Adam 的学习率?

我们应该为亚当优化器做学习率衰减吗

在 ADAM 优化器的 CNTK 实现中,参数 alpha、beta1、beta2 和 epsilon 如何与学习率和动量相关

梯度下降优化算(Momentum, AdaGrad, RMSprop, Adam)学习率退火

机器学习笔记:学习率预热 warmup