转载至:http://blog.sina.com.cn/s/blog_531bb76301017ply.html
梯度下降法
描述
梯度下降法,基于这样的观察:如果实值函数 在点
处可微且有定义,那么函数
在
点沿着梯度相反的方向
下降最快。
因而,如果
对于 为一个够小数值时成立,那么
。
考虑到这一点,我们可以从函数 的局部极小值的初始估计
出发,并考虑如下序列
使得
因此可得到
如果顺利的话序列 收敛到期望的极值。注意每次迭代步长
可以改变。
右侧的图片示例了这一过程,这里假设 定义在平面上,并且函数图像是一个碗形。蓝色的曲线是等高线(水平集),即函数
为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数
值最小的点。
例子
梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函数
其最小值在 处,数值为
。但是此函数具有狭窄弯曲的山谷,最小值
就在这些山谷之中,并且谷底很平。优化过程是之字形的向极小值点靠近,速度非常缓慢。
下面这个例子也鲜明的示例了"之字"的下降,这个例子用梯度下降法求 的极小值。
缺点
由上面的两个例子,梯度下降法的缺点是 [1]:
- 靠近极小值时速度减慢。
- 直线搜索可能会产生一些问题。
- 可能会'之字型'地下降。
共轭梯度法的推导
的迭代方法。共轭梯度法可以从不同的角度推导而得,包括作为求解最优化问题的共轭方向法的特例,以及作为求解特征值问题的 Arnoldi/Lanczos 迭代的变种。
本条目记述这些推导方法中的重要步骤。
从共轭方向法推导
从 Arnoldi/Lanczos 迭代推导
共轭梯度法可以看作 Arnoldi/Lanczos 迭代应用于求解线性方程组时的一个变种。
一般 Arnoldi 方法
Arnoldi 迭代从一个向量 开始,通过定义
,其中
逐步建立 Krylov 子空间
的一组标准正交基 。
换言之,对于 ,
由将
相对于
进行 Gram-Schmidt 正交化然后归一化得到。
写成矩阵形式,迭代过程可以表示为
其中
当应用于求解线性方程组时,Arnoldi 迭代对应于初始解 的残量
开始迭代,在每一步迭代之后计算
和新的近似解
.
直接 Lanzcos 方法
在余下的讨论中,我们假定 是对称正定矩阵。由于
的对称性, 上 Hessenberg 矩阵
变成对阵三对角矩阵。于是它可以被更明确地表示为
这使得迭代中的 有一个简短的三项递推式。Arnoldi 迭代从而简化为 Lanczos 迭代。
由于 对称正定,
同样也对称正定。因此,
可以通过不选主元的 LU 分解分解为
其中 和
有简单的递推式:
改写 为
其中
此时需要观察到
实际上, 和
同样有简短的递推式:
通过这个形式,我们得到 的一个简单的递推式:
以上的递推关系立即导出比共轭梯度法稍微更复杂的直接 Lanczos 方法。
从正交性和共轭性导出共轭梯度法
如果我们允许缩放 并通过常数因子补偿缩放的系数,我们可能可以的到以下形式的更简单的递推式:
作为简化的前提,我们现在推导 的正交性和
的共轭性,即对于
,
各个残量之间满足正交性的原因是 实际上可由
乘上一个系数而得。这是因为对于
,
,对于
,
要得到 的共轭性,只需证明
是对角矩阵:
是对称的下三角矩阵,因而必然是对角矩阵。
现在我们可以单纯由 的正交性和
的共轭性推导相对于缩放后的
的常数因子
和
。
由于 的正交性,必然有
。于是
类似地,由于 的共轭性,必然有
。于是
推导至此完成。
参考文献
- Hestenes, M. R.; Stiefel, E.. Methods of conjugate gradients for solving linear systems (PDF). Journal of Research of the National Bureau of Standards. 12 1952,49 (6).
- Saad, Y.. Chapter 6: Krylov Subspace Methods, Part I. Iterative methods for sparse linear systems. 2nd. SIAM. 2003. ISBN
978-0898715347.