DNN 训练的无 Hessian 优化与梯度下降

Hessian-Free Optimization versus Gradient Descent for DNN training

在训练深度神经网络 (DNN) 时,无 Hessian (HF) 优化技术与梯度下降技术(例如随机梯度下降 (SGD)、批量梯度下降、自适应梯度下降)相比如何?

在什么情况下人们应该更喜欢 HF 技术而不是梯度下降技术?

简而言之,HFO 是一种避免因(天真地)在深度网络中使用反向传播而产生的梯度消失问题的方法。然而,深度学习是为了避免这个问题调整学习 and/or 架构,所以最终归结为每个特定网络模型(和策略,如预调整)和 HFO 之间的具体比较。最近有很多关于这个主题的研究,但还没有得到充分的探索。在某些情况下它表现得更好,在某些情况下则不然。 Afaik(可能很快就会过时)基于 Elman 的 RNN(不是 LSTM)从中受益最多。

Tl;dr:尽管有缺陷,SGD 仍然是转到方法。直到有人找到更好的非 SGD 学习方式。 HFO 是许多建议中的一种,但尚未发现它是最先进的。

我认为如果有人知道其中的区别,那么有助于了解何时何地使用每种方法。我试着阐明一些概念。

梯度下降是一种一阶优化方法,已经被 用于神经网络的训练,因为二阶方法,例如 牛顿法,在计算上是不可行的。然而,二阶方法比一阶方法表现出更好的收敛特性,因为它们还考虑了误差的曲率space。

此外, 一阶方法需要对减少参数进行大量调整,即 特定于应用程序。他们也有陷入局部最优的倾向 并表现出缓慢的收敛。

牛顿法不可行的原因是 Hessian 矩阵,耗时过长。为了克服这个问题,"Hessian free" 学习提出了一种可以使用牛顿法而不直接计算 Hessian 矩阵的方法。

我不想详细介绍,但据我所知,对于深度网络,强烈建议使用 HF 优化(与 HF 方法相比也有很多改进),因为它花费的时间少得多训练时间,或使用带动量的 SGD。