哎,剛剛submit上paper比較心虛啊,無心學習,還是好好碼碼文字吧。
subgradient介紹
subgradient中文名叫次梯度,和梯度一樣,完全可以多放梯度使用,至於爲什麼叫子梯度,是因爲有一些凸函數是不可導的,沒法用梯度,所以subgradient就在這裏使用了。注意到,子梯度也是求解凸函數的,只是凸函數不是處處可導。
f:X→R 是一個凸函數,X∈Rn 是一個凸集。
若是f在x′ 處∇f(x′) 可導,考慮一階泰勒展開式:
f(x)≥f(x′)+∇(f(x′)T(x−x′),∀x∈X
能夠得到
f(x) 的一個下屆(f(x)是一個凸函數)
若是
f(x) 在
x′ 處不可導,仍然,可以得到一個
f(x) 的下屆
f(x)≥f(x′)+gT(x−x′),∀x∈X
這個
g 就叫做
f(x) 的子梯度,
g∈Rn
很明顯,在一個點會有不止一個次梯度,在點
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:Rn→R 的最小值
x∗∈argminx∈Rnf(x)
很顯然,若是f可導,那麼我們只需要求解導數爲0的點
f(x∗=minx∈Rn⇔0=∇f(x∗)
當f不可導的時候,上述條件就可以一般化成
f(x∗)=minx∈Rn⇔0∈∇f(x∗)
也即
0 滿足次梯度的定義
f(x)≥f(x′)+0T(x−x′),∀x∈Rn
下面是次梯度法的一般方法:
1.t=1 選擇有限的正的迭代步長{αt}∞t=1
2.計算一個次梯度g∈∂f(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==∞
這種情況能夠收斂到最優解:limt→∞ftbest−f(x∗)=0
2.Constant step size:
αt=γ,where γ>0
收斂到次優解:limt→∞ftbest−f(x∗)≤αG2/2
3.Constant step length:
αt=γ||gt|| (i.e. ||xt+1−xt||=γ ),||g||≤G,∀g∈∂f
能夠收斂到次優解limt→∞ftbest−f(x∗)≤γG/2
4.Polyak’s rule: αt=f(xt)−f(x∗)||gt||2
若是最優值f(x∗) 可知則可以用這種方法。
不等式約束的凸二次優化問題
一個不等式約束的凸二次優化問題可以表示爲:
(w∗,b∗,ξ∗)=argminw,b,ξ[12||w||2+C∑i=1mξi]
s.t. yi(wTxi+b)ξi≥1−ξi, ≥0 i=1,⋯,m,i=1,⋯,m.
注意到ξi≥max(0,1−yi(wTxi+b)) ,而且當目標函數取得最優的時候,這裏的等號是成立的,所以可以進行代替:
ξi=max(0,1−yi(wTxi+b))
所以就可以將這個二次悠哈問題改寫成一個非約束凸優化問題
(w∗,b∗)=argminw,bf(w,b)=argminw,b[12||w||2f0(w,b)+C∑i=1mmax(0,1−yi(wTxi+b))fi(w,b)]
問題求解
因爲
f0(w,b)=12||w||2
是可微的,並且
∂wf0(w,b)=w, ∂bf0(w,b)=0
函數
fi(w,b)=max0,1−yi(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)+C∑mi=1∂fi(w,b) 可以使用參數話的表示方法,設0≤βi≤1,i∈I0 ,所以就有g=[w′b′]∈∂f(x)
w′(β)b′(β)=w−C∑i∈I0βiyixi−C∑i∈I−yixi=−C∑i∈I0βiyi−C∑i∈I−yi