數據科學個人筆記:支持向量機

一、線性可分支持向量機

(一)分類器的構造

設某樣本的特徵向量xi爲超空間中的一點,則若這些樣本線性可分,我們就可以找到一個超平面將他們完全分隔開。若我們已經找出這個超平面,並令左邊的爲負例,y=-1,右邊的爲正例,y=1,則我們就構建了一個分類器。

(二)函數間隔和幾何間隔

擬合這個分類器的方法如下:

設yi*(w*xi+b)爲訓練樣本的函數間隔,w、b是要擬合的超平面參數,則函數間隔越大說明樣本離超平面越遠(負的話說明分錯邊了),說明分的置信度越高。我們要找到一組w、b,使其確定的超平面離那些離它最近的樣本也足夠遠,也就是函數間隔足夠大。離它最近的樣本就是支持向量。

(三)幾何間隔

函數間隔不適合作爲確定w、b的標準,因爲2w、2b可能確定出來相同的超平面,但函數間隔卻是原來的兩倍。由此,我們可以換一個衡量樣本與超平面遠近的指標:幾何間隔,即函數間隔/||w||。輸入一組w、b,得到一個超平面,對比所有樣本,與其幾何間隔最小的樣本的幾何間隔,被我們定義爲最小几何間隔。所以我們的擬合分類器的方式就是求解一個最優化問題,選取w、b,使得最小几何間隔max。

(四)最優化問題

求解的最優化問題可以表示爲:

Max_w,b  最小几何間隔

s.t. 每個樣本的幾何間隔>=最小几何間隔

轉化爲:

Max_w,b  最小函數間隔/||w||

s.t. 每個樣本的函數間隔>=最小函數間隔

從問題的形式中可以發現,無論最小函數間隔等於多少,對最優化的結果並沒有影響,最小函數間隔的選取相當於是座標系,爲簡化問題,設其爲1,故我們可以將問題轉化爲,

Min_w,b  0.5*||w||^2

s.t. 每個樣本的函數間隔-1>=0

可見目標函數爲二次函數,不等式約束左邊爲仿射函數,上述問題爲凸二次規劃問題。

(五)最優超平面的存在+唯一性證明(待添加)

(六)拉格朗日對偶性

爲了引出其後的非線性SVM,我們要將上述最優化問題轉化爲其對偶問題。先在此放出拉格朗日對偶性的理論基礎。

1.可以直接用的定理

設原問題爲 Min_w f(w)  s.t. c(w)i<=0  且h(w)j=0

則拉格朗日函數爲L(w,a,b)=f(w)+sum[ai*ci]+sum[bj*hj],其中a、b爲拉格朗日乘子,

而求解原問題等價於求解min_w max_a,b L  s.t. a>=0

2.爲什麼要這樣設?

原理是,假如我們已經選取了一組w,則內層問題的最大值只有兩種情況:

(1)在任意a>=0的情況下,若w使得某c>0(不符合約束),則內層問題的最優值爲無窮。同樣地,若w使得某h!=0,則函數內層問題最優值爲無窮。

(2)若以上兩個情況都不發生,則L的的第三項必爲零,第二項的最大值必爲零,內層問題的最大值爲f(w),再求解外層問題的話,就和原問題的解相同。

所以內層問題的最大值不是無窮就是f(w),而要使得整個問題取到最小值,w必須滿足原問題約束,不然內層取到無窮大,外層就取不到最小值。

由此可知1中的等價關係成立。

3.對偶問題

 min_w max_a,b L  s.t. a>=0 稱爲廣義拉格朗日的極小極大問題,它的對偶問題是

Max_a,b min_w L s.t. a>=0 稱爲廣義拉格朗日的極大極小問題。

兩問題的關係是,

(1)若原問題和對偶問題都有最優值,則對偶最優<=原最優

(2)若f、c爲凸函數,h爲仿射函數,並且假設不等式約束c嚴格可行,則存在x、a、b使得原問題和對偶問題同時取得最優解。

(3)若(2)中的條件成立,則x、a、b是最優解的充要條件是,KKT條件:

L對x求偏導=0

ai*ci(x)=0(對偶互補條件,即若ai和ci(x)最少有一0)

ci(x)<=0

a>=0

hj(x)=0

(七)支持向量機的對偶形式

1.原問題的拉格朗日函數爲

L(w,b,alfa)=0.5*||w||^2-sum[alfai*(函數間隔i-1)]

根據(六).1和3的定理,我們要求解的最優化問題等價於對偶問題

max_alfa min_w,b L  s.t. alfa>=0

2.爲了繼續轉化該問題,將alfa看作常數,求解min_w,b L。

通過求偏導爲0,推出F=min_w,b L=-0.5*sum[sum[alfai*alfaj*yi*yj*(xi*xj)]]+sum(alfai)

3.最終,我們求解的問題轉化爲

min_alfa -F  s.t. sum(alfai*yi)=0, alfai>=0

根據KKT條件,w=sum(ai*yi*xi), b=yi-sum(alfa_i*yi*(xi*xj)) (此處有推導,待完善)

可見,我們的分來決策函數也可寫成y=sign(sum(alfai*yi*(xi*x)+b))

 

二、線性支持向量機

(一)軟間隔最大化

設每個樣本的鬆弛變量ni,並將ci改成函數間隔i>=1-ni。此處由於我們假設數據集非線性可分,所以我們放鬆我們的約束條件,認爲每個樣本可以接受最大ni程度的分錯範圍。但是我們當然希望每個ni越小越好,所以我們的約束問題變爲

Min_w,b 0.5*||w||^2+C*sum(ni)

s.t. yi*(w*xi+b)>=1-ni 且ni>=0

其中C爲懲罰參數,C越大則對ni的懲罰越大,ni越小,反之可接受的誤差越大。

(二)對偶問題

經過相似的推導過程,原問題可轉化爲

min_alfa -F  s.t. sum(alfai*yi)=0, C>=alfai>=0

而w、b的計算方式不變。

(三)合頁損失函數(待補充)

 

三、非線性支持向量機

(一)核技巧

樣本的特徵空間若離線性可分差之甚遠,但用別的方法能分開,比如畫個圓圈,則我們需使用核技巧對特徵向量們進行變換,將X變換成f(X),然後f(X)變成近似線性可分的了,就能使用sign[sum[alfai*yi*f(xi)*f(x)+b]]來作爲分類器了。變換函數f(X)不好求,通常好求的是K(xi,xj)=f(xi)*f(xj),即核函數。故分類器變爲sign[sum[alfa*yi*K(xi,x)+b]]。求解過程參見線性支持向量機。

(二)正定核(待添加)

(三)常用核函數

1.多項式核函數K(x,z)=(x*z+1)^p

2.高斯核函數K(x,z)=exp((-||x-z||^2)/(2sigma^2))

3.字符串核函數(待添加)

4.徑向基核函數、冪指數核函數、拉普拉斯核函數、ANOVA 核函數、二次有理核函數、多元二次核函數、逆多元二次核函數以及 Sigmoid 核函數(待添加)。

(四)序列最小最優化算法(SMO)

直接求解最後帶alfa的凸二次規劃問題在訓練樣本很大時通常因過於低效而無法使用,此時我們可以使用一種啓發式的迭代求解方法,即SMO。SMO的思想是將求解優化問題轉化成使得所有的alfai滿足KKT條件,因爲這兩點是等價的。

SMO算法先隨機初始化所有的alfai=0,然後按照一定的條件選取其中的兩個alfai,固定其他變量,針對這兩個變量求解凸二次規劃問題並將最優解作爲alfai的更新值。

如何選擇變量:

我們選取第一個變量時的目標是找最不符合優化問題的KKT條件(對偶互補性)的變量,也就是最不符合yi*g(xi)<=1(alfai=C) or >=1(alfai=0) or =1(0<alfai<C),其中g(x)爲最優超平面的式子。找到後,尋找第二個變量,根據alfa1與alfa2的關係,我們選取|E1-E2|最大的alfa2,其中E=g-y。

(五)優缺點

優點:可以解決小樣本下機器學習的問題,提高泛化性能,在解決文本分類、文字識別、圖像分類等方面仍受歡迎,避免神經網絡結構選擇和局部極小的問題。

缺點:缺失數據敏感,內存消耗大,難以解釋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章