支援向量機
對於給定樣本集d=
,yi∈
,找到乙個劃分超平面將不同類別的樣本分開。劃分超平面的線性方程描述為:wt
x+b=
0,其中w=
(w1;
w2;.
..;w
d)為法向量,決定了超平面的方向;b為位移項,決定超平面到原點的距離。空間中任意一點到超平面的距離為r=
|wtx
+b||
|w||
. 將w
tx+b
>
0 的樣本輸出取值為1,wt
x+b<
0 的樣本輸出取值為-1.這樣正確分類的樣本滿足y(
wtx+
b)>
0 ,而錯誤分類樣本滿足y(
我們可以找到多個可以分類的超平面將資料分開,並且優化時希望所有的點都離超平面遠。但是實際上離超平面很遠的點已經被正確分類,我們讓它離超平面更遠並沒有意義。反而我們最關心是那些離超平面很近的點,這些點很容易被誤分類。如果我們可以讓離超平面比較近的點盡可能的遠離超平面,那麼我們的分類效果會好有一些。svm的思想起源正起於此。
如下圖所示,分離超平面為wt
x+b=
0 ,如果所有的樣本不光可以被超平面分開,還和超平面保持一定的函式距離(下圖函式距離為1),那麼這樣的分類超平面是比感知機的分類超平面優的。可以證明,這樣的超平面只有乙個。和超平面平行的保持一定的函式距離的這兩個超平面對應的向量,我們定義為支援向量,如下圖虛線所示。
支援向量到超平面的距離為1|
|w||
,兩個支援向量之間的距離為2|
|w||
,也成為「間隔」。
svm的模型是讓所有點到超平面的距離大於一定的距離,也就是所有的分類點要在各自類別的支援向量兩邊。欲找到最大間隔的劃分超平面,只需要最大化||
w||−
1 ,即最小化12
||w|
|2.以及滿足約束條件yi
(wtx
i+b)
≥1,i
=1,2
,...
,m上述兩式就是支援向量機(support vector machine)的基本型
對偶問題
任何乙個求極大化的線性規劃問題都有乙個求極小化的線性規劃問題與之對應,反之亦然,如果我們把其中乙個叫原問題,則另乙個就叫做它的對偶問題,並稱這一對互相聯絡的兩個問題為一對對偶問題。
對每個約束條件新增拉格朗日乘子αi
≥0,該問題的拉格朗日函式寫為:l(
w,b,
α)=1
2||w
||2+
∑i=1
m(1−
yi(w
txi+
b))
。 由於引入了朗格朗日乘子,我們的優化目標變成:mi
n
w,bm
ax
α
i≥0l
(w,b
,α)
我們的這個優化函式滿足kkt條件,也就是說,我們可以通過拉格朗日對偶將我們的優化問題轉化為等價的對偶問題來求解。也就是說,現在我們要求的是:ma
x
αi
≥0mi
n
w,bl
(w,b
,α)
從上式中,我們可以先求優化函式對於w和
b 的極小值。接著再求拉格朗日乘子
α 的極大值。
支援向量機訓練完成後,大部分的訓練樣本都不需要保留,最終模型只於支援向量有關。
軟間隔之前的是假定樣本是線性可分的,存在超平面可以將不同類別的樣本完全劃分開。然而實際中存在難以劃分的情況,因此引入的「軟間隔」的概念,允許在一些樣本上出錯。
在軟間隔下允許某些樣本不滿足約束yi
(wtx
i+b)
≥1.當然,不滿足約束的樣本應盡可能的少。引入鬆弛變數ξi
≥0,i
=1,2
,...
,m,即min12
||w|
|2+c
∑i=1
mξi
yi(w
txi+
b)≥1
−ξi
這就是常用的「軟間隔支援向量機」
ξ 有3種常見的損失函式:hi
nge損
失lhi
nge(
z)=max(0
,1−z
); 指
數損失l
exp(
z)=e
xp(−
z);
對率損失
llog(z
)=log(1+
exp(
−z))
; 軟間隔支援向量機可以寫為更一般的形式:
minfω(
f)+c
∑i=1
ml(f
(xi)
,yi)
其中ω(
f)稱為「結構風險」,用於描述模型
f 的某些性質;二項式∑m
i=1l
(f(x
i),y
i)稱為「經驗風險」,用於描述模型和訓練資料的契合程度;
c 用於對二者的折中。從經驗風險最小化的角度來看ω(
f)表述了我們希望獲得具有何種性質的模型;另一方面,該資訊有助於削弱假設空間,從而降低最小化訓練誤差的過擬合風險。從這個角度也可以稱為「正則化問題」,ω(
f)為正則化項,
c 為正則化常數。正則化可以理解為罰函式,對結果施以懲罰,從而是優化過程趨於希望目標。
支援向量機(一)
本篇是學習svm的初學講義,希望能夠對大家有所幫助。svm涉及到很多拉格朗日對偶等最優化知識,強烈推薦大家學習 最優化計算方法 不然理解svm會遇到很多困難。學習之前強烈推薦先玩一玩林智仁的svm toy.exe,對理解svm很有幫助,鏈結在 好了,接下來我們開始svm的學習。在本文中,會盡量避免一...
支援向量機 一)
最近在看史丹福大學的機器學習的公開課,學習了支援向量機,再結合網上各位大神的學習經驗總結了自己的一些關於支援向量機知識。一 什麼是支援向量機 svm 1 支援向量機 support vector machine,常簡稱為svm 是一種監督式學習的方法,可廣泛地應用於統計分類以及回歸分析。支援向量機屬...
支援向量機(一)
支援向量機 svm 有嚴格的數學基礎和推導理論的模式識別方法,是針對小樣本的的統計學理論,基於結構風險最小化原則,演算法在優化過程中具有全域性最優解,泛化能力也比較突出,是一套優秀的機器學習技術。機器學習是乙個不斷學習發展加深的過程,正如乙個讀書人學習svm的時候,他看書的境界分為三層,如先讀資料探...