Adam Optimizer 被认为对其超参数值具有鲁棒性的原因是什么?

机器算法验证 神经网络 深度学习 优化 超参数 亚当
2022-02-06 01:05:22

我正在阅读有关深度学习的Adam 优化器,并在Bengio、Goodfellow 和 Courville的新书Deep Learning中看到以下句子:

Adam 通常被认为对超参数的选择相当稳健,尽管有时需要从建议的默认值更改学习率。

如果这是真的,那将是一件大事,因为超参数搜索在深度学习系统的统计性能中可能非常重要(至少根据我的经验)。因此,我的问题是,为什么亚当对如此重要的参数很鲁棒?特别β1β2

我已经阅读了 Adam 论文,但它没有提供任何解释为什么它可以使用这些参数或为什么它很健壮。他们是否在其他地方证明了这一点?

此外,当我阅读这篇论文时,他们尝试的超参数的数量似乎非常少,对于只有 2,对于只有 3。如果它只适用于 2x3 超参数,这怎么能成为一个彻底的实证研究?β1β2

2个回答

关于索赔的证据,我相信支持该索赔的唯一证据可以在他们论文中的图 4 中找到。的一系列不同值下的最终结果β1β2α

就个人而言,我认为他们的论点没有说服力,特别是因为他们没有针对各种问题提出结果。话虽如此,我会注意到我已经使用 ADAM 解决了各种问题,我个人的发现是的默认值确实看起来非常可靠,尽管需要大量摆弄β1β2 α

Adam 在每个参数的基础上自己学习学习率。参数不直接定义学习率,只是学习率衰减的时间尺度。如果它们衰减得非常快,那么学习率就会到处跳跃。如果它们衰减缓慢,则学习率需要很长时间才能学习。但请注意,在所有情况下,学习率都是根据每个参数梯度的移动估计和每个参数的平方梯度自动确定的。β1β2

这与普通的随机梯度下降形成了巨大的对比,其中:

  • 学习率不是每个参数的,但是有一个单一的全局学习率,它直接应用于所有参数
    • (顺便说一句,这就是为什么数据在被发送到网络之前经常被白化、标准化以试图保持理想的每参数权重相似的原因之一)
  • 提供的学习率是使用的准确学习率,不会随着时间的推移而适应

Adam 不是唯一具有自适应学习率的优化器。正如 Adam 论文所说,它与 Adagrad 和 Rmsprop 高度相关,它们对超参数也极其不敏感。特别是,Rmsprop 工作得非常好。

但总的来说,亚当是最好的。除了极少数例外,亚当会做你想做的:)

在一些相当病态的情况下,Adam 不起作用,特别是对于一些非常非平稳的分布。在这些情况下,Rmsprop 是一个很好的备用选项。但一般来说,对于大多数非病理性病例,Adam 工作得非常好。