共轭梯度法,最速下降法和牛顿法

共轭梯度法,最速下降法和牛顿法

(2013-01-24 09:06:26)
标签:

梯度

it

分类:Communication

共轭梯度法

 

数学上,共轭梯度法是求解特定线性系统数值解的方法,其中那些矩阵为对称正定。共轭梯度法是一个迭代方法,所以它适用于稀疏矩阵系统,因为这些系统对于象乔莱斯基分解这样的直接方法太大了。这种系统在数值求解偏微分方程时相当常见。

共轭梯度法也可以用于求解无约束的最优化问题。

双共轭梯度法提供了一种处理非对称矩阵情况的推广。

目录

 [隐藏
  • 1方法的表述
    • 1.1最后算法
  • 2外部连接
  • 3参考

方法的表述

设我们要求解下列线性系统

其中n-×-n矩阵A是对称的(也即,AT= A),正定的(也即,xTAx> 0对于所有非0向量x属于Rn),并且是实系数的。

将系统的唯一解记作x*

最后算法

经过一些简化,可以得到下列求解Ax= b的算法,其中A是实对称正定矩阵。

x0 :=0
k :=0
r0 :=b
repeat untilrk is "sufficientlysmall":
k :=k + 1
if k = 1
p1 :=r0
else
endif
xk :=xk-1kpk
rk :=rk-1k Apk
endrepeat
结果为xk

外部连接

  • Méthode du gradient conjugé(共轭梯度法,法语)作者N.Soualem.
  • Méthode du gradient conjugépréconditionné(预处理共轭梯度法,法语)作者N.Soualem.
  • 共轭梯度法通俗介绍作者Jonathan RichardShewchuk.

参考

共轭梯度法最初出现于

  • Magnus R. Hestenesand Eduard Stiefel(1952),Methods of conjugate gradients for solvinglinear systems, J. Research Nat. Bur. Standards 49,409–436.

下列教科书中可以找到该方法的描述

  • KendellA. Atkinson(1988),An introduction to numerical analysis(2nded.),Section 8.9, John Wiley and Sons. ISBN 0-471-50023-2.
  • Gene H.Golub and Charles F. Van Loan, Matrix computations(3rded.),Chapter 10, Johns Hopkins University Press. ISBN 0-8018-5414-8.
来自“ http://zh.wikipedia.org/w/index.php?title=共轭梯度法&oldid=16968241

 

 

 

共轭梯度法  

 

共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。
  共轭梯度法最早是又Hestenes和Stiefle(1952)提出来的,用于解正定系数矩阵的线性方程组,在这个基础上,Fletcher和Reeves(1964)首先提出了解非线性最优化问题的共轭梯度法。由于共轭梯度法不需要矩阵存储,且有较快的收敛速度和二次终止性等优点,现在共轭梯度法已经广泛地应用与实际问题中。
  共轭梯度法是一个典型的共轭方向法,它的每一个搜索方向是互相共轭的,而这些搜索方向d仅仅是负梯度方向与上一次
迭代的搜索方向的组合,因此,存储量少,计算方便

 

 

ConjugateGradient

共轭梯度法的推导

 
数值线性代数 中, 共轭梯度法 是一种求解 对称 正定 线性方程组

迭代方法。共轭梯度法可以从不同的角度推导而得,包括作为求解最优化问题的共轭方向法的特例,以及作为求解特征值问题的Arnoldi/Lanczos迭代的变种。

本条目记述这些推导方法中的重要步骤。

目录

 
  • 1从共轭方向法推导
  • 2从 Arnoldi/Lanczos 迭代推导
    • 2.1 一般 Arnoldi方法
    • 2.2 直接 Lanzcos方法
    • 2.3从正交性和共轭性导出共轭梯度法
  • 3参考文献

从共轭方向法推导

从Arnoldi/Lanczos 迭代推导

共轭梯度法可以看作Arnoldi/Lanczos 迭代应用于求解线性方程组时的一个变种。

一般Arnoldi 方法

Arnoldi 迭代从一个向量 开始,通过定义 ,其中

逐步建立 Krylov子空间

的一组标准正交基

换言之,对于 ,由将 相对于 进行 Gram-Schmidt正交化然后归一化得到。

写成矩阵形式,迭代过程可以表示为

其中

当应用于求解线性方程组时,Arnoldi迭代对应于初始解 的残量 开始迭代,在每一步迭代之后计算 和新的近似解 .

直接Lanzcos 方法

在余下的讨论中,我们假定 是对称正定矩阵。由于 的对称性, 上Hessenberg 矩阵 变成对阵三对角矩阵。于是它可以被更明确地表示为

这使得迭代中的 有一个简短的三项递推式。Arnoldi 迭代从而简化为 Lanczos 迭代。

由于 对称正定,同样也对称正定。因此,可以通过不选主元LU分解分解为

其中 和 有简单的递推式:

改写 为

其中

此时需要观察到

实际上,和 同样有简短的递推式:

通过这个形式,我们得到 的一个简单的递推式:

以上的递推关系立即导出比共轭梯度法稍微更复杂的直接Lanczos 方法。

从正交性和共轭性导出共轭梯度法

如果我们允许缩放 并通过常数因子补偿缩放的系数,我们可能可以的到以下形式的更简单的递推式:

作为简化的前提,我们现在推导 的正交性和 的共轭性,即对于 ,

各个残量之间满足正交性的原因是 实际上可由 乘上一个系数而得。这是因为对于 ,,对于 ,

要得到 的共轭性,只需证明 是对角矩阵:

是对称的下三角矩阵,因而必然是对角矩阵。

现在我们可以单纯由的正交性和 的共轭性推导相对于缩放后的 的常数因子 和 。

由于 的正交性,必然有 。于是

类似地,由于 的共轭性,必然有 。于是

推导至此完成。

参考文献

  1. Hestenes, M. R.;Stiefel, E.. Methods of conjugate gradients for solving linearsystems (PDF). Journal ofResearch of the National Bureau of Standards. 12 1952, 49(6).
  2. Saad, Y.. Chapter 6:Krylov Subspace Methods, Part I. Iterative methods for sparselinear systems. 2nd. SIAM. 2003. ISBN 978-0898715347.

 

 

 

 

 

 

梯度下降法

 
 

梯度下降法是一个一阶最优化算法,通常也称为最速下降法

目录

 
  • 1描述
    • 1.1例子
    • 1.2缺点
  • 2参阅
  • 3参考文献

描述

有关梯度下降法的描述

梯度下降法,基于这样的观察:如果实值函数 在点 处可微且有定义,那么函数 在 点沿着梯度相反的方向 下降最快。

因而,如果

对于 为一个够小数值时成立,那么 。

考虑到这一点,我们可以从函数 的局部极小值的初始估计 出发,并考虑如下序列 使得

因此可得到

如果顺利的话序列 收敛到期望的极值。注意每次迭代步长 可以改变。

右侧的图片示例了这一过程,这里假设 定义在平面上,并且函数图像是一个形。蓝色的曲线是等高线(水平集),即函数 为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数 值最小的点。

例子

梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函数

其最小值在 处,数值为。但是此函数具有狭窄弯曲的山谷,最小值 就在这些山谷之中,并且谷底很平。优化过程是之字形的向极小值点靠近,速度非常缓慢。

下面这个例子也鲜明的示例了"之字"的下降,这个例子用梯度下降法求 的极小值。

 

缺点

由上面的两个例子,梯度下降法的缺点是[1]:

  • 靠近极小值时速度减慢。
  • 直线搜索可能会产生一些问题。
  • 可能会'之字型'地下降。

参阅

  • 共轭梯度法
  • 随机梯度下降
  • 牛顿法
  • 最优化
  • 线搜索

参考文献

  • MordecaiAvriel (2003). Nonlinear Programming: Analysis and Methods.Dover Publishing. ISBN 0-486-43227-0.
  • Jan A.Snyman (2005). Practical Mathematical Optimization: AnIntroduction to Basic Optimization Theory and Classical and NewGradient-Based Algorithms. Springer Publishing. ISBN 0-387-24348-8
来自“ http://zh.wikipedia.org/w/index.php?title=梯度下降法&oldid=23521267

 

 

 

 

 

 

 

 

 

 

牛顿法

牛顿法Newton'smethod)又称为牛顿-拉弗森方法Newton-Raphsonmethod),它是一种在实数域和复数域上近似求解方程的方法。方法使用函数的泰勒级数的前面几项来寻找方程的根。

目录

 [隐藏
  • 1起源
  • 2方法说明
  • 3其它例子
    • 3.1第一个例子
    • 3.2第二个例子

起源

牛顿法最初由艾萨克·牛顿流数法Methodof Fluxions1671年完成,在牛顿死后的1736年公开发表)。约瑟夫·拉弗森也曾于1690年AnalysisAequationum中提出此方法。

方法说明

蓝线表示方程f而红线表示切线.可以看出xn+1xn更靠近f所要求的根x.

首先,选择一个接近函数零点的,计算相应的和切线斜率(这里表示函数的导数)。然后我们计算穿过点并且斜率为的直线和轴的交点的坐标,也就是求如下方程的解:

我们将新求得的点的坐标命名为,通常会比更接近方程的解。因此我们现在可以利用开始下一轮迭代。迭代公式可化简为如下所示:

已经证明,如果是连续的,并且待求的零点是孤立的,那么在零点周围存在一个区域,只要初始值位于这个邻近区域内,那么牛顿法必定收敛。并且,如果不为0,那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。

其它例子

第一个例子

求方程f(x)= cos(x) − x3的根。两边求导,得f '(x)= −sin(x) − 3x2。由于-1≤ cos(x) ≤ 1(对于所有x),则-1 ≤ x3 ≤ 1,即-1 ≤ x ≤1,可知方程的根位于0和1之间。我们从x0 =0.5开始。

第二个例子

牛顿法亦可发挥与泰勒展开式,对于函式展开的功能。


求a的m次方根。

- a= 0

设,

而a的m次方根,亦是x的解,

以牛顿法来迭代:


(或 )

来自“ http://zh.wikipedia.org/w/index.php?title=牛顿法&oldid=23338540

你可能感兴趣的:(共轭梯度法,最速下降法和牛顿法)