1. 線性支持向量機(SVM)基本原理
1.1 線性SVM要解決的問題
給定訓練樣本集
D={(x1,y1),(x2,y2),...,(xm,ym),yi∈{−1,+1}}, 支持向量機的基本思想就是基於訓練集
D在樣本空間中找到一個超平面,將不一樣類別的樣本分開。可是可以將訓練樣本分開的超平面有不少,咱們應該找哪個呢?html
圖1
直觀上看,應該尋找兩類訓練樣本中「正中間」的超平面,即圖1中最粗的線。這條線可以將兩類樣本分隔開,而且對新的樣本泛化能力強,最具魯棒性。
在樣本空間中,超平面能夠用以下線性方程描述:
wTx+b=0(1)web
其中
w=(w1;w2;,...,wd)爲法向量,決定了超平面的方向,
b爲位移項,決定了超平面與原點之間的距離。咱們將超平面記爲
(w,b).
假設超平面
(w,b)可以將訓練樣本正確分類,即對於
(xi,yi)∈D,若
yi=+1,則有
wTxi+b>0;若
yi=−1,則有
wTxi+b<0。經過縮放,令:
{wTxi+b≥+1,yi=+1wTxi+b≤−1,yi=−1(2)
如圖2所示,距離超平面最近的這幾個點使得式
(2)等號成立,它們被稱爲「支持向量」(support vector),兩個異類支持向量到超平面的距離之和爲:
γ=∣∣w∣∣2,(3)app
它被稱「間隔」(margin)。svg
圖2
要找到「最大間隔」(maximum margin)的超平面,也就是要找到知足式
(2)中約束參數
w和
b,使得
γ最大,即:
w,bmax∣∣w∣∣2s.t. yi(wTxi+b)≥1, i=1,2,...,m.(4)函數
爲了方便後續的計算,咱們將式
(4)重寫爲:
w,bmin21∣∣w∣∣2s.t. yi(wTxi+b)≥1, i=1,2,...,m.(5)優化
這就是SVM的基本型。spa
1.2 對偶問題
式(5)是一個凸二次規劃(convex quadratic programming)問題,能直接用現成的優化計算包求解,可是咱們可有用更高效的辦法。對式(5)每條約束添加拉格朗日乘子
αi≥0,則該問題的拉格朗日函數能夠寫爲:
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))(6)3d
其中,
α=(α1;α2;...;αm)。令
L(w,b,α)對
w 和
b的偏導爲零可得:
w=i=1∑mαiyixi,(7)orm
0=i=1∑mαiyi,(8)xml
將式(7)和(8)代入式(6)中,獲得式(6)的對偶問題:
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyixiTxjTs.t. i=1∑mαiyi=0,αi≥0, i=1,2,...,m.(9)
求解獲得
α後,能夠求得
w 和
b,最終獲得分類模型:
f(x)=wTx+b=i=1∑mαiyixiTx+b.(10)
上述過程須要知足KKT條件(Karush-Kuhn-Tucher),即求:
⎩⎪⎨⎪⎧αi≥0;yif(xi)−1≥0;αi(yif(xi)−1)≥0;(11)
因而,對於任意訓練樣本
(xi,yi),總有
αi=0 或
yif(xi)=1。若
αi=0,則該樣本不會再式(10)中出現,也就不會對分類器有任何影響;若
αi≥0,則必有
yif(xi)=1,所對應的樣本點位於最大間隔邊界上,是一個支持向量。所以,最終模型僅與支持向量有關。