最优化方法:共轭梯度法(Conjugate Gradient)

http://blog.csdn.net/pipisorry/article/details/39891197

共轭梯度法(Conjugate Gradient)

共轭梯度法(英语:Conjugate gradient method),是求解数学特定线性方程组的数值解的方法,其中那些矩阵为对称和正定。共轭梯度法是一个迭代方法,它适用于稀疏矩阵线性方程组,因为这些系统对于像Cholesky分解这样的直接方法太大了。这种方程组在数值求解偏微分方程时很常见。共轭梯度法也可以用于求解无约束的最优化问题。

在数值线性代数中,共轭梯度法是一种求解对称正定线性方程组\boldsymbol{Ax}=\boldsymbol{b}的迭代方法。共轭梯度法可以从不同的角度推导而得,包括作为求解最优化问题的共轭方向法的特例,以及作为求解特征值问题的Arnoldi/Lanczos迭代的变种。

双共轭梯度法提供了一种处理非对称矩阵情况的推广。

基础

共轭向量

显然,共轭向量是线性无关向量.

初等变分原理

最速下降算法的有关性质

范数的‖・‖A的定义为‖x‖A=(Ax,x)。

上面定理表明,最速下降法从任何一向量x(0)出发,迭代产生的数列总是收敛到原方程Ax=b的解.而收敛速度的快慢则由A的特征值分布所决定.当A的最小特征值和最大特征值相差很大时λ1<<λn,最速下降法收敛速度很慢,很少用于实际计算.

分析最速下降法收敛较慢的原因,可以发现,负梯度方向从局部来看是二次函数的最快下降方向,但是从整体来看,却并非最好.对于对称正定矩阵A,共轭梯度法考虑选择关于A共轭的向量p1,p2,...代替最速(0)下降法中的负梯度方向,使迭代法对任意给定的初始点x具有有限步收敛性,即经有限步就可以(在理论上)得到问题的准确解.

皮皮blog


共轭梯度算法

计算共轭梯度算法同时构造出关于A共轭的向量pi

求解Ax = b的算法,其中A是实对称正定矩阵。

x 0 := 0
k := 0
r 0 := b-Ax
repeat until r k is "sufficiently small":
k := k + 1
if k = 1
p 1 := r 0
else
p k := r k − 1 + r k − 1 ⊤ r k − 1 r k − 2 ⊤ r k − 2   p k − 1 {\displaystyle p_{k}:=r_{k-1}+{\frac {r_{k-1}^{\top }r_{k-1}}{r_{k-2}^{\top }r_{k-2}}}~p_{k-1}} {\displaystyle p_{k}:=r_{k-1}+{\frac {r_{k-1}^{\top }r_{k-1}}{r_{k-2}^{\top }r_{k-2}}}~p_{k-1}}
end if
α k := r k − 1 ⊤ r k − 1 p k ⊤ A p k {\displaystyle \alpha _{k}:={\frac {r_{k-1}^{\top }r_{k-1}}{p_{k}^{\top }Ap_{k}}}} {\displaystyle \alpha _{k}:={\frac {r_{k-1}^{\top }r_{k-1}}{p_{k}^{\top }Ap_{k}}}}
x k := x k-1 + α k p k
r k := r k-1 - α k A p k
end repeat
结果为 x k
或者


共轭梯度法评价

  共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点, 共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。 在各种优化算法中,共轭梯度法是非常重要的一种。
其优点是所需存储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。
  下图为共轭梯度法和梯度下降法搜索最优解的路径对比示意图:
 
注:绿色为梯度下降法,红色代表共轭梯度法


from:http://blog.csdn.net/pipisorry/article/details/39891197

ref: [wiki 共轭梯度法] [wiki 共轭梯度法的推导]

[数值分析 钟尔杰]


转载于:https://my.oschina.net/u/3579120/blog/1508363

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值