为什么在实践中不使用“无鞍牛顿”下降算法?

机器算法验证 优化 深度学习 梯度下降
2022-01-25 00:06:24

最近我读了 Yann Dauphin 等人的一篇论文。识别和解决高维非凸优化中的鞍点问题,他们在其中引入了一种有趣的下降算法,称为无鞍牛顿,该算法似乎完全为神经网络优化量身定制,不应该卡在鞍点上像 vanilla SGD 这样的一阶方法。

这篇论文可以追溯到 2014 年,所以它并不是什么新鲜事物,但是,我还没有看到它被“在野外”使用。为什么不使用这种方法?Hessian 计算对于现实世界规模的问题/网络来说是否过于苛刻?这个算法是否有一些开源实现,可能与一些主要的深度学习框架一起使用?

2019 年 2 月更新:现在有一个可用的实现:https ://github.com/dave-fernandes/SaddleFreeOptimizer )

1个回答

更好的优化并不一定意味着更好的模型。最后我们关心的是模型的泛化能力有多好,而不一定是在训练集上的表现有多好。更高级的优化技术通常在训练集上表现更好并且收敛更快,但并不总是像基本算法一样泛化。例如,这篇论文表明 SGD 可以比 ADAM 优化器更好地泛化。一些二阶优化算法也可能出现这种情况。


[编辑] 删除了第一点,因为它不适用于此处。感谢bayerj 指出这一点。