機器學習程式碼實現 SVM (5)

weixin_34019929發表於2017-06-17
2061490-920583d131b12d87.png
Paste_Image.png

一.什麼是支援向量機


1、支援向量機(Support Vector Machine,常簡稱為SVM)是一種 監督式學習的方法,可廣泛地應用於統計分類以及迴歸分析。支援向量機屬於一般化線性分類器,這族分類器的特點是他們能夠同時最小化經驗誤差與最大化幾何邊緣區,因此支援向量機也被稱為最大邊緣區分類器

2、支援向量機將向量對映到一個更高維的空間裡,在這個空間裡建立有一個最大間隔超平面。在分開資料的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。

3、假設給定一些分屬於兩類的2維點,這些點可以通過直線分割, 我們要找到一條最優的分割線,如何來界定一個超平面是不是最優的呢?

2061490-b411d02dd5b03305.png
Paste_Image.png

二、求解過程


最優超平面可以有無數種表達方式,即通過任意的縮放 w 和 b 。 習慣上我們使用以下方式來表達最優超平面。

2061490-9e8fc779e78bbf98.png
Paste_Image.png

我們令兩類的點分別為+1, -1,所以當有一個新的點x需要預測屬於哪個分類的時候,我們用sgn(f(x)),就可以預測了,sgn表示符號函式,當f(x) > 0的時候,sgn(f(x)) = +1, 當f(x) < 0的時候sgn(f(x)) = –1

通過幾何學的知識,我們知道點 x 到超平面 的距離為:

2061490-f85cc08b7ec6e59f.png
Paste_Image.png

對於超平面, 表示式中的分子為1,
2061490-772285b090e56251.png
Paste_Image.png

然後得到目標函式

2061490-13b2c1d620699a57.png
Paste_Image.png

這是一個拉格朗日優化問題,可以通過拉格朗日乘數法得到最優超平面的權重向量W和偏置b

2061490-cdadf44ce3ee5337.png
Paste_Image.png

三、拉格朗日對偶


如何確定w和b呢?
答案是尋找兩條邊界端或極端劃分直線中間的最大間隔(之所以要尋最大間隔是為了能更好的劃分不同類的點,下文你將看到:為尋最大間隔,匯出1/2||w||^2,繼而引入拉格朗日函式和對偶變數a,化為對單一因數對偶變數a的求解),從而確定最終的最大間隔分類超平面hyper plane和分類函式;

拉格朗日對偶的原理

2061490-7f442b42bc1e4ef1.png
Paste_Image.png

上述式子有兩個條件(等式條件和不等式條件)由此我們定義一般化的拉格朗日公式

2061490-b1696f5e7e14afcd.png
Paste_Image.png

由此我們定義一般化的拉格朗日公式

2061490-981f3b5e7f53086e.png
Paste_Image.png

這裡的P代表primal。我們設如下約束條件(primal constraints):

2061490-2cf25de4769eb056.png
Paste_Image.png

如果條件不全部滿足的話,我們總可以調整αβ使最大值出現正無窮,即會出現下面情況(這裡比較重要,說明了為什麼要求最大)

2061490-2955a4c541ee5d33.png
Paste_Image.png

因此我們可以得出如下式子:

2061490-69bd37dd7de0efbc.png
Paste_Image.png

這樣我們原來要求的min f(w)可以轉換成求了

2061490-5e855d6af75af60e.png
Paste_Image.png

這個問題就是原問題的對偶問題,相對於原問題只是更換了min和max的順序,而一般更換順序的結果是Max Min(X) <= Min Max(X)。然而在這裡兩者相等。由此我們可以設如下

2061490-d6adec03ba4eaffd.png
Paste_Image.png
2061490-a19f74b54b8944c9.png
Paste_Image.png

四、最優間隔分類器求解(求解過程,上兩步是鋪墊)**


在之前為了尋找最有分類器,我們提出瞭如下優化問題

2061490-1843cc2643a79e55.png
Paste_Image.png

在這裡我們可以把約束條件改寫成如下:

2061490-39da774813782cbf.png
Paste_Image.png
2061490-98aed2acd6e45b35.png
Paste_Image.png

很顯然我們可以看出實線是最大間隔超平面,假設×號的是正例,圓圈的是負例。在虛線上的點和在實線上面的兩個一共這三個點稱作支援向量。現在我們結合KKT條件分析下這個圖。

2061490-4f62b90820c0be62.png
Paste_Image.png

這個也就說明[圖片上傳中個gi(w)時,w處於可行域的邊界上,這時才是起作用的約束。

1、那我們現在可以構造拉格朗日函式如下:
2061490-efe825129df679f0.png
Paste_Image.png
2、接下來我們對w和b分別求偏導數
2061490-1c47395bb2d63445.png
Paste_Image.png
3、將上式帶回到拉格朗日函式中得到:
2061490-7533350b10cc3d26.png
Paste_Image.png
4.優化等式
2061490-348fb44bd0db25b9.png
Paste_Image.png
2061490-7e498d77ed16f710.png
Paste_Image.png
6.最終問題
2061490-beb7591232958982.png
Paste_Image.png

五、核函式 ——高維空間對映,在低維時空裡解決


如下所示,無法線性標示進行分割,但是可以用二次函式簡單分割


2061490-de93438b24a268ed.png
Paste_Image.png

對映到高維空間,可以很容易進行分割

2061490-311e0bd919284a13.png
Paste_Image.png

在計算的時候,它可以讓x和z不用通過H()對映到高維空間再計算內積,而是直接在低維空間裡計算了。
我們用K()表示核函式,那麼核函式作用就是:K(x,z)=
避開了X對映到H(X),Y對映到H(Y)這麼一個過程

2061490-a25b9d121c0acbde.png
Paste_Image.png

線性核:

2061490-5cadce89cfd1781b.png
Paste_Image.png

高斯核:
通過調控引數σ,高斯核具有相當的靈活性
2061490-f4ace1751bb20eeb.png
Paste_Image.png

六、SMO演算法求解α


2061490-0756c23c1f105c04.png
Paste_Image.png

要解決的是在引數{α1, α2,...α3}上求最大值W(α)的問題,至於xi,yi都是已知數。C由我們預先設定,也是已知數。

按照座標上升的思路,我們首先固定除α1 以外的所有引數,然後在α2上求極值。等一下,這個思路有問題,因為如果固定α1以外的所有引數,那麼α2 將不再是變數(可以由其他值推出)

2061490-e3e25c2837677544.png
Paste_Image.png

SMO的主要步驟如下:

  • 1.選擇連個α, 如α1α2,選取方法使用啟發式方法,固定其他引數
  • 2.確定極值Wαiαj表示

假設確定了α1α2,則:

2061490-91b82aea06c6ccf2.png
Paste_Image.png

{α1, α2,...α3}都是已知固定值,因此為了方便,可將等式右邊標記成實數值

2061490-e294af531334bce2.png
Paste_Image.png

y(i),y(j) 異號時,也就是一個為1,一個為-1時,他們可以表示成一條直線,斜率為1。如下圖:

2061490-9179c5f8fcbd4307.png
Paste_Image.png
2061490-5ecdde29e2d8bf67.png
Paste_Image.png

y(i),y(j) 同號時

2061490-8c36cf428067d809.png
Paste_Image.png

然後我們打算將α1α2表示:

2061490-0b8760a515e85b84.png
Paste_Image.png
2061490-33733ba20177b0d9.png
Paste_Image.png

α2滿足以下條件:

2061490-f2f41d0b385e0042.png
Paste_Image.png

wb求解公式

2061490-1b7ae78424996e31.png
Paste_Image.png

啟發式搜尋的方法和求b值的公式

2061490-46e71eda67e238d4.png
Paste_Image.png

[1] http://www.tuicool.com/articles/2aYryeV
[2] https://wizardforcel.gitbooks.io/dm-algo-top10/content/svm-1.html

相關文章