1. 我们用一个图来解释扭断算法的基本实现:
由图中可知:
更一般地:
这就是牛顿法的一次迭代。现在这个算法可以得到一个值,使得 ;
2. 上面论述的是牛顿法的几何意义,下面我们从代数的角度来论述下牛顿法:
考虑无约束最优化问题:
(B,1)
其中为目标函数的极小值
假设f(x)具有二阶连续导数,若第k次迭代值为,这可以将f(x)在
附近进行二次泰勒展开。
(B.2)
这里, 是f(x)的梯度向量在
的值,H(
)是f(x)的Hessian矩阵:
(B.3)
在点 的值,函数f(x)有极值的必要条件是在极值点处有一阶导数为0,即梯度向量为0,特别是当H(
)是正定矩阵时,函数f(x)的极值为极小值。
在点 的值,函数f(x)有极值的必要条件是在极值点处有一阶导数为0,即梯度向量为0,特别是当H()是正定矩阵时,函数f(x)的极值为极小值。
牛顿法利用极小值点的必要条件:
每次迭代中从点 开始,求目标函数的极小值,作为第k+1次迭代值
,具体地,假设
满足:
(B.5)
由(B.2)有:
既有
(B.6)
其中,这样,由(B.6)可知
(B.7)
其中,(B.10)
用式(B.8)作为迭代公式的算法就是牛顿法。
拟牛顿法的思路
在牛顿法的迭代中,需要计算Hessian矩阵的逆矩阵,这一计算比较复杂,考虑用一个n阶矩阵
来近似替代
,这既是拟牛顿的基本想法。
根据(B.6)我们知道:
所以:
则:
(B.11)
记,
,则:
(B.12)
(B.13)
(B.12)或(B.13)称为拟牛顿条件。
如果 是正定的(
),那么可以保证牛顿法搜索方向
是下降方向,这是因为搜索方向是
,其中 ,由式(B.8)有:
(B.14)
所以f(x)在处的泰勒展开式(B.2)可以近似写成:
因为是正定的。故有
.当是一个充分小的正数时,总有
也就是说
是下降方向。
拟牛顿法将作为
的近似,要求矩阵
满足同样的条件。首先,每次迭代矩阵
是正定的,同时由于
满足(B.13)即
,所以我们可以假定
也满足这个式子,既有:
按照拟牛顿条件,再每次迭代中可以选择更新矩阵:
这种选择具有一定的灵活性,因此有多种具体的实现方法。主要包括DFP,BFGS算法等