牛顿法,拟牛顿法,共轭梯度法各自的优缺点是什么?
牛顿法需要函数的一阶、二阶导数信息,也就是说涉及到Hesse矩阵,包含矩阵求逆运算,虽然收敛速度快但是运算量大。拟牛顿法采用了一定的方法来构造与Hesse矩阵相似的正定矩阵,而这个构造方法计算量比牛顿法要小;共轭梯度法的基本思想是把共轭性与最速下降方法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜素,求出目标函数的极小点。根据共轭方向基本性质,这种方法运算量不太大收敛速度也不慢。
您好!想请教一下Matlab 拟牛顿求根法
拟牛顿法是求解线性(非线性)方程(组)的一种数值分析方法。拟牛顿法的求解方法与割线法相类似,其目的是减少由于计算导数而带来的大量的计算量,构造的秩为1的迭代法。其迭代格式为
实现主要代码
n = 1;
while (norm(x - x0) tol) (n 1000)
x0 = x;
x = x0 - A funm(x0);
p = x - x0;
q = funm(x) - funm(x0);
A = A + (q - A*p)*p'^rm(p)^2;
n = n + 1;
end
牛顿法、拟牛顿法
根据二阶泰勒展开,用一阶和二阶倒数确定参数迭代步长和方向
设初始向量 ,它在 处的泰勒展开如下:
,当 时
注:矩阵求导公式:
对上式相对于 求导:
①
因此可以得到 处的迭代方程:
对应 这种形式,步长 ,方向
从上述公式可以知道,牛顿法的每一次迭代都需要计算二阶海塞矩阵,当特征和数据非常多时,时间和空间开销都会比较大。
拟牛顿法只是一种方法的统称,即用一个近似矩阵B去替代逆海塞矩阵 ,然后在每一轮迭代中更新B
怎样找到逆海塞矩阵的替代矩阵?
对上一节中的①式做一下变换:
令 , ,上式变成:
再令 , ,得到:
①
也就是说,第k步迭代的海塞矩阵可以通过第k步的迭代步长和一阶导数差值拟合。
BFGS( Broyden–Fletcher–Goldfarb–Shanno ):
用 表示 的近似, 表示 的近似:
那么 的迭代公式为
设 ②,再根据①式得到的 :
交换 和 的位置:
令: ,以及
解出:
再带入到②中:
L-BFGS:
BFGS中B矩阵的每次更新都需要nXn的空间开销,L-BFGS不会直接存储B,而是①只存取需要用到的n个向量,并且②只保存了最近的m次迭代的结果,所以L-BFGS算法又做了近似。
牛顿法与拟牛顿法的区别与联系
牛顿需要函数阶、二阶导数信息说涉及Hesse矩阵包含矩阵求逆运算虽收敛速度快运算量拟牛顿采用定构造与Hesse矩阵相似定矩阵构造计算量比牛顿要;共轭梯度基本思想共轭性与速降相结合利用已知点处梯度构造组共轭向并沿组向进行搜素求目标函数极点根据共轭向基本性质种运算量太收敛速度慢
第十一章 拟牛顿法
牛顿法是一种具有较高实用性的优化问题求解方法。牛顿法如果收敛,则收敛阶数至 少是2。但是,需要指出的是,当目标函数为一般性的非线性函数时,牛顿法不能保证能 够从任意起始点旷的收敛到函数的极小点。总的来说,如果初始点 x(O) 不足够接近极小点,那么牛顿法可能不具有下降特性。
拟牛顿法的基础是获取近似矩阵应该满足的条件,假定目标函数 的黑塞矩阵 是常数矩阵,与 取值无关,即目标函数是二次型函数,则有:
即
记正定实矩阵 是近似矩阵的出实矩阵,在给定的 下,矩阵 应该满足:
因此,近似矩阵 满足:
拟牛顿法的SR1方法
有别于DFP和BFG方法,SR1是一种秩-1更新。它的公式是:B_{k+1}=(y_k-B_ks_k)(y_k-B_ks_k)^T/((y_k-B_ks_k)^Ts_k)。SR1公式不要求矩阵B_k保持正定性,从而更逼近真实的Hesse矩阵,所以适用于信赖域方法(Trust Region Methods)。
关于拟牛顿法和拟牛顿法在实际中的应用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。