梯度下降法

1 梯度下降法

梯度下降法又称最速下降法,是最优化方法中最基本的一种方法。所有无约束最优化问题都是在求解如下的无约束优化问题:minxRnf(x)

将初始点x0逐步迭代到最优解所在的点x,那么考虑搜索点迭代过程:xt+1=xt+γtdt

其中dt是我们根据目标函数在xt的情况确定的搜索方向,而γt则成为迭代点xt沿搜索方向的步长。其实就是:已知函数f和迭代点xt,能够使用一种算法算出搜索方向dt,使得xt在这个搜索方向下得到的点能够使f变小,即f(xt+1)<f(xt)

梯度下降希望得到一个方向,这个方向是在该点下降最快的,因此在函数一阶可微情况下,直接求f(xt),取dt=f(xt)

注意: 下降最快不一定是降幅最大

证明:设目标函数f连续可微,将fxt处Taylor展开:f(x)=f(xt)+f(xt)T(xxt)+o(|xxt|)
x=xt+1,有f(xt+1)=f(xt)+γtf(xt)Tdt+o(|xt+1xt|)
为了能使f(xt+1)<f(xt),可以明显看到γtf(xt)Tdt=fγ<0;我们希望f(xt+1)下降得尽可能快,即需要满足 dt=argmindtfγ=argmaxdtfγ
由Cauchy不等式,fγ=f(xt)Tdt|f(xt)||dt|,iff dtf(xt)

已知迭代的终止条件参数 ϵ,初始迭代点为x0,重复以下操作:
1、计算dt=f(xt),若dt<ϵ,迭代终止
2、通过线搜索确定步长γt
3、通过迭代更新得到下一个迭代点

2 精确线搜索

只适用于argminγf(xt+γdt)的迭代过程。

f(x)=12xTQx+bTx+c,其中xn维列向量,Q是实对称正定矩阵,bx同维度的列向量,c是实数。

gt=f(xt), 我们可以计算最优步长γ:

γ=argminγf(xt+γdt)=argminγf(xtγgt)=argminγ(12gtTQgtγ2gtTgtγ+f(xt))

可以得到最优步长γ为:

γ=gtTgtgtTQgt

那么对正定二次型,其更新迭代公式为:xt+1=xtgtTgtgtTQgt(Qxt+b)

已知迭代的终止条件参数 ϵ,初始迭代点为x0,记gt=f(xt),重复以下操作:
1、计算dt=f(xt),若dt<ϵ,迭代终止
2、通过线搜索确定步长γtgtTgtgtTQgt
3、通过迭代更新得到下一个迭代点

3 非精确线搜索

Goldstein准则

如图所示,从(0,f(xk))处引出两条射线,选取的γk于原单值函数上的映射值位于γk在这两条直线上的映射值之间,于是构成它们的约束区间[b,c],那么这一步我们要寻找的步长γk就位于[b,c]之间。

φ(γ)=f(xk+γdk),则两条线的约束可写成

(1)φ(γk)φ(0)+ργkφ(0)

(2)φ(γk)φ(0)+(1ρ)γkφ(0)

其中 0<φ<12

Goldstein准则非精确先搜索算法

我们根据上式(1)(2),得到算法
1、选取初始搜索区间[0, sup(\gamma)]中选取初始点γ0,搜索区间[a0,b0],计算φ(0),φ(0),给出 ρ(0,12),t>1,k=0
2、若γk满足(1),转到第三步;否则 ak+1=ak,bk+1=γk,转到第四步
3、若γk满足(2),则输出γk,迭代结束;
否则令ak+1=γk,bk+1=bk;若bk+1<sup(γ),转第四步;
否则令γk+1=tγk,k+=1,转第二步;
4、令 γk+1=ak+1+bk+12,k+=1,转第二步

本文作者:拂云堂 诩言

本文链接:https://www.cnblogs.com/wanyy-home/p/17904082.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   诩言Wan  阅读(31)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起