CG共轭梯度下降法【学习笔记、例题与代码】

资料

参考视频:
【详细推导】【本视频还证明了收敛性】https://www.bilibili.com/video/BV16a4y1t76z?from=search&seid=35153938940534319
【简单介绍】https://www.bilibili.com/video/BV1jE411u7bx?from=search&seid=35153938940534319

梯度下降法

本算法由梯度下降所引申:
对于优化问题:
CG共轭梯度下降法【学习笔记、例题与代码】_第1张图片
使用梯度下降:
CG共轭梯度下降法【学习笔记、例题与代码】_第2张图片
注意,alpha也是可以算的:求一个a使得f(x0+aP0)最小,是求函数极值的,这时候是关于a的一个函数,所以对a求导求极小值,复合函数求导法则最后就会得到求导等于0,这时候的点是驻点,就是导数值为0的点,因为二阶导数黑塞矩阵正定,所以一定为极小值点。这时候就求出了在P0方向上的最小值点。
图中()意味内积。

共轭和预备知识

共轭:A共轭的定义
CG共轭梯度下降法【学习笔记、例题与代码】_第3张图片
引申:非零向量如果共轭,则一定线性无关。
CG共轭梯度下降法【学习笔记、例题与代码】_第4张图片
此图:只要a_i彼此正交,则xi很容易计算。

问题再次转化:要求x,可以用aplha表示,而alpha只和p有关
因此,只要给出一组A共轭的向量组,就可以把x写出来。

如何获得P?

CG共轭梯度下降法【学习笔记、例题与代码】_第5张图片
怎么得到线性无关的向量组?
施密特正交法:【不断地做A-投影(指内积是A内积)】
CG共轭梯度下降法【学习笔记、例题与代码】_第6张图片

共轭梯度下降算法

CG共轭梯度下降法【学习笔记、例题与代码】_第7张图片
残量是梯度的相反数】
【图中的(AP0,R1)代表内积】
一二步和最速下降一样,对新的残量。
新的前进方向,让r1在P0上做投影,沿着共轭方向前进。

优点

  • 可以证明,比梯度下降法收敛的快
  • 可以证明能得到精确解
    CG共轭梯度下降法【学习笔记、例题与代码】_第8张图片
    图中span代表子空间,可以证明是同一个子空间,最后一个等号是科里洛夫子空间

代码实现

CG共轭梯度下降法【学习笔记、例题与代码】_第9张图片
CG共轭梯度下降法【学习笔记、例题与代码】_第10张图片
此图中,去掉min res的注释即可得到梯度下降法代码。

例题

CG共轭梯度下降法【学习笔记、例题与代码】_第11张图片
CG共轭梯度下降法【学习笔记、例题与代码】_第12张图片
第二步迭代:【经评论区老哥提醒,下图P1的正负号写反了,感谢】
CG共轭梯度下降法【学习笔记、例题与代码】_第13张图片

你可能感兴趣的:(经典机器学习模型,算法,机器学习)