SVM算法2

線性可分支持向量機學習算法

輸入:線性可分訓練集T={(x1,y1),(x2,y2),...,(xN,yN)} 其中xiRn,yi{1,+1},i=1,2,..,N
輸出:分離超平面和分類決策函數
(1)構造並求解約束最優化問題

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s.t.i=1Nαiyi=0
αi0,i=1,2,..,N

求得最優解α=(α1,α2,...,αN)T
w=i=1Nαiyixi
b=yji=1Nαiyi(xixj)

求得分離超平面
wx+b=0
分類決策函數
f(x)=sign(w+b)

線性支持向量機與軟間隔最大化

線性可分問題的支持向量機學習方法,對線性不可分訓練數據是不適用的,將它擴展到線性不可分的數據,使其成爲軟間隔最大化爲了解決這個問題,可以對每個樣本點(xi,yi) 引進一個鬆弛變量ξi0 ,使得函數間隔加上鬆弛變量大於等於1,這樣,約束條件變爲

yi(wxi+b)1ξi
同時,對每個鬆弛變量ξi ,支付一個代價,目標函數由原來的
12||w||2+Ci=1Nξi
這裏,C>0 稱爲懲罰參數,一般由應用問題決定,C 值大是對誤分類的懲罰增大,C 值小時,對錯誤分類的懲罰減小。最小化目標函數包含兩層含義:使12||w||2 儘量小,即間隔儘量大,同時使錯誤分類的點儘量少,C 是調和兩者的係數。則原始問題變爲
minw,β,ξ12||w||2+Ci=1Nξi
s.t.yi(wxi+b)1ξi,i=1,2,..,N
ξi0,i=1,2,..,N
顯然,線性支持向量機包含線性可分支持向量機,具有更廣的適用性。

學習的對偶算法

原始問題的對偶問題是

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s.t.i=1Nαiyi=0
0αiC,i=1,2,..,N

非線性支持向量機與核函數

核技巧

非線性問題往往不好求解,所以希望能夠通過解線性分類問題的方法解決這個問題,所採取的方法是進行一個非線性變化,將非線性問題變化爲線性問題。核技巧應用到支持向量機,其基本想法是通過一個非線性變換將輸入空間對應於一個特徵空間,使得在輸入空間Rn 中的超曲面模型對應於特徵空間H 中的超平面(支持向量機),這樣,分類問題的學習任務通過在特徵空間中求解支持向量機就可以完成。

核函數的定義

是輸入空間,設 爲特徵空間(希爾伯特空間),如果存在一個從 的映射ϕ(x): 使得對所有的x,z ,函數K(x,z) 滿足條件

K(x,z)=ϕ(x)ϕ(z)
則稱K(x,z) 爲核函數,ϕ(x) 爲映射函數,式中ϕ(x)ϕ(z) 爲內積
核技巧的想法是,在學習與預測中只定義核函數K(x,z) ,而不顯示地定義映射函數ϕ
我們注意到在線性支持向量機的對偶問題中,無論是目標函數還是決策函數,都只涉及輸入實例與實例之間的內積,在對偶問題的目標函數中的內積xixj 可以用核函數K(xi,xj)=ϕ(xi)ϕ(xj) 來代替,此時對偶問題的目標函數爲
W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi
同樣,分類決策函數中的內積也可以用核函數代替,而分類決策函數式稱爲
f(x)=sign(i=1Nsαiyiϕ(xi)ϕ(x)+b)=sign(i=1NsαiyiK(xi,x)+b)
這等價於經過映射ϕ 將原來輸入空間變換到一個新的特徵空間,將輸入空間中的內積xixj 變換爲特種空間中的內積ϕ(xi)ϕ(xj) ,在新的特徵空間裏從訓練樣本中學習線性支持向量機,當映射函數是非線性函數時,學習到的含有核函數的支持向量機就是非線性分類模型。
也就是說,在覈函數K(x,z) 給定的條件下,可以利用解線性分類問題的方法求解非線性分類問題的支持向量機。學習是隱式的在特徵空間進行的,不需要顯式地定義特徵空間和映射函數。這樣的技巧稱爲核技巧。

正定核

n,K(x,z) 是定義在× 上的對稱函數,如果K(x,z) 對應的Gram矩陣

K=[K(xi,xj)]m×n
是半正定矩陣,則稱K(x,z) 是正定核

常用的核函數

1多項式核函數

K(x,z)=(xz+1)p
對應的支持向量機是一個p 次多項式分類器。在此情形下,分類決策函數成爲
f(x)=sign(i=1Nsαiyi(xix+1)p+b)

2.高斯核函數
K(x,z)=exp(||xz||22σ2)
對應的支持向量機是高斯徑向基函數分類器,在此情形下,分類決策函數成爲
f(x)=sign(i=1Nsαiyiexp(||xz||22σ2)+b)

3.字符串核函數
兩個字符串st 上的字符串核函數是基於映射ϕn 的特徵空間中的內積:

kn(s,t)=un[ϕn(s)][ϕn(t)]u

字符串核函數kn(s,t) 給出了字符串st 中長度等於n 的所有字串組成的特徵向量的餘弦相似度
http://users.cecs.anu.edu.au/~chteo/SASK.html給出了計算字符串核函數比較好的方法。通常字符串核函數是用動態規劃來計算,該方法可以降低計算複雜度。

序列最小最優化算法

SMO算法要解如下凸二次規劃的對偶問題:

minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi
s.t.i=1Nαiyi=0
0αiC,i=1,2,,..,N

SMO算法是一種啓發式算法,其基本思路是:如果所有算法都滿足此最優化問題的KKT條件,那麼這個最優化問題的解就得到了,因爲KKT條件是該最優化問題的充分必要條件。否則,選擇兩個變量,固定其他變量,針對這兩個變量構建一個二次規劃問題,這個二次規劃問題關於這兩個變量的解應該更接近原始二次規劃問題的解。子問題可以大大提高算法速度。
注意,子問題的兩個變量中只有一個是自由變量,假設α1,α2 爲兩個變量,α3,α4,...αN 固定,那麼由於要滿足
i=1Nαiyi=0
所以
α1=y1i=2Nαiyi
整個SMO算法包括兩個部分:求解兩個變量二次規劃的解析方法和選擇變量的啓發方法。於是,SMO的最優化問題的子問題可以寫成:
minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2(α1+α2)++y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2
s.t.αiyi+α2y2=i=3Nyiαi=ζ
0αiC,i=1,2
假設問題的初始可行解爲αold1,αold2 最優解爲αnew1,αnew2 ,並假設在沿着約束方向未經剪輯時α2 的最優解是αnew,unc2
由於αnew2 需滿足不等式約束0αiC ,所以最優值的取值範圍必須滿足條件Lαnew2H ,其中LHαnew2 所在對角線段端點的界。
如果y1y2
L=max(0,αold2αold1),H=min(C,C+αold2αold1)
如果y1=y2
L=max(0,αold2+αold1C),H=min(C,αold2+αold1)
下面,首先求沿着約束方向未經剪輯即未考慮不等式約束時α2 的最優解αnew,unc2 ,然後再求剪輯後α2 的解αnew2 ,我們用定理來敘述這個結果,首先記
g(x)=i=1NαiyiK(xi,x)+b
Ei=g(xi)yi 最優化問題沿着約束方向未經剪輯時的解是
αnew,unc2=αold2+y2(E1E2)η
其中η=K11+K222K12=||ϕ(x1)ϕ(x2)||2
αnew1=αold1+y1y2(αold2αnew2)

變量選擇問題

第一個變量的選擇:SMO稱選擇第一個變量的過程爲外層循環。外層循環在訓練樣本中選取違反KKT條件最嚴重的樣本點,並將其對應的變量作爲第一個變量。SMO稱選擇第二個變量的過程爲內層循環。假設在外層循環中已經找到第一個變量α1 ,現在要在內層循環中找第2個變量α2 ,第2個變量的選擇標準是希望能使α2 有足夠大的變化。

發佈了93 篇原創文章 · 獲贊 9 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章