梯度法是一种古老而又十分基本的的优化方法,它的迭代方向是由迭代点的负梯度构成的,由于负梯度方向是函数值下降最快的方向,故梯度法也称最速下降法。
梯度法的迭代算式为
S(k)=-
f(X(k))
X(k+1)=X(k)+αkS(k)
或者 X(k+1)=X(k)-αk
f(X(k))
式中,αk为最优步长因子,由一维搜索确定,即
f(X(k+1))=f(X(k)-αk
f(X(k)))=minf(X(k)-αk
f(X(k)))=minΦ(α)
根据极值的必要条件和复合函数的求导公式,有
Φ′(α)=-[
f(X(k))-αk
f(X(k)))]T
f(X(k))=0
对于较简单的问题,由上式可直接求得最优步长因子αk,进而求出一维极小点X(k+1)。由上式还可以得到如下关系式
[
f(X(k+1))]T
f(X(k))=0
由上式表明,相邻两迭代点的梯度是彼此正交的。也就是说,在梯度法的迭代过程中,相邻的搜索方向相互垂直。这意味着梯度法向极小点的逼近路径是一条曲折的锯齿形路线,而且越接近极小点,锯齿越细,前进速度越慢,如图3-16所示。
由图3-16可以看出,在梯度法的迭代过程中,离极小点较远时,一次一维搜索得到的函数下降量较大。或者说,梯度法在远离极小点时逼近速度较快,而接近极小点时逼近速度较慢。正是基于这一特点,许多收敛性较好的算法,在第一步迭代都采用负梯度方向作为搜索方向。
梯度法的迭代步骤如下:
1)给定初始点X(0)和收敛精度ε,置k=0。
2)计算梯度,并构造搜索方向
S(k)=-
f(X(k))
3)沿S(k)方向进行一维搜索,求α(k)使
minf(X(k)+αS(k))
=f(X(k)+α(k)S(k))
X(k+1)=X(k)+αkS(k)
4)计算
f(X(k+1)),若‖
f(X(k+1))‖≤ε,则终止迭代,取最优解为X∗=X(k+1),f(X∗)=f(X(k+1)),终止迭代;否则,令k=k+1,转2)继续迭代。

图3-16 梯度法的迭代路线
梯度法的收敛速度与目标函数的性质密切相关。对于一般函数来说,梯度法的收敛速度较慢,但对于等值线为同心圆或同心球的目标函数,无论从任何初始点出发,一次搜索即可达到极小点。
梯度法的计算框图如图3-17所示。

图3-17 梯度法的计算框图(https://www.xing528.com)
例3-4 用梯度法求解下列无约束优化问题,已知X(0)=(1 1)T,ε=0.1。minf(X)=x21+2x22-2x1x2-4x1。
解:1)第一次迭代。

令

则

f(X(1))=(1+4α)2+2(1-2α)2-2(1+4α)(1-2α)-4(1+4α)=Φ(α)
对于这种简单的一元函数,可以直接用解析法对α求极小值。
令
Φ′(α)=8(1+4α)-8(1-2α)-8(1-2α)+4(1+4α)-16=0
解得

因
,应该继续迭代计算。
2)第二次迭代。

f(X(2))=(2+α)2+2(0.5+2α)2-2(2+α)(0.5+2α)-4(2+α)=Φ(α)
令
Φ′(α)=0
解得

因
,应该继续迭代计算。按照如此往复下去,最后可以得到最优解为
X∗=(4 2)T,f(X∗)=-8
以上迭代路线如图3-18所示。

图3-18 迭代路线
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
