一般的,當訓練樣本線性可分的時候,如下圖所示:
可以找到無數個劃分超平面。而線性可分支持向量機利用間隔最大化來求最優劃分超平面,此時解是唯一的。
通過間隔最大化或者對應的凸二次規劃問題學習到的分離超平面爲:
w∗⋅x+b∗=0
對應的決策函數爲:
f(x)=sign(w∗⋅x+b∗)
我們稱上面的的式子爲線性可分的支持向量機。
函數間隔與幾何間隔
給定分離超平面
w⋅x+b=0,
∣w⋅x+b∣能相對的表示x到超平面的距離。通過分析標籤值y與
w⋅x+b符號的是否一致能夠表示分類是否正確,於是可以用
y(w⋅x+b)的符號來表示是否分類正確及確信度,這就是函數間隔。爲此,對於樣本
(xi,yi)我們定義函數間隔
γ^i爲:
γ^i=yi(w⋅xi+b)
對於有N個樣本的數據集T,定義數據集T的函數間隔爲:所有樣本點的函數間隔的最小值,即:
γ^i=i=1,2,...,Nminγ^i=i=1,2,...,Nminyi(w⋅xi+b)(1)
如果成比例的改變w和b爲2w和2b,那麼函數間隔變爲了原來2倍,爲了消除這樣的影響,我們限定L2範數
∥w∥=1,此時函數間隔就成爲了幾何間隔。
下圖給出了超平面
(w,b)及其法向量w:
點A表示某一實例
(xi,yi),A到超平面的距離由AB給出,記作
γi:
γi=∣∣w∣∣w⋅xi+b
無論樣本是正例還是負例,當樣本被正確分類時,到超平面的距離爲:
γi=∣∣w∣∣yi(w⋅xi+b)
我們定義上面的式子爲某個樣本到超平面的集合間隔。
對於有N個樣本的數據集T,定義數據集T的幾何間隔爲:所有樣本點的幾何間隔的最小值,即:
γ=i=1,...,Nminγi=i=1,...,Nminγi∣∣w∣∣yi(w⋅xi+b)(2)
由函數間隔和幾何間隔的定義(1),(2)可知:
γi=∣∣w∣∣γ^i
γ=∣∣w∣∣γ^(3)
如果限定
∥w∥=1,那麼函數間隔就等於幾何間隔。
SVM模型
對於線性可分的數據可以找到無數個將數據劃分的超平面,但是距離超平面較遠的點對超平面的確定沒有很大的影響。因此,我們把注意力放在距離超平面較近的點上,如下圖中紅色框選擇的點。如果我們讓距離超平面最近的點(圖中)到超平面的距離最大化,那麼就可以認爲這樣的劃分超平面即使對於較難分類正確的點,也能得到較好的劃分結果。
線性可分的SVM目標是找到間隔最大化的劃分超平面,所謂間隔最大化是指:對給定的數據集的點,劃分超平面不僅可以可以區分正例負例,而且還能使得最難分類的點有足夠大的確信度使得他們分開,這樣的平面對未知的樣本實例有更好的分類能力。
要求幾何間隔最大的分離超平面,可以轉化爲求解下面的最優化問題:
w,bmaxγs.t.∣∣w∣∣yi(w⋅xi+b)≥γi=1,2,...,N
由由函數間隔和幾何間隔關係的公式(3)可以將問題轉化爲:
w,bmax∥w∥γ^s.t.yi(w⋅xi+b)≥γ^i=1,2,...,N
根據上面的式子,不難得出,SVM的思想是:讓距離劃分超平面最近的點(支持向量)到劃分超平面的距離最大化。
實際上,當我們成倍的改變
w,b爲
λw,λb,函數間隔也變爲
λγ^ ,並不能改變約束條件中的不等式的關係。因此,爲了簡化計算,我們可以取
γ^=1。並且,最大化
∥w∥1和最小化
21∥w∥2等價,於是優化目標轉化爲:
w,bmin21∣∣w∣∣2;s.t1−yi(w⋅xi+b)≤0(i=1,2,...m)(4)
顯然式子(4)是凸二次規劃問題。要注意的是,訓練樣本中存在某些樣本點使得約束條件取得等號:
yi(w⋅xi+b)−1=0
這樣的點就是上面圖片中紅色方框對應的點,他們位於和決策超平面距離爲1的位置上,我們稱這樣的點叫做支持向量。在決定分離超平面的時候,只有這些支持向量起到了作用。由於支持向量對分離超平面的決定性作用,所以將這樣的分類模型叫做支持向量機。
SVM求解
爲了求解支持向量機的最優化模型(4),我們需要使用拉格朗日對偶性來得到對偶問題,間接得到原始問題的最優解。這麼做的好處是
- 對偶問題的計算量更小,更容易求解。
- 自然的引入核函數,進而推廣到非線性可分問題。
首先需要構造拉格朗日函數,引入拉格朗日乘子
αi≥0後,得到:
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi[1−yi(wTxi+b)](5)
其中,
α=(α1,α2,...,αm)爲拉格朗日乘子向量。
原始問題等價於:
w,bminαmaxL(w,b,α)
根據拉格朗日對偶性,所以原始問題的對偶問題是:
αmaxw,bminL(w,b,α)(6)
若原始問題與對偶問題有相同的解
w∗,b∗,α∗,則要滿足KKT條件:
∇wL(w∗,b∗,α∗)=w∗−i=1∑mαiyixi=0(KKT.1)∇bL(w∗,b∗,α∗)=−i=1∑mαiyi=0(KKT.2)α∗(yi(w∗Txi+b∗)−1)=0(KKT.3)yi(w∗Txi+b∗)−1≥0(KKT.4)ai∗≥0,i=1,2,...m(KKT.5)
其中公式(KKT.3)爲KKT對偶互補條件,可以知道當
α∗>0則有
(yi(w∗Txi+b∗)−1)=0,此時的樣本
xi對應的點爲支持向量。
所以我們通過求對偶問題的解間接得到原始問題的最優解,這樣可以簡小計算量,這就是SVM的對偶算法。
首先需要求
L(w,b,α)對
w,b的極小,再求對
α的極大。
假設:
ψ(α)=w,bminL(w,b,α)
將拉格朗日函數分別對w,b求偏導並令其等於0,得到:
∂w∂L(w,b,α)=0⇒w=i=1∑mαiyixi(7)
∂b∂L(w,b,α)=0⇒i=1∑mαiyi=0(8)
上面的式子已經得到了w和α的關係,只要我們後面求得使得對偶函數極大化的α,記得求得w。將式子(7),(8)代入(5)得到:
ψ(α)=21∣∣w∣∣2−i=1∑mαi[yi(wTxi+b)−1]=21wTw−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21wTi=1∑mαiyixi−i=1∑mαiyiwTxi−i=1∑mαiyib+i=1∑mαi=21wTi=1∑mαiyixi−wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi−i=1∑mαiyib+i=1∑mαi=−21wTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi=−21(i=1∑mαiyixi)T(i=1∑mαiyixi)−bi=1∑mαiyi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi−bi=1∑mαiyi+i=1∑mαi=−21i=1∑mαiyixiTi=1∑mαiyixi+i=1∑mαi=−21i=1,j=1∑mαiyixiTαjyjxj+i=1∑mαi=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
即:
ψ(α)=w,bminL(w,b,α)=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
接下來,對
ψ(α)=w,bminL(w,b,α)求極大:
αmaxψ(α)=αmaxi=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj(9)
s.t.i=1∑mαiyixi=0αi≥0,i=1,2,...,N
將式子(9)的目標函數轉換成求極小,得到等級的對偶最優化問題:
αmin21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi(10)
s.t.i=1∑mαiyixi=0αi≥0,i=1,2,...,m
只要我們可以求出上式極小化時對應的α向量就可以求出w和b了。具體怎麼極小化上式得到對應的α,一般需要用到SMO算法,這個算法比較複雜,我們後面會專門來講。在這裏,我們假設通過SMO算法,我們得到了對應的α的值
α∗,那麼根據
w=i=1∑mαiyixi可以得到對應的
w∗的值:
w∗=i=1∑mαi∗yixi
正如上文討論的,只有支持向量對決策平面有影響,其他樣本則沒有。選擇
α∗的任意一個正分量
αj∗>0,按下面的式子得到
b∗:
b∗=yj−(w∗)Txj=yj−i=1∑mαi∗yixiTxj
根據上面KKT條件中
α∗(yi(w∗Txi+b∗)−1)=0這個對偶互補條件,可以知道當
α∗>0則有
(yi(w∗Txi+b∗)−1)=0,此時的樣本
xi對應的點到劃分超平面的距離爲1,也就是所謂的支持向量。因此,任意
αj∗>0對應的樣本
xj爲支持向量。
假設我們有S個支持向量,對於任意支持向量
(xs,ys)可以解得
b∗。但是由於數據集T嚴格線性可分,所以劃分超平面是唯一的,於是通過任意支持向量
(xs,ys)得到的
b∗都是一樣的。
最終得到的劃分超平面爲:
w∗Tx+b∗=0
最終的分類決策函數爲:
f(x)=sign(w∗Tx+b∗)
線性可分SVM的算法流程
輸入:線性可分的m個樣本
(x1,y1),(x2,y2),...,(xm,ym),
輸出:分離超平面的參數
w∗和
b∗和分類決策函數。
(1) 構造優化問題:
αmin21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi
s.t.i=1∑mαiyixi=0αi≥0,i=1,2,...,m
(2) 採用SMO算法求出使得上式極小化的
α∗
(3) 計算
w∗=i=1∑mαi∗yixi
(4) 找到某個滿足
αj>0對應的支持向量
(xj,yj),計算:
b∗=yj−(w∗)Txj=yj−i=1∑mαi∗yixiTxj
(5) 得到劃分超平面與決策函數:
w∗Tx+b∗=0f(x)=sign(w∗Tx+b∗)
侷限性
本文介紹的是基於硬間隔最大化的SVM算法,對於線性不可分的數據,由於異常點的存在,無法找到劃分超平面,本文的算法無法使用。下一篇介紹的軟間隔最大化SVM算法可以解決這裏問題。
參考文章:
《統計學習方法 第二版》
支持向量機原理(一) 線性支持向量機