支持向量機(SVM)推導

1.svm定義

  SVM從線性可分情況下的最優分類面發展而來 。最優分類面就是要求分類線不但能將兩類正確分開( 訓練錯誤率爲0),且使分類間隔最大。SVM 考慮尋找一個滿足分類要求的超平面,並且使訓練集中的點距離分類面儘可能的遠,也就是尋找一個分類面 使它兩側的空白區域(Margin) 最大 。如下圖所示:
這裏寫圖片描述
左邊是一個分類超平面,但是不是最佳的,顯然右邊的分類超平面是最佳的,我們的目標就是要找到最佳的分類超平面。

2.間隔最大化

   先給出一般的線性分類超平面的定義:
樣本集{xn,tn},n=1,2,...,N,xnRd,tn{1,1}
分類器:y(x)=wTx+b

tn={1,1,y(xn)>0y(xn)<0

也就是如果預測值大於0則爲類別1,預測值小於0則爲類別-1。總之,有:
tny(xn)>0

  樣本集任意一點xn 到分類面( 滿足 tny(xn)>0 ) 的距離爲:

tny(xn)||w||=tn(wTxn+b)||w||

這類似於點到直線的距離的求發。假設有一條直線:x1+x2+2=0 ,我們求點(xi,xj) 到該直線的舉例就是xi+xj+2x21+x22 ,只是上面的分母它用了一個向量的形式來表示所有的變量(w1,w2,...,wm)

   而SVM要找的分類平面是,使得離該平面最近的點(邊界點)離該平面的距離儘可能的遠,用數學公式表示就是:

argmaxw,b{1||w||minn[tn(wTx+b)]}

裏面表示距離分類面最近的點的距離,外面表示使得該距離最大。因爲距離平面最近的點對應的tn(wT+b) 必定爲某個正數k ,我們假設該值就是1,並不會影響參數w,b 的取值。例如點(2,1)2x1+3x24 中的取值爲3,要使得該值爲1,只需要相應的w,b 同時縮小爲原來的13 ,即變爲23x1+x243 ,但是表示的仍然是同一條直線。所以原問題就轉化爲:
argmaxw,b{1||w||}

並且上面假設了離分類面最近的點的距離爲1,那麼其他點對應的tn(wT+b)>1

   因爲問題轉化爲最大化||w||1 ,等價於最小化12||w||2 ,則上述問題可以用下面的數學表達式來描述:

argminw,b12||w||2,s.t.tn(wTx+b)1

解這種含不等式約束的極值點要用拉格朗日乘子法,構造拉格朗日函數如下:
L(w,b,a)=12||w||2n=1Nan(tn(wTx+b)1),an>0

其中an 是拉格朗日乘子,是一個正數。
對於上述的L(w,b,a) ,對它的最大值進行討論。
1.當tn(wTx+b)>=1 時:
   顯然有(wTx+b)10 ,又an 是一個正數,所以
n=1Nan(tn(wTx+b)1)0
所以:
L(w,b,a)=12||w||2n=1Nan(tn(wTx+b)1)=12||w||2

所以,很顯然這種情況下maxL(w,b,a)=12||w||2

2.當tn(wTx+b)<1 時:
   顯然有(wTx+b)10 ,又an 是一個正數,所以該累加項趨近於負無窮,即Nn=1an(tn(wTx+b)1) 趨於 ,所以maxL(w,b,a) 值是趨近於+
總結之後就是:

maxL(w,b,a)={12||w||2,+,tn(wTx+b)>=1tn(wTx+b)<1

又前面假設中已經有任意點都滿足tn(wTx+b)>=1 ,所以maxL(w,b,a) =12||w||2

   然後我們再回到原始的優化問題:

argminw,b12||w||2,s.t.tn(wTx+b)1

因爲maxL(w,b,a) =12||w||2 ,用L(w,b,a) 替換w ,所以該問題就等價於:
argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)1

但是這樣不容易求解,我們需要考慮它的對偶問題。

3.拉格朗日對偶性

  求下面極值:

minwf(w)

在等式約束下的極值問題s.t.hi(w)=1,...,l
L(w,β)=f(w)+i=1lβihi(w)

在不等式約束下的極值問題s.t.gi(w)0,i=1,...,k;hi(w)=1,...,l
L(w,α,β)=f(w)+i=1kαigi(w)+j=1lβjhj(w)

   定義θP(w)=maxα,βL(w,α,β),s.t.αi0 ,只有滿足基本約束條件時,θP 纔會有最大值,基本約束條件就是上面不等式約束下的那些約束條件:

θP(w)={f(w),+,if w satisfies premal constraintsotherwise

  原問題minwf(w) 轉化爲minwθP(w)=minwmaxα,βL(w,α,β) ,記爲p ,直接求解不容易,需要轉向另一個問題θD(w)=minwL(w,α,β) ,先固定α,β ,然後再求拉格朗日函數關於w 的最小值,之後再求θD(w) 的最大值。即:

maxα,βθD(w)=maxα,βminwL(w,α,β)

該問題是原問題的對偶問題,記爲d ,很容易推出有下面大小關係:
d=maxα,βminwL(w,α,β)minwmaxα,βL(w,α,β)=p

即最小值的最大取值一定要小於等於最大值的最小取值。

  爲了使得原問題的解和對偶問題的解相等,即p=d ,必須使得它們的解(w,α,β) 滿足KKT條件,即:
    wiL(w,α,β)=0,i=1,...,n
    βiL(w,α,β)=0,i=1,...,l
    αigi(w)=0,i=1,...,kKKT
    gi(w)0,i=1,...,k
    a0,i=1,...,k

如果(w,α,β) 都滿足KKT條件,那麼它們就是原問題和對偶問題的解。
補充條件隱含如果 a>0 ,那麼gi(w)=0 , 即w 處於可行域的邊界上,是起作用的(Active) 約束 ,而位於可行域內部的點都是不起作用的約束,其 a=0

4.最優間隔分類器

  接到第2小節,該優化問題:

argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)1

轉化爲對偶問題就是:
argmaxaminw,bL(w,b,a),s.t.tn(wTx+b)1

該對偶問題表示,先求L(w,b,a) 關於參數w,b 的最小值,然後再求關於參數a 的最大值。關於參數w,b 的最小值,直接求導,找到極值點。
  L(w,b,a)=12||w||2Nn=1an(tn(wTx+b)1),an0

wL(w,b,a)=0wn=1Nantnxn=0

bL(w,b,a)=0n=1Nantn=0

w=Nn=1antnxnNn=1antn=0 帶入原L(w,b,a) ,可以求得
L(w,b,a)=n=1Nan12i=1Nj=1NaiajtitjxTixj

        s.t.ai0,Ni=1aiti=0

推導過程爲:
這裏寫圖片描述

  注意變換過的L(w,b,a) 式子中,xi 表示第i個樣本,是已知的;ti 表示第i個樣本對應的類別值,爲1或-1,也是已知的;所以該式子中僅有一個參數a 是未知的。所以進一步的優化就是找到某一組a ,讓L(w,b,a) 取得最大值,而只要找到一組a ,它能夠使得所有的樣本都滿足KKT條件時,便能夠取得最大值。具體的實現算法參考SMO算法

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