SVM理論之最優超平面


最優超平面(分類面)

 

 

  如圖所示, 方形點和圓形點代表兩類樣本, H 為分類線,H1, H2分別為過各類中離分類線最近的樣本且平行於分類線的直線, H1、H2上的點(xi, yi)稱為支持向量, 它們之間的距離叫做分類間隔(margin)。中間那條分界線並不是唯一的,我們可以把它稍微旋轉一下,只要不分錯。所謂最優分類面(Optimal Hyper Plane)就是要求分類面不但能將兩類正確分開(訓練錯誤率為0),而且使分類間隔最大。推廣到高維空間,最優分類線就變為最優分類面。支持向量是那些最靠近決策面的數據點,這樣的數據點是最難分類的,因此,它們和決策面的最優位置直接相關。

  我們有兩個 margin 可以選,不過 functional margin 明顯是不太適合用來最大化的一個量,因為在 hyper plane 固定以后,我們可以等比例地縮放 w 的長度和 b 的值,這樣可以使得 f(x)=wTx+b 的值任意大,亦即 functional margin γf可以在 hyper plane 保持不變的情況下被取得任意大,而 geometrical margin γg則沒有這個問題,因為除上了 ∥w∥ 這個分母,所以縮放 w 和b 的時候γg的值是不會改變的,它只隨着 hyper plane 的變動而變動,因此,這是更加合適的一個 margin 。對一個數據點進行分類,當它的 margin 越大的時候,分類的 置信度(confidence) 越大。對於一個包含 n 個點的數據集,我們可以很自然地定義它的 margin 為所有這 n 個點的 margin 值中最小的那個γg=minγg,i,於是,為了使得分類的 confidence 高,我們希望所選擇的 hyper plane 能夠最大化這個 margin 值。簡要地說,就是找到這樣一個最優分類面,使離最優分類面最近的點的幾何距離最大。即最優分類面的目標函數為:

   max γg  ,  s.t.  yi(wT ·xi+b) = γg,i  >=  γg,i=1,…,n                                                                    (4)

 

其中γg=  由於我們的目標就是要確定超平面,求max γg ,因此可以把無關的變量固定下來,固定的方式有兩種:一種是固定 ∥w∥,另一種是固定 γf. 處於方便推導和優化的目的,我們選擇第二種,令γf=1 ,則我們的目標函數化為:

    max,    s.t. , yi(wTxi+b)≥1, i=1,…,n                   (5)

H1和H2到最優分類面H的距離相等,都等於γg.

 

          圖3

 

最優超平面的詳細推導

 

  考慮訓練樣本{xi, yi}Ni=1, 其中xi 是輸入模式的第i 個樣本,yi∈{-1,+1}。設用於分離的超平面方程是g(x)=wT·x + b =0; 其中w 是超平面的法向量,b 是超平面的常數項. 現在的目的就是尋找最優的分類超平面,即尋找最優的w 和b。求這樣的g(x)的過程就是求w(一個n維向量)和b(一個實數)兩個參數的過程(但實際上只需要求w,求得以后找某些樣本點代入就可以求得b)。因此在求g(x)的時候,w才是變量。設最優的w 和b 為w0 和b0,則最優的分類超平面為: wT·x + b=0;若得到上面的最優分類超平面,就可以用其來對測試集進行預測了。設測試集合為{ti} Ni=1,則用最優分類超平面預測出的測試集的標簽為:

        ti_label = sgn(w· t+ b0).

SVM 的主要思想是建立一個超平面作為決策曲面, 使得兩類之間的隔離邊緣被最大化。求最優分類超平面等價於求最大幾何間隔,由上式可知也等價於||w||的最小值。

 

設固定函數間隔為1,則支持向量為

    H2: wT·xi + b = -1, y= -1 或者H1: wT·xi +b = +1, yi = +1

設圖3上H1、H2上各有一點,分別為x1,x2; 則wT·x+ b=1 , wT·x+ b=-1

                     => wT·(x1- x2)=2 => 兩類幾何間隔( x1- x2) = ;

max     <=>   min ||w||  <=>  min  1/2 * ||w||2 ;                                                                            (6)

對於任意的(xi, yi), 有 wT·xi+b<=-1, yi=-1或者wT·xi+b>=1, yi=1,即yi (wT·xi +b)>=1。

故尋找最優超平面即正反兩類間隔最大化問題, 最終歸結為一個帶約束的二次凸優化問題(這種問題可以用任何現成的 QP (Quadratic Programming) 的優化包進行求解。):

    min 1/2 * ||w||2, s.t. ,  yi (wT·xi +b)>=1,(i=1,2…n,n為樣本數)                                                             (7)

雖然這個問題確實是一個標准的 QP 問題,但是它也有它的特殊結構,通過 拉格朗日對偶(Lagrange Duality) 變換到對偶變量 (dual variable) 的優化問題之后,可以找到一種更加有效的方法來進行求解——這也是 SVM 盛行的一大原因,通常情況下這種方法比直接使用通用的 QP 優化包進行優化要高效得多。

 

使用Lagrange 乘子法可解決二次規划問題:

1)首先建立Lagrange 函數:

  L(w,b,α)=||w||2-∑αi[yi (wT·xi +b)-1] i=1,2...n                                       (8)

  令θp(w)=mαx L(w,b,α)  s.t. αi>=0 ,  原問題即求min θp(w)=min max L(w,b,α)=p*; s.t. αi≥0

  對偶問題(交換min,max順序): θD(w) = max αi≥0 min L(w,b,α)=d*

      顯然d* <= p*,可以理解為最大值中最小的一個總比最小值中最大的一個要大。

2)L對w 和b分別求偏導並置零,求得w=∑αi·yi·xi, ∑αiyi =0;

3)再整理L 最終可以得到關於原問題的對偶變量α的優化問題:

     max L(w,b,α)=∑αi- 1/2 * ∑Ni=1Nj=1 αiαjyiyjxiTxj ,     s.t.,  ∑αiyi =0; αi>=0

   此時的拉格朗日函數只包含了變量。然而我們求出了才能得到w和b。

4) 求解出求偶問題的最優解(該問題用SMO算法來求解), 設用α·i 表示最優的Lagrange 乘子,則此時原問題的最優解為:

     w,b0=yj-, 任意 j;

    g(x)=<w0,x>+b=<,x>+b = ∑Nj=1 αiyi<xi,x>+b                              (9)

  則判決函數為:f(x) = sgn(∑w0x+b0), 其中x 為測試集中的樣本.

  也就是說,以前新來的要分類的樣本首先根據w和b做一次線性運算,然后看求的結果是大於0還是小於0,來判斷正例還是負例。現在有了,我們不需要求出w,只需將新來的樣本和訓練數據中的所有樣本做內積和即可。這一點至關重要,是之后使用 Kernel 進行非線性推廣的基本前提。那么與前面所有的樣本都做運算是不是太耗時了?答案是不會,由(8)式可知,對於支撐向量函數間隔等於1,對於非支持向量,函數間隔γf,而αi非負,為了滿足最大化,α必須等於 0 。可見,內積運算僅與支持向量有關,可大大降低運算復雜度。

 

超平面在二維空間里就是直線,方程是a*x+b*y+c=0
超平面在三維空間里就是平面,方程是a*x+b*y+c*z+d=0
在n維空間里推廣就是就是a*x+b*y+c*z+........+k=0
這里的(a,b,c...)就是向量w,是由平面確定的數,(x,y,z..)是平面上任一點的坐標,就是你方程里的x,也是一個向量。

 

原文:https://www.cnblogs.com/Seiyagoo/archive/2013/06/08/3125497.html

https://blog.csdn.net/lyhbkz/article/details/82321845


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM