应用于最优化的牛顿法

牛顿法微积分学中, 通过叠代以求解可微函数零点的一种算法 (即求使得). 而在最佳化中, 牛顿法通常被运用于求解一个二次可微函数一阶导数的零点 (即求使得), 同时也是驻点. 因此从另一个角度而言,应用于最佳化的牛顿法是搜索函数的最小值或最大值的一种算法。

最速下降法 (绿色) 与牛顿法 (红色) 在求最小值问题上的比较 (带有步长). 可见牛顿法根据曲率选择了一条“捷径”.


一维问题的牛顿法主要步骤如下: 取一个点初值, 依如下公式叠代:

直至满足一定条件 (如, 其中为一个给定的足够小的常数) 后, 算法终止。


方法描述

编辑

在一维问题中, 牛顿法将构造一个以 为首项, 收敛 的数列 , 其中 使得 成立.

  处的二阶泰勒展开式 为:

 

我们希望找到 使  的一个驻点。则将上式对 进行求导:

 

上述方程的解 满足

 

收敛于 的驻点 .

几何意义

编辑

牛顿法的几何意义为: 在每一次叠代中,均以一个二次函数去逼近 . 具体而言: 在一维问题中,已知 ,  ,   , 设二次函数表逹式为 , 依下列方程求解未知数 

 
 
 

然后二次函数 极值点即为下一个叠代点,

 

而在高维问题中, 上述的极值点也可以是鞍点. 值得一提的是, 如果 恰为一个二次函数, 则其极值点只需一次叠代中即可找到.


高维问题求解

编辑

上述的一维问题的叠代法可以被推广至多维问题. 只需将导数替换为梯度 ( ), 并将二阶导数的倒数替换为Hessian矩阵逆矩阵 ( ), 即:

 

通常, 使用牛顿法时会加入一个步长变量 作微调以使每一步叠代都满足Wolfe条件, 即,

 

这个方法被称为无约束牛顿法, 通常用于第一步之后的叠代.

只要牛顿法适用, 其收敛于最小值或最大值的速度均颇快于最速下降法. 事实上, 对于每一个极小值, 都存在一个邻域 使得, 只要Hessian矩阵可逆的且是一个关于 Lipschitz连续函数, 以 为初值, 步长 的牛顿法是二次收敛的.


求一个高维问题的Hessian矩阵逆矩阵是一件颇费工夫的事情. 在实际应用中, 通常会用向量 作为线性方程组

 

的解. 这个求解过程中, 透过使用各种矩阵分解方法同近似求解方法, 求解速度可以大大提升. 然而, 这些矩阵分解方法或近似求解方法的使用需要满足一定条件; 例如, Cholesky分解共轭梯度法只有在 正定矩阵时才适用. 这看似是一个限制, 但有时也能充当检验答案的工具; 例如, 在一个最小化问题 ( ) 中, 求出一个 使得  不是正定矩阵, 那么 只是 的一个鞍点而非极小值点.


另一方面, 一个有约束的问题的求解过程可能会遇到当前解陷入一个鞍点的情况, 这时的Hessian矩阵对称不定的; 此时则要使用其他方法, 例如Cholesky分解的 变形共轭梯度法等的方法, 来叠代得出 .


此外, 为规避求Hessian矩阵的繁琐, 也存在多种拟牛顿法, 通过调整梯度以求出Hessian矩阵的近似.


如果Hessian矩阵 接近一个奇异矩阵, 则其逆矩阵会变得数值不稳定且叠代不会收敛. 此种情形下, 前人探索出了很多成功的方法来解决问题. 目标之一是通过引入修正矩阵 使得 对称正定的. 其中一种方法是将 对角化, 选择 使 有相同的特征向量, 但每一个 的负特征值都被替换成 


一个应用于莱文贝格-马夸特方法 (其中用到了近似的Hessian矩阵) 的方法是引入一个带系数的单位矩阵 , 系数在每一步叠代中调整. 对于较大的 及较小的Hessian矩阵, 叠代将变得与以 为步长的最速下降法相似, 这将使得叠代收敛变慢, 但在Hessian矩阵不定半定的情况下, 收敛更稳定.

参阅

编辑

参考文献

编辑

外部链接

编辑