更具体地说,在训练神经网络时,有什么理由从由随机梯度下降(SGD) 及其扩展(RMSProp、Adam等)组成的家族中选择优化器,而不是从准牛顿方法家族中选择优化器(包括有限内存BFGS,缩写为L-BFGS)?
我很清楚,SGD 的一些扩展,特别是 RMSProp 和 Adam,存储来自先前迭代的梯度信息,并使用它来计算下一次迭代的更新。这是他们与准牛顿方法的共同点。然而,例如,在 Adam 方法中存储梯度信息背后的动机对我来说并不清楚,而在准牛顿方法中存储先验梯度信息背后的动机是使用它来构造 Hessian 的近似值是很清楚的。 (逆)。
我很想了解:
- 是否有像 Adam 这样的方法的特性使其特别适合机器学习应用程序;
- 这些特征是否使它们能够胜过更传统的优化方法,如准牛顿方法;和(理想情况下)
- 这些方法使用的更新规则背后的一般原因是什么。