梯度下降和共轭梯度下降


11

对于一个项目,我必须实现这两种方法并比较它们在不同功能上的执行方式。

看来共轭梯度法是要解决的线性方程组

Ax=b

其中是对称,正定和实数的n×n矩阵。A

另一方面,当我阅读有关梯度下降的文章时,我看到了Rosenbrock函数的示例,即

f(x1,x2)=(1x1)2+100(x2x12)2

如我所见,我无法使用共轭梯度法解决此问题。还是我想念什么?

Answers:


14

梯度下降法和共轭梯度法都是最小化非线性函数(即像Rosenbrock函数这样的函数)的算法

f(x1,x2)=(1x1)2+100(x2x12)2

或多元二次函数(在这种情况下为对称二次项)

f(x)=12xTATAxbTAx.

两种算法都是基于迭代和搜索方向的。在本文的其余部分,和将是长度为向量;和是标量,上标表示迭代索引。可以使用梯度下降和共轭梯度法来找到可求解的值d Ñ ˚F X α X *xdnf(x)αx

minf(x)

两种方法都从初始猜测,然后使用以下形式的函数计算下一个迭代x0

xi+1=xi+αidi.

换句话说,通过从当前位置并沿搜索方向移动一段距离,可以找到的下一个值。在两种方法中,移动距离可以由线搜索(发现最小化在)。也可以应用其他标准。两种方法的不同之处在于它们对的选择。对于梯度方法,。对于共轭梯度法,使用Grahm-Schmidt程序正交化梯度向量。特别是,但是等于X ð α ˚F X + α ð α ð ð = - ˚F X d 0 = - ˚F X 0d 1 - ˚F X 1d 0d 1 T d 0 = 0xxidiαif(xi+αidi)αididi=f(xi)d0=f(x0)d1f(x1)减去该向量在上的投影,使得。每个随后的梯度矢量都与所有先前的梯度矢量正交,这为上面的二次函数提供了非常好的属性。d0(d1)Td0=0

上面的二次函数(及相关公式)也是使用共轭梯度法求解的讨论的地方,因为的最小值在的点处实现。f x x A x = bAx=bf(x)xAx=b


9

在这种情况下,这两种方法都可以视为函数的最小化问题: 当是对称的,则最小化时。AϕAx=b

ϕ(x)=12xTAxxTb
AϕAx=b

梯度下降是一种通过沿梯度方向进行迭代搜索最小化器的方法。共轭梯度相似,但搜索方向也必须彼此正交,即。piTApj=0i,j

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.