牛顿法、拟牛顿法

牛顿法:

根据二阶泰勒展开,用一阶和二阶倒数确定参数迭代步长和方向

设初始向量,它在处的泰勒展开如下:

,当时

注:矩阵求导公式:

 

对上式相对于求导:

因此可以得到处的迭代方程:

对应这种形式,步长,方向

拟牛顿法:

从上述公式可以知道,牛顿法的每一次迭代都需要计算二阶海塞矩阵,当特征和数据非常多时,时间和空间开销都会比较大。

拟牛顿法只是一种方法的统称,即用一个近似矩阵B去替代逆海塞矩阵,然后在每一轮迭代中更新B

怎样找到逆海塞矩阵的替代矩阵?

对上一节中的①式做一下变换:

令,,上式变成:

再令,,得到:

也就是说,第k步迭代的海塞矩阵可以通过第k步的迭代步长和一阶导数差值拟合。

BFGS(Broyden–Fletcher–Goldfarb–Shanno):
https://blog.csdn.net/itplus/article/details/21897443

牛顿法、拟牛顿法_第1张图片
BFGS算法

用表示的近似,表示的近似:

那么的迭代公式为

设②,再根据①式得到的:

交换和的位置:

令:,以及

解出:

再带入到②中:

L-BFGS:

BFGS中B矩阵的每次更新都需要nXn的空间开销,L-BFGS不会直接存储B,而是①只存取需要用到的n个向量,并且②只保存了最近的m次迭代的结果,所以L-BFGS算法又做了近似。

你可能感兴趣的:(牛顿法、拟牛顿法)