假设是上具有二阶连续偏导数的函数,要求解的无约束最优化问题是
表示目标函数的极小点。
在牛顿法的迭代中,需要计算海塞矩阵的逆矩阵,这一计算比较复杂,考虑用一个阶矩阵来近似代替。这就是拟牛顿法的基本想法。
假设在第次迭代时,找到的点是,让在点附近进行二阶泰勒展开:
其中是在点的梯度,是的海塞矩阵(类似于二阶导数)在点的值:
公式(2)两边对求导:
将点代入公式(4)得到:
所以
记,,则
或者说
公式(7)或公式(8)叫做拟牛顿条件。
如果是正定的(也是正定的),那么可以保证牛顿法搜索方向是下降方向。对公式(2)只展开到1阶:
而的更新公式为:
将(10)中的代入(9)得到:
因为正定,所以。当为一个充分小的正数时,总有,也就是说是下降方向。
综上所述,拟牛顿法使用近似(DFP算法)或者使用(BFGS算法)近似,需要满足满足两个条件:
- 或正定
- 满足拟牛顿条件,即或
或通过迭代的方式进行更新,即或。
DFP算法
DFP算法使用近似,需要满足拟牛顿条件,通过迭代更新。
使
即
公式(13)两边乘上
令
则公式(14)为
满足拟牛顿条件,也不难找出满足条件(15)和(16)的和:
于是得到矩阵的迭代公式:
算法
输入:目标函数,梯度,精度要求;
输出:的极小点。
- 选定初始点,取为正定对称矩阵,置
- 计算。若,则停止计算,得近似解;否则转(3)
- 置
- 一维搜索,求使得
- 置
- 计算,若,则停止计算,得近似解;否则按公式(20)算出
- 置,转(3)
BFGS算法
DFP算法使用近似,需要满足拟牛顿条件,通过迭代更新。
使
即
公式(22)两边乘上
令
则公式(23)为
满足拟牛顿条件,也不难找出满足条件(24)和(25)的和:
于是得到矩阵的迭代公式:
算法
输入:目标函数,梯度,精度要求;
输出:的极小点。
- 选定初始点,取为正定对称矩阵,置
- 计算。若,则停止计算,得近似解;否则转(3)
- 置
- 一维搜索,求使得
- 置
- 计算,若,则停止计算,得近似解;否则按公式(29)算出
- 置,转(3)
网友评论