牛顿法和拟牛顿法
牛顿法(Newton method)和拟牛顿法(quasi Newton method)是求解无约束最优化问题的常用方法,收敛速度快。牛顿法是迭代算法,每一步需要求解海赛矩阵的逆矩阵,计算比较复杂。拟牛顿法通过正定矩阵近似海赛矩阵的逆矩阵或海赛矩阵,简化了这一计算过程。
牛顿法
我们假设点x∗为函数f(x)的根,那么有f(x∗)=0。现在我们把函数f(x)在点xk处一阶泰勒展开有:
假设点xk+1为该方程的根,则有:
可以得到
这样我们就得到了一个递归方程,我们可以通过迭代的方式不断的让x趋近于x∗从而求得方程f(x)的解。
最优化问题
对于最优化问题,其极值点处一阶导数为0。因此我们可以在一阶导数处利用牛顿法通过迭代的方式来求得最优解,即相当于求一阶导数对应函数的根。
首先,我们对函数在x0点处进行二阶泰勒展开
对x求导可得
由于在极值点处 ,于是
从而可以得出下一个x的位置
其迭代形式为
对于多维函数,二阶导数就变成了一个海森矩阵,二阶泰勒展开公式如下:
图中的 便是海森矩阵 。
迭代公式就变成了 。
我们可以看到,当 Hk为正定( Hk-1也正定 )的时候,可以保证牛顿法的搜索方向是向下搜索的。
拟牛顿法
当特征特别多的时候,求海森矩阵的逆矩阵,运算量是非常大且慢,考虑用一个n阶矩阵来替代,这就是拟牛顿法的基本思路。
通过以上可以得到
因此,对于我们所选择的替代矩阵Gk,需要满足两个条件:
- 拟牛顿条件,即
- 要保证Gk为正定矩阵,这是因为只有正定才能保证搜索方向是向下搜索的。
由于每次迭代都需要更新矩阵Gk ,下面介绍一些方法。
DFP
,这里的DK相当于前边提到的GK ,这个迭代公式的关键是每一步的校正矩阵ΔDK的构造。我们采用待定法,先将ΔDK待定为下面的形式:
α和β为待定系数,u和v为待定向量。uuT和vvT均为对称矩阵,因此可以保证ΔDK也是对称矩阵。
将待定公式代入迭代公式,可得:Dk+1·yk = sk
上述变化是因为 是两个数,不妨设为
可得
将其带入sk的表达式,可得
不妨直接取
代回上面α和β的表达式,得:
将上两式代回ΔDK的表达式,得
这样就可以使用迭代公式来进行拟牛顿法的计算了。
BFGS
可以考虑用Gk逼近海森矩阵的逆矩阵H-1,也可以考虑用Bk逼近海森矩阵H。
BFGS算法的迭代公式:
由于拟牛顿条件可以写成 ,同上述DFP的推导过程一样,只不过是
最终可得
Broyden类算法
我们可以从BFGS算法矩阵Bk的迭代公式得到BFGS算法关于Gk的迭代公式。事实上,若记 那么两次应用ShermanMorrisn公式可得
称为BFGS算法关于Gk的迭代公式。
由DFP和BFGS算法得到的迭代公式GK,满足拟牛顿条件式,所以它们的线性组合 也满足拟牛顿条件式,而且是正定的。其中0 ≤ a ≤ 1。
这样就得到了一类拟牛顿法,称为Broyden类算法。
注:Sherman-Morrison公式:假设A是n阶可逆矩阵,u,v是n维向量,且A+uvT也是可逆矩阵,则