优化中的subgradient方法

哎。刚刚submit上paper比較心虚啊。无心学习。还是好好码码文字吧。

subgradient介绍

subgradient中文名叫次梯度。和梯度一样,全然能够多放梯度使用。至于为什么叫子梯度,是由于有一些凸函数是不可导的,没法用梯度。所以subgradient就在这里使用了。

注意到。子梯度也是求解凸函数的。仅仅是凸函数不是处处可导。

f:XR是一个凸函数,XRn是一个凸集。
若是f在xf(x)可导。考虑一阶泰勒展开式:

f(x)f(x)+(f(x)T(xx),xX

能够得到f(x)的一个下届(f(x)是一个凸函数)
若是f(x)x处不可导,仍然。能够得到一个f(x)的下届
f(x)f(x)+gT(xx),xX

这个g就叫做f(x)的子梯度。gRn
非常明显。在一个点会有不止一个次梯度,在点x全部f(x)的次梯度集合叫做此微分f(x)
f(x)在此处可导,仅仅有一个次梯度
这里写图片描写叙述
f(x)不可导,
这里写图片描写叙述
这里写图片描写叙述
这里写图片描写叙述
这里写图片描写叙述
f(x)不可导
我们能够看出,当f(x)是凸集而且在x附近有界时,f(x)是非空的,而且f(x)是一个闭凸集。

次梯度性质

f(x)={g}f(x)g=f(x)

满足:
1)scaling:
(αf(x))=αf(x),if α>0

2)addition:
(f1(x)+f2(x))=fz(x)+f2(x)

3)point-wise maximum:f(x)=maxi=1,...,mfi(x)而且fi(x)是可微的,那么:
f(x)=Co{fi(x)fi(x)=f(x)}

即全部该点函数值等于最大值的函数的梯度的凸包。


在非约束最优化问题中。要求解一个凸函数f:RnR的最小值

xargminxRnf(x)

非常显然,若是f可导。那么我们仅仅须要求解导数为0的点
f(x=minxRn0=f(x)

当f不可导的时候,上述条件就能够一般化成
f(x)=minxRn0f(x)

也即0满足次梯度的定义

f(x)f(x)+0T(xx),xRn

以下是次梯度法的一般方法:

1.t=1选择有限的正的迭代步长{αt}t=1
2.计算一个次梯度gf(xt)
3.更新xt+1=xtαtgt
4.若是算法没有收敛。则t=t+1返回第二步继续计算

次梯度方法性质:

1.简单通用性:就是说第二步中,f(xt)不论什么一个次梯度都是能够的.
2.收敛性:仅仅要选择的步长合适。总会收敛的
3.收敛慢:须要大量的迭代才干收敛
4.非单调收敛:gt不须要是下降方向。在这样的情况下,不能使用线性搜索选择合适的αt
5.没有非常好的停止准则

对于不同步长的序列的收敛结果

最好还是设ftbest=min{f(x1),..,f(xt)}是t次迭代中的最优结果
1.步长和不可消时(Non-summable diminishing step size):
limtαt=0 而且t=1αt==
这样的情况能够收敛到最优解:limtftbestf(x)=0
2.Constant step size:
αt=γ,where γ>0
收敛到次优解:limtftbestf(x)αG2/2
3.Constant step length:
αt=γ||gt||(i.e. ||xt+1xt||=γ),||g||G,gf
能够收敛到次优解limtftbestf(x)γG/2
4.Polyak’s rule: αt=f(xt)f(x)||gt||2
若是最优值f(x)可知则能够用这样的方法。

不等式约束的凸二次优化问题

问题formulate

一个不等式约束的凸二次优化问题能够表示为:

(w,b,ξ)=argminw,b,ξ[12||w||2+Ci=1mξi]

s.t.       yi(wTxi+b)ξi1ξi,   0              i=1,,m,i=1,,m.

注意到ξimax(0,1yi(wTxi+b)),而且当目标函数取得最优的时候,这里的等号是成立的,所以能够进行取代:
ξi=max(0,1yi(wTxi+b))
所以就能够将这个二次悠哈问题改写成一个非约束凸优化问题

(w,b)=argminw,bf(w,b)=argminw,b[12||w||2��f0(w,b)+Ci=1mmax(0,1yi(wTxi+b))��fi(w,b)]

问题求解

由于

f0(w,b)=12||w||2
是可微的,而且
wf0(w,b)=w,  bf0(w,b)=0
函数fi(w,b)=max0,1yi(wTxi+b)是一个点最大值。所以其次微分能够写作,全部active function的梯度的convex combination

i-th function wfi(w,b) bfi(w,b)
I+={i|yi(wTxi+b)>1} 0 0
I0={i|yi(wTxi+b)=1} Co{0,yixi} Co{0,yi}
I={i|yi(wTxi+b)<1} yixi yi

所以次微分能够写作f(w,b)=f0(w,b)+Cmi=1fi(w,b)能够使用參数话的表示方法,设0βi1,iI0,所以就有g=[wb]f(x)

w(β)b(β)=wCiI0βiyixiCiIyixi=CiI0βiyiCiIyi

原文地址:https://www.cnblogs.com/zfyouxi/p/5380108.html