为什么不使用三阶导数进行数值优化?


29

如果Hessians如此擅长优化(例如参见Newton方法),为什么要停在那里?我们使用三阶,四阶,五阶和六阶导数吗?为什么不?


11
找到最佳选择后,为什么还要进一步寻找呢?确实,您真正想问什么?您的统计问题是什么?
whuber

2
在许多情况下,解决最佳估计方程式或最小化目标函数的估计的极限分布通常是正态的,因此它们的第一和第二时刻可以完全表征它们。
AdamO

3
如果您可以做某事,并不意味着您应该做。高阶导数越来越容易受到噪声的影响。
弗拉迪斯拉夫·多夫加莱茨(Fladislavs Dovgalecs)

6
我投票结束这个题为离题,因为它与统计无关。关于数值优化
Aksakal

11
您尚未取得科学突破。哈雷击败了您大约3 1/4个世纪。哈雷,E.,1694年,“一种新的,精确且容易的方法,它通常可以找到任何方程式的根,并且无需任何先前的归约式即可”。反式 罗伊 Soc。伦敦,18,136–145。存在用于优化的三阶导数方法,并且已经研究了很多年,但是并未获得很大的普及。如果实施得当,它们的最大优点是与完善的牛顿方法相比,鲁棒性提高。对于最棘手的问题,这可能是有利的。
马克·L·斯通

Answers:


31

我将问题解释为“为什么牛顿方法只使用一阶和二阶导数,而不使用三阶或更高阶的导数?”

实际上,在许多情况下,使用三阶导数确实有帮助;我以前用定制的东西做过。但是,总的来说,使用更高的导数会增加计算的复杂性-您必须查找并计算所有这些导数,并且对于多变量问题,与一阶导数相比,三阶导数要多得多!-远远超过您所节省的步数(如果有)。例如,如果我有一个3维问题,则我有3个一阶导数,6个二阶导数和10个三阶导数,因此转到三阶版本时,我要做的求值次数增加了一倍以上(从9到19),更不用说一旦我完成了这些评估,计算步伐方向/尺寸的复杂性就会增加,但是几乎可以肯定不会将我必须采取的步伐减少一半。

现在,在具有变量的一般情况下,n t h个偏导的集合将为,因此对于具有五个变量的问题,第三,第四总数,而第五个偏导数将等于231,是第一和第二个偏导数(20)的10倍以上。您将不得不遇到一个非常非常接近变量的五阶多项式的问题,才能看到迭代计数有足够大的减少,以弥补这一额外的计算负担。ķñŤHķ+ñ-1个ķ-1个


3
您能解释一下如何使用高级衍生工具吗?
whuber

5
@whuber OP所指的是,我必须非常清楚地承认,牛顿的优化方法。问题实际上是“为什么牛顿法只使用一阶和二阶导数,而不使用三阶或更高阶的导数?”。这是不合时宜的,也不清楚他/她在问什么,但是我认为我只是给出一个答案,而不是出于某种原因而投票关闭。
jbowman

4
+1我认为这是一个很好的答案,但是可以根据taylor的扩展显示自己的能力来加以改进。
马修·德鲁里

8
正如我的一位教授(也是一位非常成功的顾问)曾经对我们说的那样:“每当您认为自己想出了一种更好的捕鼠器的方法时,请试着弄清楚为什么有1000名提出相同想法的人在您尚未将其投放市场之前。” 使用Newton的全部目的是节省计算-否则,我们将只进行详尽的搜索。我向您保证,在3维问题上添加三阶导数将非常非常少地支付每一步计算量的加倍,迭代次数大大减少,除非该函数是〜三次的。
jbowman

9
不,不是-它的注释比可能第一次出现的要深。重点是双重的-乍一看似乎很不错的大多数创意,由于可能根本不明显的原因而并非如此,突破的真正关键可能不是创意本身,而是克服或解决了该创意中的缺陷的东西。这个想法。实际上,这种推理指出了这一点,并告诉您寻找该想法中的弱点。这不是放弃,而是考虑透彻,并具有批判性的眼光。
jbowman

22

我真的看不到这个问题的统计方面是什么,因此我将回答优化部分。

有2个部分需要收敛:迭代成本和迭代计数

几乎每个答案都只关注迭代成本,而忽略了迭代次数。但是,两者都很重要。迭代1纳秒但需要次迭代才能收敛的方法对您没有任何好处。而且,无论迭代成本多么便宜,爆炸的方法也无济于事。1020

让我们弄清楚发生了什么。

所以:为什么不使用> 2阶导数?

部分原因是(这对于二阶也是正确的,但稍后会更多):

通常,高阶方法只有在接近最佳值时才会收敛得更快。

另一方面,当它们离最佳值较远时,它们更容易爆炸

(当然,这并不总是正确的;例如,二次方将通过牛顿方法一步收敛。但是对于现实世界中没有好的属性的任意函数,通常是正确的。)

这意味着,当您距离最优值较远时,通常需要低阶(读:一阶)方法。仅当您关闭时,您才想增加方法的顺序。

那么,为什么当您靠近根部时停在第二阶?

因为“二次”收敛行为确实是“足够好”!

要了解原因,您首先必须了解“二次收敛”的含义

从数学上来说,二次收敛意味着,如果是迭代k的误差,则对于某些常数c,以下条件最终成立:ϵķķC

|ϵķ+1个|C |ϵķ|2

用简单的英语来说,这意味着,一旦您接近最佳值(很重要!),每增加一个步骤,精度位数就会加倍

为什么?举一个例子很容易看出:对于| |。ε 1 | = 0.1,您有| ε 2 | 0.01| ε 3 | 0.0001,等等这是可笑的快。(这是超指数的!)C=1个|ϵ1个|=0.1|ϵ2|0.01|ϵ3|0.0001

为什么不停在一阶而不是二阶呢?

ϵķ=0.9999999|ϵ|<0.5

在这一点上,如果您了解任何计算机科学,您就会了解到通过二阶收敛,问题已经解决了。如果您不明白为什么,那么这就是为什么:每次迭代将位数增加三倍而不是加倍,没有任何实际好处—这将为您带来什么?毕竟,在计算机中,即使- double精度数字也具有52位精度,大约是16位十进制数字。 也许它将所需的步骤数从16个减少到3个...听起来不错,直到您意识到这是以必须在每次迭代中计算三次导数为代价的,这就是维数诅咒6656

但是再次:记住维数的诅咒只是故事的一半

另一半是,当您离最佳状态很远时,您通常会得到较差的行为,这通常会对您必须执行的迭代次数产生不利影响。

结论

在一般情况下,比2高阶的方法不是一个好主意。当然,如果您可以在表格中添加其他有用的假设(例如,您的数据确实类似于高次多项式,或者您有限制最佳位置的方法,等等),那么也许您会发现它们是一个好主意-但这将是针对特定问题的决定,而不是一般的经验法则。


很好的答案,但我认为Abel-Ruffini定理是一个红色鲱鱼。首先,我们谈论的是多元问题,因此,计算零元多项式的零点最多只是一个有限利益的简单子问题。而且,更重要的是,解决方案是否有封闭式并不重要:据我所知,实际上,人们甚至不对4级多项式使用封闭式。它们太长,复杂且不稳定。在实践中(使用伴随矩阵上的QR)以数值方式计算多项式的零。
Federico Poloni

@FedericoPoloni:是的,当我决定放进去时,我也想到了同样的想法。最初我没有放进去……我想也许我应该放进去,作为为什么更高学位可以得到的另一个例子意外的问题。但是我想如果没有帮助的话我会再拿出来,谢谢你的评论。
Mehrdad

@FedericoPoloni:PS在我们讨论数值计算时,您可能会发现Sturm函数很有趣(如果您还没有听说过的话)。
Mehrdad

7

H=[2FX1个22FX1个X22FX1个Xñ2FX2X1个2FX222FX2Xñ2FXñX1个2FXñX22FXñ2]

H/X=[HX1个HX2HXñ]
H/X一世Ĵķ=3FX一世XĴXķ

6FX一世XĴXķXXXñ

通常,权衡不利于追求比Hessian高的价格。我的意思是在通过使用高阶近似值获得的潜在速度增益与噪声放大之间进行权衡。由于我们在谈论统计应用程序,因此输入中始终会有噪音。该噪声将被导数放大。

如果您打高尔夫球,那么优化的类比就是先挥杆尝试去果岭,而不用担心一个洞。一次,在果岭上,我们将瞄准一个洞。


4

通常,当您分析此类算法的有效性时,您会发现诸如四阶算法的一个步骤与二阶算法的两个步骤具有大致相同的有效性这样的结果。

因此,使用哪种算法的选择相对简单:如果四阶算法的一个步骤花费了两倍的工作量,或者比二阶算法的一个步骤花费了更多的时间,则应改用后者。

这就是这类方法的典型情况:经典算法对于一般问题具有最佳的工作效率比。尽管偶尔会出现一些问题,其中高阶方法异常容易计算并且可以胜过经典变量,但相对而言并不常见。


2

您可以将导数的阶数视为函数的多项式逼近的阶数。大多数优化例程都依赖于凸性。二次多项式在任何地方都是凸/凹的,而三阶或更高阶多项式在任何地方都不是凸的。因此,大多数优化例程都依赖于具有二次函数的凸函数的逐次逼近。凸的二次逼近要求施加正定性条件才能使二次凸。


3
X2-ÿ2

X2-ÿ2

1
这是一个二次函数,但既不凸也不凹。
德克(

@Dirk是的,您是对的,我应该添加一个肯定的半定警告。我将其添加到我的答案中。
卢卡斯·罗伯茨

1

d一世3/6

为什么单向三阶模型可以带来好处?例如,由于在该方向上接近零的二阶导数基本上意味着两种替代方案:平稳或拐点-仅前者需要较大的步长,而三阶导数则可以区分它们。

我相信我们将朝着混合多阶方法:低维子空间中的二阶方法(例如,从最近的梯度的PCA中提取),仍然允许自由的一阶同时梯度下降到与该子空间正交的部分梯度……以及另外我将为单个最相关的方向添加例如三阶模型。

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.