支持向量機數學證明與推導(SVM)

支持向量機(SVM)

@(數據挖掘)[svm]


一、線性可分支持向量機和硬間隔最大化

  1. 名詞解釋

    線性可分:就是指給定一組數據集T={(x1,y1),(x2,y2),,(xN,yN)} ,其中,xiχ=Rn,yiγ={+1,1},i=1,2,,N ,如果存在某個超平面S,wx+b=0 ,能夠將整個數據集的正實例和負實例完全正確地劃分到超平面的兩側,則稱這個數據集T是線性可分數據集(linearly separable data set);否則就是線性不可分的。
    硬間隔最大化,也就是線性可分支持向量機,在線性可分數據集上利用間隔最大化求最優分離超平面的過程

  2. 首先從點到直線的距離發散到高維易知,|wx+b| 能夠相對的表示點x 到超平面的距離,而wx+b 的符號與類標記y 的符號是否一致能夠表示分類是否正確,所以:

    γi^=yi(wx+b)

    可以用來表示數據集中每個點分類正確性和到分割超平面距離(也可以稱爲分類置信度大小),也叫超平面(w,b) 關於樣本點(xi,yi) 的函數間隔。
    我們可以進一步定義超平面關於整個數據集T的函數間隔爲數據集T中所有點到超平面函數間隔的最小值:
    γ^=mini=1,,Nγi^

    但是可以發現,我們同時按比例增大wb ,超平面仍然是wx+b 沒有變,但是函數間隔卻同樣按比例變化了,所以我們對分離超平面的法向量w 加了約束,使得w=1 ,也就是間隔值不會改變,這時函數間隔變成了幾何間隔,記做:
    γi=yi(wwx+bw)

    則同理數據集到超平面的幾何距離爲:
    γ=mini=1,,Nγi
  3. 進一步,我們的線性可分支持向量機就變成了一個約束最優化問題:
    maxw,bγ

    s.t.yi(wwx+bw)γ,i=1,2,,N

    即是最大化幾何間隔的問題,接着根據函數間隔與幾何間隔的關係,我們易得:
    maxw,bγ^w

    s.t.yi(wx+b)γ^,i=1,2,,N

    然後我們可以看到函數間隔γ^ 的取值並不改變上述最優化問題的解,所以我們可以取γ^=1 ,帶入上式,再通過簡單變換,將最大化問題變成最小化問題,得到:
    minw,b12w2

    s.t.yi(wx+b)10,i=1,2,,N

    而上述兩式就是我們最終的線性可分支持向量機學習算法
    而滿足條件的最優w,b 就構成我們的分離超平面:
    wx+b=0

    分類決策函數爲:
    f(x)=sign(wx+b)

二、線性可分支持向量機的對偶算法(應用拉格朗日對偶,簡化原始優化問題爲求解對偶問題)

  1. 爲了上述線性可分支持向量機的最優化問題求解更簡單,我們對上述最優化問題應用拉格朗日對偶性,通過求解對偶問題得到原始問題的最優解。也叫線性可分支持向量機的對偶算法。
    優點:

    • 對偶問題的解通常更容易求得
    • 自然引入核函數技巧,進而推廣到非線性分類問題上
  2. 證明過程這裏不再說明,主要就是爲每個樣本引入一個拉格朗日乘子αi ,使得原始問題等價於一個極大極小值問題,然後將其中求極小值部分先用求偏導方法得到w,b 的極值關於αi 的表示方法,帶入原式,從而去掉求關於w,b 的極大值問題,最後變成單純的求關於αi 的極小值問題。

  3. 具體算法如下:

    • 下式中的αi 爲引入的拉格朗日乘子,N爲樣本數
      minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi

      s.t.i=1Nαiyi=0

      αi0,i=1,2,,N

      求得最優解α=(α1,α2,,αN)T .
    • 在計算
      w=i=1Nαiyixi

      選擇一個αj>0 , 下式中xj,yj 就是該正乘子對應的樣本特徵向量和標籤
      b=yji=1Nαiyi(xixj)
    • 從而易知超平面爲:
      wx+b=0

      分類決策函數爲:
      f(x)=sign(wx+b)

需要注意的是,從原始問題到對偶問題的關係中,我們容易看出,訓練集中對應αi>0 的樣本點(xi,yi) 爲支持向量

三、線性支持向量機與軟間隔最大化

  1. 之前我們提到線性可分支持向量機是針對數據集線性可分的情況下得到的,但是實際情況中大部分的數據集是線性不可分的,這時我們就要修改硬間隔最大化爲軟間隔最大化。

  2. 線性不可分,其實說白了就是有些樣本(xi,yi) 不能滿足函數間隔大於等於1的約束條件,所以自然我們想到放鬆約束條件,爲每個樣本引入一個鬆弛變量ξi0 ,是的約束條件的函數間隔加上鬆弛變量大於等於1,則約束變成了:

    yi(wxi+b)1ξi

    同時,對於鬆弛變量,我們要在原目標函數加入一個懲罰項,則變爲:
    12w2+Ci1Nξi

    這裏,C>0 成爲懲罰參數,可以看出C越大隊伍分類懲罰越大,C越小對誤分類懲罰變小, 上式其實有兩個作用:12w2 儘量小即間隔儘量大,但同時又要讓誤分類的個數儘量少,這是個trade-off問題,由C控制平衡
  3. 所以這時我們的問題線性支持向量機變成如下凸二次規劃問題:

    minw,b,ξ12w2+Ci1Nξi

    s.t.yi(wxi+b)1ξi,i=1,2,,N

    ξi0,i=1,2,,N

四、線性支持向量機的對偶算法

  1. 證明過程完全類似於線性可分支持向量機的對偶算法,這裏不再贅述。
  2. 對偶算法爲:
    • 下式中的αi 爲引入的拉格朗日乘子,N爲樣本數
      minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi

      s.t.i=1Nαiyi=0

      0αiC,i=1,2,,N

      求得最優解α=(α1,α2,,αN)T .
    • 在計算
      w=i=1Nαiyixi

      選擇一個0<αj<C , 下式中xj,yj 就是該乘子對應的樣本特徵向量和標籤
      b=yji=1Nαiyi(xixj)
    • 從而易知超平面爲:
      wx+b=0

      分類決策函數爲:
      f(x)=sign(wx+b)

需要注意的是,由於這裏的b的最優解肯定不止一個,所以往往取所有符合條件的樣本點上的平均b值
這裏的支持向量定義更復雜一點:
- 若0<αi<C,ξi=0 ,則支持向量剛好在分類間隔邊界上
- 若αi=C,0<ξi<1 ,則分類正確,且支持向量在分類邊界與分離超平面之間
- 若αi=C,ξ=1 ,則支持向量剛好在分離超平面上
- 若αi=C,ξ>1 ,則支持向量在分離超平面誤分類一側

五、線性支持向量機的另外一種合理解釋

  1. 合頁損失函數:
    Alt text
    我們的線性支持向量機可以看成是最小化一個包含和也損失函數的目標函數:
    i=1N[1yi(wxi+b)]++λw2

    [z]+={z z>00 z0

    這個損失函數第一項就是一個關於函數間隔的合頁函數,只有當函數間隔y(wx+b) 大於1的時候損失爲0,否則就是1y(wx+b)
    原始線性支持向量機問題爲:
    minw,b,ξ12w2+Ci1Nξi

    s.t.yi(wxi+b)1ξi,i=1,2,,N

    ξi0,i=1,2,,N

    而我們很容易證明原始線性支持向量機問題等價於最優化問題
    minw,bi=1N[1yi(wxi+b)]++λw2

    證明過程大致是令[1yi(wxi+b)]+=ξi ,則易知ξi0 ,符合原始約束2,通過分析也易得yi(wxi+b)1ξi ,此時元最優化問題變成:
    minw,bi=1Nξi+λw2

    λ=12C ,則
    minw,b1C(12w2+Ci=1Nξi)

    所以得證與原始線性支持向量機問題等價

六、核技巧

  1. 其實核技巧核心思想就是:當前數據集的輸入特徵所在高維空間無法被線性超平面分隔,那麼我們就通過一個非線性變換,把輸入特徵空間轉換到另一個特徵空間,使得我們在原始特徵空間必須用超曲面分離的數據集,在轉換後可以用對應的超平面完美分隔。
  2. 而核函數就代表這種非線性變換函數,讓我們非線性可分的數據集通過轉換可以變成線性可分的,從而簡化模型學習,只需要用線性支持向量機就可以對數據進行模型的學習。
  3. 常用的核函數有多項式核函數、高斯核函數、字符串核函數

注:本文參考李航的《統計學習方法》

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