支持向量機(1)-概念及推導

之前一篇文章《Andrew機器學習課程筆記(3)—— K均值、SVM、PCA》有分析過SVM,但感覺不夠系統,也沒有算法落地

本篇及下一篇從“概念及推導”和“算法實現”兩個方面討論SVM
本篇包含:SVM基本概念、線性可分SVM、非線性可分SVM、帶有鬆弛變量的SVM


概念

支持向量機(SVM)是一種二類分類模型,其基本目標是找到一個分類平面,使得兩邊的特徵點與之距離(margin)最大。

          這裏寫圖片描述
               圖1-1. 二維空間線性SVM

圖1-1中落在藍色邊界的樣本稱爲支撐向量

對於非線性可分的情況,SVM通過引入核函數,將樣本映射到高維空間實現分類。
SVM一直被認爲是效果最好的現成可用的分類算法之一


線性可分SVM

目標函數推導

考慮線性分類器的超平面方程

f(x)=WTX+b=0(1)

使用sign的激活函數
y=sign(f(x))={1,1,WTX+b>0WTX+b<0(2)

由此可以得到樣本點到分類面的函數間隔(functional margin)
γf=y(WTX+b)=yf(x)(3)

乘上y可以保證間隔的非負性
同時,由點面距離可以得到幾何間隔(geometrical margin)
γg=yγ=γf||W||(4)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
幾何間隔的推導
參考文章《支持向量機: Maximum Margin Classifier》的評論
x 垂直投影到超平面的點爲x0γxx0 的距離標量
x=x0+γw||w||(5)

等式(5)兩邊左乘wT ,得 wTx=wTx0+γwTw||w||
又因爲 wTx=f(x)b ,代入,得 f(x)=wTx0+b+γwTw||w||=f(x0)+γwTw||w||
f(x0)=0 ,得 f(x)=γwTw||w||
於是有 γ=f(x)||w|| ,左乘 y 確保非負性,有 γg=yγ=yf(x)||w||=γf||w||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

可以看到,幾何間隔較函數間隔多了一個縮放因子||W|| ,從而避免了 wb 等比例縮放給測量值帶來的影響

由此確定 SVM 的目標函數

max(γg),s.t.yi(wTxi+b)γf(6)

爲了計算方便,固定 γf=1 ,得SVM最終目標函數
max(1||w||),s.t.,yi(wTxi+b)1(7)

目標函數求解

爲了方便,將SVM目標函數(7)做等價變形

min(12||w||2),s.t.,yi(wTxi+b)1(8)

根據拉格朗日乘子法,(8)式可以變爲求(9)式的極值
L(w,b,a)=12||w||2i=1nai(yi(wTxi+b)1)(9)

wbai 求偏導,有
Lw=wni=1aiyixiLb=ni=1aiyiLai=yiwTxi+yib1(10)

令各偏導爲0,得
w=ni=1aiyixi0=ni=1aiyib=1yjni=1aiyi(xi.xj)=yjni=1aiyi(xi.xj)(11)

這裏 yi=1yi 是因爲 yi={1,1}

事實上我們將式(11)中的 w 代入式(1),會有

f(x)=(i=1naiyixi)x+b=i=1naiyi<xi,x>+b(12)

也就是說,對於新點 x 的預測,只需要計算其與訓練數據點的內積即可

此外,非支持向量點對應的 ai ,其實取值爲0。因爲這些點對超平面沒影響。


非線性可分SVM

參考文章《支持向量機: Kernel》,考慮如圖2-1所示的數據分佈

              這裏寫圖片描述
               圖2-1. 兩類數據無法用線性分類器分類

圖1-2理想的分類面爲 a1x1+a2x21+a3x2+a4x22+a5x1x2+a6=0

爲了實現線性可分,可以將2維數據映射到5維

z1=x1z2=x21z3=x2z4=x22z5=x1x2(13)

於是有線性形式
i=15aizi+a6=0(14)

因此對於非線性可分的情況,理論上首先將數據做適當升維即可(對比式(12))

f(x)=i=1naiyi<ϕ(xi),ϕ(x)>+b(15)

但這樣一來會遇到“維數爆炸”的問題(高斯核會將數據升到無窮維),導致計算量急劇升高

SVM核函數的做法是:在原始維度以某種函數做運算,確保與升維內積一個效果

K(x1,x2)=(<x1,x2>+1)2(16)

常用的核函數:
  • 多項式核
    K(x1,x2)=(<x1,x2>+R)d

    維度映射 Rm>Rm+d
  • 高斯核
    K(x1,x2)=e||x1x2||22σ2

    維度映射 Rm>
    • 如果 σ 很大,高次特徵的權重衰減的很快,近似於映射到一個低維空間
    • 如果 σ 很小,則可以將任意數據映射爲線性可分。但有可能出現過擬合問題
    • 因此通過調節 σ ,高斯核具有相當高的靈活性。是使用最廣泛的核函數之一
  • 線性核
    K(x1,x2)=<x1,x2>

    退化爲線性SVM

帶有鬆弛變量的SVM

由於不可避免的噪聲,有些數據會偏離正常位置很遠,給SVM分類平面帶來很大影響(圖3-1)

             這裏寫圖片描述
             圖3-1. 被黑圈包圍的藍點是異常點(outlier),需要被排除

如式(17)所示,引入一個鬆弛變量 ξi

min(12||w||2+Ci=1nξi)s.t.,{yi(wTxi+b)1ξiξi0(17)

參考

【1】Free Mind 支持向量機系列
【2】支持向量機(Support Vector Machines-SVM)算法筆記(一)-Python


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