在训练神经网络时,为什么选择 Adam 而不是 L-BGFS 作为优化器?

计算科学 优化 机器学习
2021-12-07 08:21:05

更具体地说,在训练神经网络时,有什么理由从由随机梯度下降(SGD) 及其扩展(RMSPropAdam等)组成的家族中选择优化器,而不是从准牛顿方法家族中选择优化器(包括有限内存BFGS,缩写为L-BFGS)?

我很清楚,SGD 的一些扩展,特别是 RMSProp 和 Adam,存储来自先前迭代的梯度信息,并使用它来计算下一次迭代的更新。这是他们与准牛顿方法的共同点。然而,例如,在 Adam 方法中存储梯度信息背后的动机对我来说并不清楚,而在准牛顿方法中存储先验梯度信息背后的动机是使用它来构造 Hessian 的近似值是很清楚的。 (逆)。

我很想了解:

  • 是否有像 Adam 这样的方法的特性使其特别适合机器学习应用程序;
  • 这些特征是否使它们能够胜过更传统的优化方法,如准牛顿方法;和(理想情况下)
  • 这些方法使用的更新规则背后的一般原因是什么。
1个回答

这个话题已经在Cross Validated(又名stats.stackexchange)和Reddit上进行了详细讨论:

  1. 为什么牛顿法在机器学习中没有广泛应用?(特别参见尼克阿尔杰的回答)

  2. 为什么在神经网络中使用梯度下降?

  3. L-BFGS 和神经网络

  4. 为什么二阶 SGD 收敛方法在深度学习中不受欢迎?

  5. 随机梯度下降的 Adam 方法如何工作?

其他相关参考:

  1. Bottou 等人,大规模机器学习的优化方法SIAM 评论2018),特别是关于二阶方法的第 6 节。

  2. Ian Goodfellow 的深度学习书籍,关于优化的章节,第 8.6 节(二阶方法)。

  3. Quoc Le 等人,关于深度学习的优化方法

  4. Dauphin 等人,识别和解决高维非凸优化中的鞍点问题

TL;DR : 陪审团仍然没有考虑二阶方法。