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


13

最近,我读了Yann Dauphin等人的论文。识别和解决高维非凸优化中的鞍点问题,他们引入了一种有趣的下降算法,称为“无鞍牛顿”,该算法似乎是专门为神经网络优化设计的,因此不会卡在鞍点上像香草SGD这样的一阶方法。

该论文的历史可以追溯到2014年,因此并不是什么新鲜事物,但是,我还没有看到它被“野外使用”。为什么不使用此方法?对于现实世界中存在的问题/网络,Hessian计算是否过于严格?该算法是否甚至有一些开源实现,可能与某些主要的深度学习框架一起使用?

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


好问题,我什么也找不到。但是,伪代码非常简单,因此您可以自己尝试一下,在这种情况下,作者的一篇博士论文中有一些有用的实现细节(第103页,papyrus.bib.umontreal.ca/xmlui/bitstream/handle / 1866/13710 /…
galoosh33年

1
我在Uber深度神经进化博客文章中找到了对同一篇论文的参考。链接:eng.uber.com/deep-neuroevolution您可能会问作者是否有任何在线实现或通过GitHub共享。
Cantren '17


如果我不得不猜测,我的假设是当您的模型具有数百万个参数时,计算+反转Hessian是不切实际的。
Sycorax说要

1
您可以从“是否有实施方案”中提炼您的问题?这似乎负担得起,是/否的答案和/或听起来像是软件请求(此处不合主题)。能否将您的问题解释为“什么困难可以解释为什么似乎没有更多的实现”?
gung-恢复莫妮卡

Answers:


2

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


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


1
我同意第二点,但第一点在这里无效。作者建议仅在Krylov子空间中进行优化,而该子空间不需要二次复杂度。
bayerj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.