優化中的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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章