您的位置:首页 > 其它

牛顿法和线搜索&信任域

2016-03-16 21:04 162 查看

Author: niejijing

先前在数值分析和数值优化的时候,由于上课不是很认真,导致一直以来产生了一个错觉,就是认为牛顿切线法是线搜索中的牛顿法的特殊形式,结果今天在复习的时候突然发现实则大谬矣。这两种方法的区分是很明显的:

牛顿切线法解决的零点问题,而线搜索中解决的求全局极小值点的问题

两者在公式的先决假设不同,导致虽然公式的形式虽然相似,但是思想和处理技巧上实则是有天壤之别

两者不存在显示的转换原则,难以使用对偶定理

具体展开如下(信任域在形式上与线搜索还是比较一致的),均采用一维的情形作为论述,日后有时间再推广:

首先均从泰勒公式出发,有该式\[f(x+\Delta x)=f(x)+f'(x)\Delta x+\frac{f''(x)}{2}\Delta^2 x+O(\Delta^2 x) \qquad(1.1)\]

牛顿切线法的先决假设是在\(x_0\)附近的时候\(f(x_0)\rightarrow0\),因而在这一层假设中,左边的\(f(x+\Delta x)\)可以直接看作0,并且可以忽略高阶项所以公式(1.1)简化为

\[0=f(x)+f'(x)\Delta x \qquad(1.2)\]

因此可以得到\[\Delta x=-\frac{f(x)}{f'(x)} \qquad(1.3)\]

返观线搜索中的做法,首先在梯度下降这一点上,两者就已经殊途了,这是因为线搜索方法几乎都是具有如下的形式\[x_n = x_{n-1} + \alpha B_{n-1}^{-1}\nabla f(x_{n-1})\]

这两者的形式大不相同,再仔细看一下牛顿搜索在一维空间上的形式,同样也是基于公式(1.1),此时的假设是在\(x_0\)附近,\(f(x+\Delta x)\rightarrow f(x)\),,忽略高阶项,公式(1.1)可以简化为:\[0=f'(x)\Delta x+\frac{f''(x)}{2}\Delta^2 x \qquad(1.4)\]

因此可以得到\[\Delta x = -\frac{2*f'(x)}{f''(x)} \qquad(1.5)\]

有趣的是,这两个公式在收敛点附近都是二次收敛,并且都存在着对起始点选择的依赖。因而不禁让人去思考这两者可能存在的共性。

二阶收敛的证明先留着,切线法的二阶收敛证明很简单,可以参考Burden的numerical analysis,至于后者的证明,需要一些引理准备,可以参考Jorge的numerical optimization.

有什么办法把一个求零点的问题转换为一个求全局最小值点而不损失其信息?我还没有作出过尝试,至少\(|f(x)|\)和\(f^2(x)\)肯定不是。待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: