4.牛顿法和拟牛顿算法

来源:互联网 发布:hive sql与sql对比 编辑:程序博客网 时间:2024/05/18 16:38

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)的极值为极小值。

牛顿法利用极小值点的必要条件:

      (B.4)

每次迭代中从点 开始,求目标函数的极小值,作为第k+1次迭代值具体地,假设满足:

(B.5)

由(B.2)有:

既有

(B.6)


其中这样,由(B.6)可知

 (B.7)

所以, (B.8)
或者 (B.9)

其中,(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.15)

因为是正定的。故有.是一个充分小的正数时,总有也就是说是下降方向。


拟牛顿法将作为的近似,要求矩阵满足同样的条件。首先,每次迭代矩阵是正定的,同时由于满足(B.13),所以我们可以假定也满足这个式子,既有:

按照拟牛顿条件,再每次迭代中可以选择更新矩阵:


这种选择具有一定的灵活性,因此有多种具体的实现方法。主要包括DFPBFGS算法等




原创粉丝点击