最速下降法最速下降法又称为梯度法,是1847 年由著名数学家Cauchy 给出的,它是解析法中最古老的一种,其他解析方法或是它的变形,或是受它的启发而得到的,因此它是最优化方法的基础。
作为一种基本的算法,他在最优化方法中占有重要地位。
其优点是工作量少,存储变量较少,初始点要求不高;缺点是收敛慢,效率不高,有时达不到最优解。
非线性规划研究的对象是非线性函数的数值最优化问题。
它的理论和方法渗透到许多方面,特别是在军事、经济、管理、生产过程自动化、工程设计和产品优化设计等方面都有着重要的应用。
而最速下降法正是n元函数的无约束非线性规划问题min f (x)的一种重要解析法,研究最速下降法原理及其算法实现对我们有着极其重要的意义。
最速下降法1.最速下降方向函数f(x)在点x处沿方向d的变化率可用方向导数来表示。
对于可微函数,方向导数等于梯度与方向的内积,即:Df(x;d) = ▽f(x)Td,因此,求函数f(x)在点x处的下降最快的方向,可归结为求解下列非线性规划:min ▽f(x)Tds.t. ||d|| ≤ 1当 d = -▽f(x) / ||▽f(x)||时等号成立。
因此,在点x处沿上式所定义的方向变化率最小,即负梯度方向为最速下降方向。
2.最速下降算法最速下降法的迭代公式是x(k+1) = x(k) + λkd(k) ,其中d(k)是从x(k)出发的搜索方向,这里取在x(k)处的最速下降方向,即d = -▽f(x(k)).λk是从x(k)出发沿方向d(k)进行一维搜索的步长,即λk满足f(x(k) + λkd(k)) = min f(x(k)+λd(k)) (λ≥0).计算步骤如下:(1)给定初点x(1) ∈ Rn,允许误差ε> 0,置k = 1。
(2)计算搜索方向d = -▽f(x(k))。
(3)若||d(k)|| ≤ε,则停止计算;否则,从x(k)出发,沿d(k)进行一维搜索,求λk,使f(x(k) + λkd(k)) = min f(x(k)+λd(k)) (λ≥0).(4)令x(k+1) = x(k) + λkd(k) ,置k = k + 1,转步骤(2)。
/yangxi/archive/2011/10/20/2219408.html梯度下降法梯度下降法是一个一阶最优化算法,通常也称为最速下降法。
描述有关梯度下降法的描述梯度下降法,基于这样的观察:如果实值函数在点处可微且有定义,那么函数在点沿着梯度相反的方向下降最快。
因而,如果对于γ > 0 为一个够小数值时成立,那么。
考虑到这一点,我们可以从函数 F 的局部极小值的初始估计出发,并考虑如下序列使得因此可得到如果顺利的话序列收敛到期望的极值。
注意每次迭代步长γ可以改变。
右侧的图片示例了这一过程,这里假设 F 定义在平面上,并且函数图像是一个碗形。
蓝色的曲线是等高线(水平集),即函数 F 为常数的集合构成的曲线。
红色的箭头指向该点梯度的反方向。
(一点处的梯度方向与通过该点的等高线垂直)。
沿着梯度下降方向,将最终到达碗底,即函数 F 值最小的点。
例子梯度下降法处理一些复杂的非线性函数会出现问题,例如Rosenbrock函数其最小值在 (x,y) = (1,1) 处,数值为f(x,y) = 0。
但是此函数具有狭窄弯曲的山谷,最小值 (x,y) = (1,1) 就在这些山谷之中,并且谷底很平。
优化过程是之字形的向极小值点靠近,速度非常缓慢。
下面这个例子也鲜明的示例了"之字"的下降,这个例子用梯度下降法求的极小值。
缺点由上面的两个例子,梯度下降法的缺点是 [1]: 靠近极小值时速度减慢。
直线搜索可能会产生一些问题。
可能会'之字型'地下降。
参阅共轭梯度法随机梯度下降法牛顿法最优化线搜索参考文献Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.Jan A. Snyman (2005). Practical Mathematical Optimization: An Introduction to Basic Optimization Theory and Classical and New Gradient-Based Algorithms. Springer Publishing. ISBN 0-387-24348-8共轭梯度法数学上,共轭梯度法是求解特定线性系统的数值解的方法,其中那些矩阵为对称和正定。
共轭梯度法是一个迭代方法,所以它适用于稀疏矩阵系统,因为这些系统对于象乔莱斯基分解这样的直接方法太大了。
这种系统在数值求解偏微分方程时相当常见。
共轭梯度法也可以用于求解无约束的最优化问题。
双共轭梯度法提供了一种处理非对称矩阵情况的推广。
方法的表述设我们要求解下列线性系统Ax = b,,其中n-×-n矩阵A是对称的(也即,AT = A),正定的(也即,xTAx > 0对于所有非0向量x属于Rn),并且是实系数的。
将系统的唯一解记作x*。
最后算法经过一些简化,可以得到下列求解Ax = b的算法,其中A是实对称正定矩阵。
x0 := 0k := 0r0 := brepeat until rk is "sufficiently small":k := k + 1if k = 1p1 := r0elseend ifxk := xk-1 + αk pkrk := rk-1 - αk A pkend repeat结果为xk外部连接Méthode du gradient conjugé(共轭梯度法,法语)作者N. Soualem.Méthode du gradient conjugé préconditionné(预处理共轭梯度法,法语)作者N. Soualem.共轭梯度法通俗介绍作者Jonathan Richard Shewchuk.参考共轭梯度法最初出现于Magnus R. Hestenes and Eduard Stiefel(1952),Methods of conjugate gradients for solving linear systems, J. Research Nat. Bur. Standards 49, 409–436.下列教科书中可以找到该方法的描述Kendell A. Atkinson(1988),An introduction to numerical analysis(2nd ed.),Section 8.9, John Wiley and Sons. ISBN 0-471-50023-2.Gene H. Golub and Charles F. Van Loan, Matrix computations(3rd ed.),Chapter 10, Johns Hopkins University Press. ISBN 0-8018-5414-8.共轭梯度法1.共轭方向无约束问题最优化方法的核心问题是选择搜索方向。
以正定二次函数为例,来观察两个方向关于矩阵A共轭的几何意义。
设有二次函数:f(x) = 1/2 (x - x*)TA(x - x*) ,其中A是n×n对称正定矩阵,x*是一个定点,函数f(x)的等值面1/2 (x - x*)TA(x - x*) = c是以x*为中心的椭球面,由于▽f(x*) = A(x - x*) = 0,A正定,因此x*是f(x)的极小点。
设x(1)是在某个等值面上的一点,该等值面在点x(1)处的法向量▽f(x(1)) = A(x(1) - x*)。
又设d(1)是这个等值面在d(1)处的一个切向量。
记作d(2) = x* - x(1)。
自然,d(1)与▽f(x(1))正交,即d(1)T▽f(x(1)) = 0,因此有d(1)TAd(2) = 0,即等值面上一点处的切向量与由这一点指向极小点的向量关于A共轭。
由此可知,极小化式所定义的二次函数,若依次沿着d(1)和d(2)进行一维搜索,则经两次迭代必达到极小点。
1.共轭梯度法共轭梯度法最初由Hesteness和Stiefel于1952年为求解线性方程组而提出的。
后来,人们把这种方法用于求解无约束最优化问题,使之成为一种重要的最优化方法。
Fletcher-Reeves共轭梯度法,简称FR法。
共轭梯度法的基本思想是把共轭性与最速下降方法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜素,求出目标函数的极小点。
根据共轭方向基本性质,这种方法具有二次终止性。
对于二次凸函数的共轭梯度法:min f(x) = 1/2 xTAx + bTx + c,其中x∈ Rn,A是对称正定矩阵,c是常数。
具体求解方法如下:首先,任意给定一个初始点x(1),计算出目标函数f(x)在这点的梯度,若||g1|| = 0,则停止计算;否则,令d(1) = -▽f(x(1)) = -g1。
沿方向d(1)搜索,得到点x(2)。
计算在x(2)处的梯度,若||g2|| ≠ 0,则利用-g2和d(1)构造第2个搜索方向d(2),在沿d(2)搜索。
一般地,若已知点x(k)和搜索方向d(k),则从x(k)出发,沿d(k)进行搜索,得到x(k+1) = x(k) + λkd(k) ,其中步长λk满足f(x(k) + λkd(k)) = min f(x(k)+λd(k))。
此时可求出λk的显示表达计算f(x)在x(k+1)处的梯度。
若||gk+1|| = 0,则停止计算;否则,用-gk+1和d(k)构造下一个搜索方向d(k+1),并使d(k+1)和d(k)关于A共轭。
按此设想,令d(k+1) = -gk+1 + βkd(k),上式两端左乘d(k)TA,并令d(k)TAd(k+1) = -d(k)TAgk+1 + βkd(k)TAd(k) = 0,由此得到βk = d(k)TAgk+1 / d(k)TAd(k)。
再从x(k+1)出发,沿方向d(k+1)搜索。
在FR法中,初始搜索方向必须取最速下降方向,这一点决不可忽视。
因子βk 可以简化为:βk = ||gk+1||2 / ||gk||2。
3.非线性共轭梯度当目标函数是高于二次的连续函数(即目标函数的梯度存在)时,其对应的解方程是非线性方程,非线性问题的目标函数可能存在局部极值,并且破坏了二次截止性,共轭梯度法需要在两个方面加以改进后,仍然可以用于实际的反演计算,但共轭梯度法不能确保收敛到全局极值。