1. 程式人生 > >帶你搞懂支援向量機SVM演算法原理

帶你搞懂支援向量機SVM演算法原理

一、原理

1. 線性可分支援向量機

問題的輸入輸出
X = {x1,x2,...,xn}
Y = {+1, -1}

模型:
感知機的目的是找到一個可以正確分類資料的超平面S:ωx+b=0, 得到感知機模型 f(x)=sign(ωx+b),其中ωx+b>0為正類,ωx+b<0為負類。SVM和感知機最大的差別就是SVM尋找的間隔最大的超平面,所謂間隔,可以理解為例項點到超平面最小的距離,所以SVM找的是把資料正確分隔的”最開”的超平面。

間隔
函式間隔:對於給定的訓練資料集T和超平面(

ω,b), 定義超平面關於樣本點(xi,yi)的函式間隔為 γ^i=yi(ωxi+b)
幾何間隔:對於給定的訓練資料集T和超平面(ω,b), 定義超平面關於樣本點(xi,yi)的幾何間隔為 γi=1||ω||yi(ωxi+b)=γ^i||ω||

所以我們可以建立模型:

輸入: T={(x1,y1),(x2,y2),,(xi,yi)}
輸出: 分離超平面:ωx+b=0 決策函式:

f(x)=sign(ωx+b)

策略:
接下來的問題就是找到間隔最大的超平面,記超平面關於例項點的的幾何間隔【1||ω||yi(ωxi+b)γi 】, 定義超平面關於所有例項點的幾何間隔為【γ=maxγi】, 則問題就可以寫成【 maxω,bγs.t.yi(ωxi+b)γi
有幾何間隔和函式間隔的關係,問題可以改寫為【maxγ^||ω||】【