重溫SVM

    支持向量機(Support Vector Machine .SVM)是一種二分類模型。基本思想是,在特徵空間上通過分類間隔最大化得到一個線性分類器;這一點有別於線性感知器,感知器是使分類錯誤最小,結果是一個解區域,而SVM得到唯一最優解。

  1、線性可分SVM.

  當樣本集線性可分時,可得到分離超平面爲: w*.x+b=0, 決策函數爲:f(x)=sign(w*.x+b);

 

  函數間隔與幾何間隔:樣本點(xi,yi)到超平面的距離爲r1=yi*(w.xi+b),其中xi表示特徵向量,yi取值{-1,+1}。注意當w和b成倍增加時,分類超平面沒變,但是函數間隔成倍增加,所以通常採用規範化後的幾何間隔:r2=r1/||w||。

       最大間隔分離超平面問題即轉化爲一下約束最優化問題:

       max.w,b r1/||w||; s.t. yi*(w.xi+b)>=r1;i=1,2,……N。

       若成比例變化w和b,r1也會相應變化,分離超平面不變;所以r1的值不影響約束條件,也不影響最優化結果。可令r1=1,問題轉化爲;

      max.w,b 1/||w||; s.t. yi*(w.xi+b)>=1;

即: min.w,b  (1/2)*||w||^2; yi*(w.xi+b)-1>=0;i=1,2,……N。是一個凸二次規劃問題。

    支持向量的含義:訓練集的樣本中與分離超平面最近的樣本實例爲支持向量,這些點滿足:yi*(w.xi+b)-1=0。在決定分離超平面時只有這些點起作用,支持向量到超平面距離爲:1/||w||。正負支持向量所在之間超平面之間的距離爲:2/||w||,稱爲間隔邊界。

2、線性SVM

     當樣本集不是線性可分時,但去除個別奇異點後樣本集還是線性可分的,意味着某些樣本點不能滿足yi*(w.xi+b)>=1的約束條件。需要引入鬆弛變量si>0,使yi*(w.xi+b)>=1-si;同時,對每個鬆弛變量,都是對目標函數的一個懲罰,目標函數(1/2)*||w||^2就變爲:(1/2)*||w||^2+C*SUM(si)1...N 。C>0爲懲罰參數,一般由具體問題決定,C大時對誤分類懲罰增大,C小時對誤分類懲罰減小。

    即線性SVM問題轉化爲:

    min.w,b.si  (1/2)*||w||^2+C*SUM(si)1...N  ;目標函數一方面使分類間隔最大,另一方面使誤分類個數儘量少。

     s.t. yi*(w.xi+b)>=1-si, si>0,i=1,2,……N

    訓練結果同樣可得到,分離超平面爲: w*.x+b=0, 決策函數爲:f(x)=sign(w*.x+b);

 

3、非線性SVM

     當輸入空間的樣本T={(x1,y1),(x2,y2),...(xN,yN)},無法用線性模型分開,但可以用一個超曲面分開時,稱之爲非線性可分問題。若想用線性方法解決此問題,就需要將原空間數據通過非線性變換映射到新的特徵空間,使其在新空間裏是線性可分的,就可以採用線性方法了。

     最常用的就是核方法,通常情況下要知道準確的映射是很難的,可以通過核技巧,在學習和預測中只定義核函數K(xj,xi),而不必顯示的定義映射函數。通過K(xi,xj)就可以計算x和y在映射空間的內積,這樣在線性方法中的<x,y>就可直接用K(xi,xj)替換。

    核函數的選取要滿足一定的條件,通常所說的核函數都是正定核函數。K(xi,xj)是正定核函數的充要條件是:對任意{x1,x2,……},K(xi,xj)的Gram矩陣是正定的。現在常用的用多項式核函數,高斯核函數,字符串核函數。

 

 

 


      

 

 

 

 

 


 

 

 

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