共轭梯度法的推导与完整算法

共轭梯度法是解决对称正定线性方程组的有效迭代方法,适用于二次规划问题。通过找到一组两两共轭的向量,逐步求解各方向上的极小值,最多n次迭代即可找到最优解。算法包含初始化、学习率计算、向量更新等步骤,常用于优化问题。
摘要由CSDN通过智能技术生成

共轭梯度法

学习自知乎:https://www.zhihu.com/question/27157047 and wikipedia and 非线性规划课

简介

在数值线性代数中,共轭梯度法是一种求解对称正定线性方程组Ax=b的迭代方法。

事实上,求解Ax=b等价于求解: m i n ∣ ∣ A x − b ∣ ∣ 2 2 min||Ax-b||_2^2 minAxb22 ,将其展开后可以得到: m i n x T A T A x − b T A x + b T b min \quad x^TA^TAx-b^TAx+b^Tb minxTATAxbTAx+bTb ,也就是等价于求解 m i n 1 2 x T A T A x − b T A x min\quad \frac{1}{2}x^TA^TAx-b^TAx min21xTATAxbTAx 。于是解方程问题就转化为了求解二次规划问题(QP)。

共轭梯度法是介于梯度下降法与牛顿法之间的一个方法,是一个一阶方法。它克服了梯度下降法收敛慢的缺点,又避免了存储和计算牛顿法所需要的二阶导数信息。

在n维的优化问题中,共轭梯度法最多n次迭代就能找到最优解(是找到,不是接近),但是只针对二次规划问题。

共轭梯度法的思想就是找到n个两两共轭的共轭方向,每次沿着一个方向优化得到该方向上的极小值,后面再沿其它方向求极小值的时候,不会影响前面已经得到的沿哪些方向上的极小值,所以理论上对n个方向都求出极小值就得到了n维问题的极小值。

算法推导过程

目标函数的标准形式:

min ⁡ x ∈ R n 1 2 x T Q x − b T x \min_{x\in R^n}\frac{1}{2}x^TQx-b^Tx minxRn21xTQxbTx

Q-conjugate: 对于正定矩阵Q,如果非零向量x,y是Q-conjugate的,那么

x T Q y = 0 x^TQy=0 xTQy=0

我们需要找到n个相互Q-conjugate的基向量 d 1 , d 2 , … , d n {d_1,d_2,…,d_n} d1,d2,,dn,它们相互共轭且线性无关

因此空间中任意向量x都可以用这组基向量表示:

x = ∑ i = 1 n a i d i x=\sum_{i=1}^na_id_i x=i=1naidi

因此我们的目标函数可以改写为:
min ⁡ a 1 , . . . , a n ∈ R n 1 2 ( ∑ i = 1 n a i d i ) T Q ( ∑ j = 1 n a j d j ) − b T ( ∑ i = 1 n a i d i ) = min ⁡ a 1 , . . . , a n ∈ R n 1 2 ∑ i = 1 n ∑ j = 1 n a i a j d i T Q d j − ∑ i = 1 n a i b T d i \min_{a_1,...,a_n\in R^n}\frac{1}{2}(\sum_{i=1}^na_id_i)^TQ(\sum_{j=1}^na_jd_j)-b^T(\sum_{i=1}^na_id_i) \\ =\min_{a_1,...,a_n\in R^n}\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^na_ia_jd_i^TQd_j-\sum_{i=1}^na_ib^Td_i a1,...,anRnmin21(i=1naidi)TQ(j=1najd

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值