如果Hessians如此擅长优化(例如参见Newton方法),为什么要停在那里?我们使用三阶,四阶,五阶和六阶导数吗?为什么不?
如果Hessians如此擅长优化(例如参见Newton方法),为什么要停在那里?我们使用三阶,四阶,五阶和六阶导数吗?为什么不?
Answers:
我将问题解释为“为什么牛顿方法只使用一阶和二阶导数,而不使用三阶或更高阶的导数?”
实际上,在许多情况下,使用三阶导数确实有帮助;我以前用定制的东西做过。但是,总的来说,使用更高的导数会增加计算的复杂性-您必须查找并计算所有这些导数,并且对于多变量问题,与一阶导数相比,三阶导数要多得多!-远远超过您所节省的步数(如果有)。例如,如果我有一个3维问题,则我有3个一阶导数,6个二阶导数和10个三阶导数,因此转到三阶版本时,我要做的求值次数增加了一倍以上(从9到19),更不用说一旦我完成了这些评估,计算步伐方向/尺寸的复杂性就会增加,但是几乎可以肯定不会将我必须采取的步伐减少一半。
现在,在具有变量的一般情况下,n t h个偏导数的集合将为,因此对于具有五个变量的问题,第三,第四总数,而第五个偏导数将等于231,是第一和第二个偏导数(20)的10倍以上。您将不得不遇到一个非常非常接近变量的五阶多项式的问题,才能看到迭代计数有足够大的减少,以弥补这一额外的计算负担。
我真的看不到这个问题的统计方面是什么,因此我将回答优化部分。
几乎每个答案都只关注迭代成本,而忽略了迭代次数。但是,两者都很重要。迭代1纳秒但需要次迭代才能收敛的方法对您没有任何好处。而且,无论迭代成本多么便宜,爆炸的方法也无济于事。
让我们弄清楚发生了什么。
部分原因是(这对于二阶也是正确的,但稍后会更多):
另一方面,当它们离最佳值较远时,它们更容易爆炸!
(当然,这并不总是正确的;例如,二次方将通过牛顿方法一步收敛。但是对于现实世界中没有好的属性的任意函数,通常是正确的。)
这意味着,当您距离最优值较远时,通常需要低阶(读:一阶)方法。仅当您关闭时,您才想增加方法的顺序。
要了解原因,您首先必须了解“二次收敛”的含义。
从数学上来说,二次收敛意味着,如果是迭代k的误差,则对于某些常数c,以下条件最终成立:
用简单的英语来说,这意味着,一旦您接近最佳值(很重要!),每增加一个步骤,精度位数就会加倍。
为什么?举一个例子很容易看出:对于和| |。ε 1 | = 0.1,您有| ε 2 | ≤ 0.01,| ε 3 | ≤ 0.0001,等等这是可笑的快。(这是超指数的!)
在这一点上,如果您了解任何计算机科学,您就会了解到通过二阶收敛,问题已经解决了。如果您不明白为什么,那么这就是为什么:每次迭代将位数增加三倍而不是加倍,没有任何实际好处—这将为您带来什么?毕竟,在计算机中,即使- double
精度数字也具有52位精度,大约是16位十进制数字。
也许它将所需的步骤数从16个减少到3个...听起来不错,直到您意识到这是以必须在每次迭代中计算三次导数为代价的,这就是维数的诅咒
另一半是,当您离最佳状态很远时,您通常会得到较差的行为,这通常会对您必须执行的迭代次数产生不利影响。
在一般情况下,比2高阶的方法不是一个好主意。当然,如果您可以在表格中添加其他有用的假设(例如,您的数据确实类似于高次多项式,或者您有限制最佳位置的方法,等等),那么也许您会发现它们是一个好主意-但这将是针对特定问题的决定,而不是一般的经验法则。
通常,当您分析此类算法的有效性时,您会发现诸如四阶算法的一个步骤与二阶算法的两个步骤具有大致相同的有效性这样的结果。
因此,使用哪种算法的选择相对简单:如果四阶算法的一个步骤花费了两倍的工作量,或者比二阶算法的一个步骤花费了更多的时间,则应改用后者。
这就是这类方法的典型情况:经典算法对于一般问题具有最佳的工作效率比。尽管偶尔会出现一些问题,其中高阶方法异常容易计算并且可以胜过经典变量,但相对而言并不常见。
为什么单向三阶模型可以带来好处?例如,由于在该方向上接近零的二阶导数基本上意味着两种替代方案:平稳或拐点-仅前者需要较大的步长,而三阶导数则可以区分它们。
我相信我们将朝着混合多阶方法:低维子空间中的二阶方法(例如,从最近的梯度的PCA中提取),仍然允许自由的一阶同时梯度下降到与该子空间正交的部分梯度……以及另外我将为单个最相关的方向添加例如三阶模型。