機器學習(7)——支持向量機(一):從感知機到線性可分支持向量機

前言

支持向量機(support vector machine)本來是最早接觸的機器學習算法,最初自己寫的的機器視覺論文也用到了SVM,但和神經網絡一樣,一直覺得它是比較複雜的機器學習方法,需要深入的學習和研究。因此先是系統推導了李航的《機器學習》,之後學習Andrew Ng的機器學習課程,並看了julypluskid等人的技術博客。也不能說自己完全懂了,只能算是學習筆記,總結一些自己能掌握的東西。
我在接觸SVM之初,深度學習已經比較火了,之所以還是運用SVM,一方面是因爲SVM本身是現成比較成熟的分類算法,另一方面是之前很多論文都說了SVM的可靠性,在各方面表現都不錯,而且有很多現成的資源(代表性有臺灣林智仁團隊的libsvmliblinear)。爲了快速應用機器學習,就選擇了SVM。最終發現裏面真的是博大精深,包含有太多不同的模型,涉及了大量的數學知識,而且至今仍是很多科研人員的研究方向。

感知機(回顧)

在之前總結感知機(perceptron)時介紹了感知機是神經網絡(Neural Networks)和支持向量機(support vector machine, SVM)的基礎。首先,我們來看感知機由輸入空間到輸出空間的映射函數,這與支持向量機是一樣的:

f(x)=sign(wTx+b)

其中sign函數的定義爲:
sign(x)={+1,1,x0x<0

wTx+b0 時,f(x)=1 ;而當wTx+b<0 時,f(x)=1
現在我們假設有如下圖所示的兩組數據,紅色表示正樣本+1,綠色表示負樣本-1,點所在位置爲樣本特徵值x 。對於二分類問題就是找到如圖所示的一條直線(高維對應超平面)能夠準確將兩類樣本進行分類。
對於上面定義的感知機,正樣本(紅點)在直線上面,則wTx+b0 ,對應感知機輸出結果f(x)=1 ,即分類爲正樣本。同理,當樣本點在直線下面時,wTx+b<0 ,對應感知機輸出結果f(x)=1 ,即負樣本。由此我們可以看出,在二維平面的直線wTx+b=0 就能夠將圖中的正負樣本正確分類。
這裏寫圖片描述
當樣本被錯誤分類時,樣本真實類別yiwTx+b 總是異號,則對錯分樣本yi(wTx+b)<0 。因此對於感知機來說,定義的損失函數爲:
L(w,b)=(xi,yi)Myi(wTx+b)

其中M是錯分樣本集合,即樣本被錯分之後就有一定的損失代價。分類器的最終目的也就轉爲求解使代價函數最小的分類邊界,在感知機中,只要求出使所有樣本都正確分類的超平面,則損失函數代價就爲0。
考慮到上圖所示的二分類問題,感知機最終的目的只是將兩類樣本正確分類,我們可以看出是有多條直線滿足該條件的,那麼到底哪條纔是最恰當的分類界限呢?這是感知機無法解決的問題。
從幾何直觀上來看,就上圖的二分類的問題 ,最佳決策邊界應該是圖中最近的紅點和黑點連線的中垂線(黑色圈中的兩個點),也就是說最佳決策邊界主要由最難分的兩個樣本點決定。這從感性上也比較好理解,因爲對於難分離的樣本,決策邊界稍微轉動一個角度,則有一個樣本就可能被錯分,即該樣本很大程度影響了決策邊界的分佈,反之,離得較遠的樣本點則不會有影響。這就是支持向量機中支持向量的直觀概念,下面我們先具體介紹線性可分支持向量機的一些知識。

線性可分支持向量機

通過上述介紹我們知道,感知機能夠對線性可分樣本進行正確分類,但是求得的分類超平面有很多,即決策邊界不一定是最優的。通過線性可分支持向量機利用間隔最大化求最優分離超平面,這時決策邊界是唯一的。
首先,通過下圖我們可以看出,A點離分類平面較遠,預測爲正樣本的確信度很高,C點離分類平面較近,預測爲正樣本的確信度較低。由此,我們可以看出樣本分類的可信度可以通過樣本點到分類邊界的距離來定義。其中,相對距離可以由|wTx+b| 給出,則 y(wTx+b) 可以用來表示分類的正確性(同號則分類正確,乘積大於0)及確信度(值越大表示離邊界越遠,可信度越高)。
這裏寫圖片描述
因此,我們定義樣本點(xi,yi) 到超平面的函數間隔(functional margin)

γi^=yi(wTxi+b)=yif(xi)

而訓練集 T函數間隔爲所有樣本點中離超平面最近的點到超平面的函數間隔,即:
γ^=mini=1,2,,Nγi^

γ^ 可以表示分類預測的正確性和確信度,因此可以通過最大化函數集 T 的函數間隔來增加分類的確信度。但是選擇最佳超平面時,僅有函數間隔還不夠,因爲當權重w 和偏置b 成倍改變時,超平面沒有變化,但是函數間隔卻改變了,並不能通過函數間隔簡單確定最佳的分類超平面。此時我們定義幾何間隔來解決這個矛盾。
如下圖所示,易證明:
xix0γi=w||w||

x0=xiγiw||w|| ,而x0xi 投影在超平面上的點,滿足f(x0)=0 ,則:
f(x0)=wT(xiγiw||w||)+b=0γi=wTxi+b||w||=f(xi)||w||

不過這裏的γi 是帶符號的,我們需要的只是它的絕對值,由此我們可以推導出幾何間隔(geometrical margin)的定義爲:
γi~=yiγi=γi^||w||

與函數間隔一樣,樣本集 T 到超平面的集合間隔爲:
γ~=mini=1,2,,Nγi~

這裏寫圖片描述
支持向量機學習的基本思想就是求解能夠正確劃分樣本集並且是幾何間隔最大的分離超平面,簡單來說就是求解區分度最大的超平面,即確信度最大的超平面。因此我們定義目標函數爲:
maxw,bγ~

但卻要滿足一定的限制條件,即樣本點到超平面的間隔至少都是γ~
s.t.yi(wTxi+b||w||)γ~,i=1,2,,N

又因爲γ~=γ^||w|| ,我們可以將優化問題改下爲:
maxw,bs.t.γ^||w||yi(wTxi+b)γ^,i=1,2,,N

根據上面討論我們知道,函數間隔γ^ 並不影響最優化問題解,因爲當權重w 和偏置b 成倍改變時,函數間隔也會成倍改變,而此時超平面並沒有改變。因此可以通過固定其中一個值,來優化最終的結果。因爲目標函數和約束條件中都帶有γ^ , 我們選擇固定γ^ 。 令γ^=1 ,且最大化1||w|| 與最小化12||w||2 (1/2爲調節係數,方便與優化計算)的效果是等價的。則我們的目標函數可以轉換爲:
minw,bs.t.12||w||2yi(wTxi+b)1,i=1,2,,N

通過求解這個最優化問題,我們就能夠得到最大間隔的分類超平面。如下圖所示:
這裏寫圖片描述
因爲我們前面固定最大函數間隔γ^=1 ,則在支持超平面上的點滿足:
H1:wTxi+b=1()H1:wTxi+b=1()

H1H2 上的點就是支持向量。注意到H1H2 平行,且他們是間隔邊界,他們之間沒有樣本點。在決定分類超平面時只有這些支持向量其作用,而其他樣本點並不起作用。也就是說如果改變這些支持向量點,分類超平面可能會改變,而改變甚至移除非支持向量點,分類超平面是不會改變的。正是因爲支持向量在確定分離超平面中起着決定性的作用,所以這種模型稱爲支持向量機。支持向量實際就是那些比較難以區分的樣例,支持向量機的目的就是使這些難以區分的樣例有最大的分類置信度。

PS:本處給出了線性可分支持向量機的一些基本概念和直觀認識,通過與感知機對比直觀上還是比較容易理解。難點在於目標函數的優化、線性不可分支持向量機以及非線性支持向量機的理解,將在後續筆記中進行介紹。

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