版权声明:原创作品,欢迎转载,但转载请以超链接形式注明文章来源(planckscale.info)、作者信息和本声明,否则将追究法律责任。
打算再将这个主页做一做,先更一波旧笔记。还是那句话,这不是教程,不适合初学。本文中记号大致与前一篇Notes on Conjugate Gradient Method一致。
当对称正定时,共轭梯度法是一个很好的选择。
此时的极小化问题其实是一个与间的距离极小化问题
(1)
以为度量,在一个正交标架下,上述距离极小化问题成为一个简单的欧式距离极小化问题,只需在依次各正交方向上极小化距离即可。
这需要解决以下问题:
\begin{enumerate}
\item 一个搜索方向上如何极小化。
\item 如何高效的构造出与之前搜索过的子空间正交的新搜索方向;
\end{enumerate}
(2)
其中表示时已经搜索过的子空间。
本式换成同样成立。所以,只需搜索到正交于搜索方向时为止即可达到极小化距离的目的。
第二个问题。我们令,其中为初始残差,于是有.这样式2就意味着
(3)
这带来一个极大的便利,即算法可以通过快速构造出与子空间正交的,为此只需要将中方向的分量(内积意义上)扣除即可。
这样我们可以得到共轭梯度法的算法流程:每次搜索都搜索到残差方向与搜索方向正交为止,新的搜索方向由当前残差用内积与做正交化得到,实际上只需要扣除方向的分量即可。
算法描述为
(4)
其中由和的正交性给出
(5)
而则这样计算出
(6)
共轭梯度法在加入precondition时会遇到一个问题,即如何保证仍是对称矩阵。
对于对称正定矩阵,存在一个分解.容易证明和具有相同的本征值,因而具有同样的precondition效果。于是可以将问题转化为
(7)
再用CG求解。的几何意义是将问题转入一个新的坐标系下求解,这个坐标系下二次型的超椭球被变换的更接近超球了一些。这样要求计算出,但实际上我们可以不用计算而直接用完成计算。为此只需要将原来的迭代公式做坐标变换,写出新坐标系下的迭代公式即可。要注意迭代公式在该变换下并不完全保持形式一致,具体的对应关系如下所示
有稍许微分几何或相对论背景的同学不难看出这其实是一组在坐标系变换下具有不同变换性质的量之变换式,包含了协/逆变矢量,标量的变换性质,以及如何将当前坐标系下定义,非形式不变的量提升为任意坐标系下均保持形式不变的量的操作.
替换后可将全部消除掉,剩下仅用表达的迭代公式
(8)