拟牛顿法

维基百科,自由的百科全书

拟牛顿法是一种以牛顿法为基础设计的,求解非线性方程组连续最优化问题函数的零点极大、极小值算法。当牛顿法中所要求计算的雅可比矩阵Hessian矩阵难以甚至无法计算时,拟牛顿法便可派上用场。

搜索极值[编辑]

与牛顿法相同, 拟牛顿法是用一个二次函数以近似目标函数. 的二阶泰勒展开

其中, 表示梯度, 表示Hessian矩阵的近似. 梯度可进一步近似为下列形式

令上式等于, 计算出Newton步长,

然后构造的近似满足

上式称作割线方程组. 但当是定义在多维空间上的函数时, 从该式计算将成为一个不定问题 (未知数个数比方程式个数多). 此时, 构造, 根据Newton步长更新当前解的处理需要回归到求解割线方程. 几乎不同的拟牛顿法就有不同的选择割线方程的方法. 而大多数的方法都假定具有对称性 (即满足). 另外, 下表所示的方法可用于求解; 在此, 于某些范数尽量接近. 即对于某些正定矩阵, 以以下方式更新:

近似Hessian矩阵一般以单位矩阵等作为初期值[1]. 最优化问题的解由根据近似所得的计算出的Newton步长更新得出.

以下为该算法的总结:

  • 计算新一个迭代点下的梯度
  • 利用, 直接近似Hessian矩阵逆矩阵. 近似的方法如下表:
Method
DFP法英语DFP updating formula
BFGS法英语BFGS method
Broyden法英语Broyden's method
Broyden族
SR1法英语SR1 formula

与逆矩阵的关联[编辑]

是一个二次函数,且Hessian矩阵正定,我们总是希望由拟牛顿法生成的矩阵收敛于Hessian矩阵的逆。这是基于迭代值更新最小 (least-change update) 的拟牛顿法系列的一个实例。[2]

实现[编辑]

拟牛顿法是现在普遍使用的一种最优化算法, 存在多种编程语言的实现方法。

参见[编辑]

参考文献[编辑]

  1. ^ William H. Press. Numerical Recepes. Cambridge Press. 2007: 521-526. ISBN 978-0-521-88068-8. 
  2. ^ Robert Mansel Gower; Peter Richtarik. Randomized Quasi-Newton Updates are Linearly Convergent Matrix Inversion Algorithms. 2015. arXiv:1602.01768可免费查阅 [math.NA].