【优化】梯度下降 收敛性 证明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenxiaolu1984/article/details/52577996

梯度下降方法的收敛率是O(1/t)

本文首先介绍梯度下降算法的定义,之后解释收敛性的意义,并给出梯度下降算法收敛性详细证明过程1

梯度下降算法

设系统参数为x。对于样本i,其代价函数为fi(x)。在n个样本组成的训练集上,其整体代价函数为:

f(x)=i=1nfi(x)

要求ω使得上式最小,由于没有闭式解,需要通过近似迭代逐步逼近。

梯度下降(Gradient Descent)以η为学习率,在每次迭代中用一阶泰勒展开近似:

xt+1=xtηf(x)

x的维度为D,代价函数f是个标量,梯度f(x)也是一个D维向量。

序列的收敛性

基础定义

有序列{xt},如果序号t趋于无穷时,满足以下条件:

limtxt+1xxtx=μ

则称该方法收敛到x,收敛率为μ, μ(0,1)。也称为以μ收敛到x

例:数列1,1/2,1/4,1/8...收敛到L=0,收敛率为1/2

扩展定义

还有一些序列也会随着序号趋于某个定值,但是收敛的速率随着下标发生变化。这里引入一个扩展的收敛率定义。
如果存在序列{ϵt},根据基础收敛率定义,以收敛率μ收敛到0。
则如果序列{xt}满足:

|xtx|<ϵt

称该方法收敛到x,收敛率为ϵt

例:数列{1,1,1/4,1/4,1/16,1/16…}收敛到L=0,收敛率为ϵt=12t1={2,1,1/2,1/4,1/8,1/16…}。

梯度下降的收敛性

当我们说“梯度下降的收敛性为1/t”时,我们指的是:

t趋于无穷时,代价函数f(xt)收敛到最优解f(x),收敛率为ϵt=O(1/t)

引理

这部分为收敛性证明做准备,步骤较曲折,请关注大流程。

Lipschitz连续

如果标量函数f(x)满足如下条件,称其满足Lipschitz连续性条件

|f(x1)f(x2)|L||x1x2||

其中||x||表示向量的模长,L称为Lipschitz常数。对于固定的fL是一个定值。
这个条件对函数值的变化做出了限制。

β平滑

进一步,如果函数f(x)的梯度满足值为β的Lipschitz连续,称函数f(x)β平滑:

||f(x)f(y)||2β||xy||2

其中||x||2=xTx。这个条件对函数梯度的变化进行了约束:梯度之差的模长,不会超过自变量之差模长的常数倍。

β平滑性质1

满足β平滑的函数有如下性质:

|f(x)f(y)f(y)T(xy)|β2||xy||2

证明如下

构造一个插值函数g(t)=f(y+t(xy)),其关于t的导数:

g(t)=f(y+t(xy))T(xy)

可以把函数值之差转化为积分:

f(x)f(y)=g(1)g(0)=10g(t)dt=10f(y+t(xy))T(xy)dt

代入左侧:

left=|10...dtf(y)T(xy)|

第二项是和t无关的常数,可以直接写入[0,1]的积分中:
left=|10...dt10f(y)T(xy)dt|

两个积分号合并:

left=|10...dt|

和的绝对值小于绝对值之和:

left10|f(y+t(xy))T(xy)f(y)T(xy)|dt

left10|[f(y+t(xy))f(y)]T(xy)|dt

利用柯西施瓦茨不等式,aTb||a||2||b||2

left10||f(y+t(xy))f(y)||2||xy||2dt

出现了两个梯度相减,可以利用β平滑性质:

left10β||t(xy)||2||xy||2dt=β||xy||210tdt=β2||xy||2

证毕


特别地,如果f是凸函数,过[y,f(y)]点的切线g(u)=f(y)u+f(y)f(y)y在曲线之下。于是有

g(x)=f(y)x+f(y)f(y)y<f(x)

进而f(x)f(y)f(y)T(xy)>0,性质1变为:

f(x)f(y)f(y)T(xy)β2||xy||2

β平滑性质2

满足β平滑的凸函数,符合如下性质:

f(x)f(y)f(x)T(xy)12β||f(x)f(y)||2

考虑一个新的点z=y1β(f(y)f(x)),把左式(函数值)差拆解成两部分:

f(x)f(y)=f(x)f(z)+f(z)f(y)

第一部分,根据函数f的凸性,易得:
f(x)f(z)f(x)T(xz)=f(x)T(xy)+f(x)T(yz)

第二部分,直接利用性质1

f(z)f(y)f(y)T(zy)+β2||zy||2

=f(y)T(yz)+β2||zy||2

两部分相加,合并yz项:

f(x)f(y)f(x)T(xy)+(f(x)f(y))T(yz)+β2||zy||2

前两项已经凑齐了,带入yz=1β(f(y)f(x))

f(x)f(y)f(x)T(xy)+1β(f(x)f(y))T(f(y)f(x))+β21β2||f(x)f(y)||2

=f(x)T(xy)12β||f(x)f(y)||2

物理意义

对比性质1和性质2:

f(x)f(y)f(y)T(xy)+β2||xy||2

f(x)f(y)f(x)T(xy)12β||f(x)f(y)||2

两者都比较了函数值之差和不同点线性拟合之差。

对于性质1来说,β越小,越接近线性函数,右侧第二项越小。
对于性质2来说,第二项还包含了梯度之差,也受到β影响。

证明

这部分就真不是人干事了。大致了解方法,关注物理意义即可。

xt的极限

只要证明新解xt+1比当前解xt更接近最终解x即可。

考察新解到最终解的距离

||xt+1x||2=||xtηf(xt)x||2

打开平方号:
=||xtx||22ηf(xt)T(xtx)+η2||f(xt)||2

利用β平滑的性质2,考察在xn点的线性拟合:

f(xt)f(x)f(xt)T(xtx)12β||f(xt)f(x)||2

由于x为最终解,f(x)=0,f(xt)>f(x)2

f(xt)T(xtx)12β||f(xt)||20

f(xt)T(xtx)12β||f(xt)||2

代入前式:

||xt+1x||2||xtx||2ηβ||f(xt)||2+η2||f(xt)||2

=||xtx||2η(1βη)||f(xt)||2

收敛条件的物理意义

只要学习率η<1/β,就可以保证:

||xt+1x||2||xtx||2

考虑简单例子:f(x)=12ax2,有||f(x)f(y)||2=a2||xy||2。满足β平滑,β=a2

a越小,β越小,约束越紧,函数开口越大,曲线下降趋势约“一致“。可以使用更大的步长η,而不必担心不收敛。
这里写图片描述

一个极端情况是线性函数:||f(x)f(y)||2=0β=0。学习率可以任意大,保证向最优解前进。

f(xt)的极限

利用β平滑的性质1,比较两次迭代的代价:

f(xt+1)f(xt)f(xt)T(f(xt+1)f(xt))+β2||xt+1xt||2

=η||f(xt)||2β2η2||f(xt)||2=η(1βη2)||f(xt)||2

插进最优解的代价,比较两次迭代“距极限的距离”:

[f(xt+1)f(x)][f(xt)f(x)]η(1βη2)||f(xt)||2

利用前面提到的凸函数性质以及柯西施瓦茨不等式,构造一个关系:

f(xt)f(x)f(xt)T(xtx)||f(xn)||||xnx||

||f(xt)2||f(xt)f(x)||xtx||

这就是“距极限距离”之差一式的最后一项,代进去:

[f(xt+1)f(x)][f(xt)f(x)]η(1βη2)[f(xt)f(x)]2||xtx||2

前小节已证:||x0x||2>||xtx||2,可以去除分母中的t

[f(xt+1)f(x)][f(xt)f(x)]η(1βη2)[f(xt)f(x)]2||x0x||2

两遍同除正数[f(xt+1)f(x)][f(xt)f(x)]

1f(xt)f(x)1f(xt+1)f(x)+η(1βη2)||x0x||2f(xt)f(x)f(xt+1)f(x)

由前小节,可知f(xt)f(x)f(xt+1)f(x)>13

1f(xt)f(x)1f(xt+1)f(x)+η(1βη2)||x0x||2

从0到t-1累加上不等式:

1f(xt)f(x)1f(x0)f(x)1||x0x||2tη(1βη2)

左边第二项是正数:
1f(xt)f(x)1||x0x||2tη(1βη2)

f(xt)f(x)||x0x||21η(1βη2)1t

换句话说,代价序列f(xt)到最优代价的差小于数列1/t的常数倍,说明代价序列的收敛率为O(1/t)


  1. 证明过程大部分整理自这里这里这里
  2. 此处存疑
  3. 此处存疑

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试