最速下降法的缺陷
上一节中已经提到了最速下降法容易走出“之”字形的路线,这些路线方向虽然都是梯度,但非常类似。如果每次的路线都是彼此正交的,那么即使没有选择局部变化率最大的梯度,也能够很快收敛到正解,如下图。
共轭方向法的intuition
这就引出了共轭方向法 (Conjugate Directions)。
一种理想但无法实现的共轭梯度法
我们选择一组正交的搜索方向,记为,每次迭代时,仅在一个方向上迭代,即
我们希望一次迭代完后,以后的迭代再也不需要在方向上修正了,因此,我们希望,继续计算,得到
然而,这种算法是不可能的,因为是未知量(假如我们知道了,那正解也就得到了),无法因此求出。
修正
与之前选择一组正交基相比,这里我们选择一组基于矩阵A的A正交基,记为,即。下图可以直观地看到A正交基的样子,虽然它们不正交,但如果A变换为单位阵,则它们就可以正交了(见下右图)。
A正交基
类似的,我们求解,继续计算,得到
注意到,如果把替换为,那么的表达式将和最速下降法是一致的,这表明共轭方向法也是在的方向上找到了一个最小值。这是符合我们预期的。
共轭方向法的收敛性证明比较简单,因为一共个方向,每次都消除了一个方向上的误差,经过轮迭代,就一定可以得到正解。
类似最速下降法,通过对残差的迭代,可以加速迭代过程,即
寻找一组A正交基
假设我们已经有了一组线性无关的向量,记为,那么使用施密特正交化法 (Gram-Schmidt Conjugation),就能得到一组正交基作为下降方向。过程如下,首先,然后对于,有
由于和任一均正交,因此
缺陷
虽然共轭梯度法只需要步就能保证收敛,但单次迭代有时会非常耗时(主要是使用施密特正交化法),因此它并不太使用。一个例子是,假如我们取坐标轴作为一组正交基执行共轭方向法,那么每次消去一个方向上的误差和高斯消元法是完全一致的。
参考文献
- 《An Introduction to the Conjugate Gradient Method Without the Agonizing Pain》