支持向量機(SVM):基本原理

轉載自:http://www.wangxianfeng.name/2012/10/svm-basic-theory/

線性可分支持向量機與間隔最大化

給定線性可分訓練數據集,通過間隔最大化或等價地求解相應的凸二次規劃問題學習得到的分離超平面爲

SVM

以及相應的分類決策函數

SVM

稱爲線性可分支持向量機。

間隔最大化涉及到函數間隔和幾個間隔的概念,下面首先對它們進行介紹。

函數間隔和幾何間隔(Function Margin & Geometric Margin)

我們可以用一個點距離超平面的遠近表示分類預測的置信程度,如下圖所示,A、B、C表示三個樣本,均在分離超平面正類一側,點C距離超平面較遠,就比較確信預測是正確的。

SVM

在分離超平面確定的情況下,可以用

SVM

表示點xi距離超平面的遠近,而

SVM

的符號與類標記yi的符號是否一致可以表示分類是否正確,所以可以用

SVM

表示分類的正確性和確信度,這就是超平面(w,b)關於樣本點(x,y)的函數間隔。

而超平面關於整個訓練數據集T的函數間隔爲超平面(w,b)關於訓練集T中所有樣本點(xi,yi)函數間隔的最小值,即

SVM

雖然函數間隔可以表示分類預測的正確性和確信度,但是選擇分類超平面時,只有函數間隔還是不夠的,因爲只要成比例的改變w和b,超平面並沒有改變,而函數間隔卻會成比例的改變。因此,我們可以對分離超平面的法向量w加上某些約束,如||w||=1,使函數間隔確定化,這就是所謂的幾何間隔。

對於給定的訓練集T和超平面(w,b),定義超平面(w,b)關於樣本點(xi,yi)的幾何間隔爲

SVM

而超平面關於整個訓練數據集T的函數間隔爲超平面(w,b)關於訓練集T中所有樣本點(xi,yi)幾何間隔的最小值,即

SVM

從函數間隔和幾何間隔的定義可知,函數間隔和幾何間隔有以下關係:

SVM

如果||w||等於1,則函數間隔和幾何間隔相等,如果超平面參數w和b成比例的改變,則函數間隔也成比例改變,而幾何間隔不變。

間隔最大化

支持向量機學習的基本思想是求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面。對線性可分得訓練數據集而言,線性可分分離超平面有無窮多個,但是幾個間隔最大的分離超平面是唯一的。(這裏的間隔最大化也稱爲硬間隔最大,與訓練數據集近似可分時軟間隔最大化相對應)。間隔最大化意味着以充分大的確信度對訓練數據進行分類,也就是說不僅將正負實例點進行分開,而且對離超平面較近的實例點也有足夠大的確信度將它們分開,這樣的超平面對未知的新實例也有較好的分類預測能力。

求解幾何間隔最大化的分離超平面,等價於以下約束條件下的最優化問題:

SVM

即我們希望最大化超平面(w,b)關於訓練數據集的幾何間隔γ,並且超平面(w,b)關於每個訓練樣本點的幾何間隔至少爲γ。

考慮到函數間隔和幾何間隔的關係,上述約束條件下的最優化問題也可以改寫成

SVM

此外,上式中函數間隔取值並不影響最優化問題的解,因此我們可以令函數間隔等於1,帶入上式得到下面的線性可分支持向量機學習的最優化問題:

SVM

如果求出了上述約束最優化問題的解w,b,那麼就可以得到最大間隔分離超平面wx+b=0及分類決策函數f(x)=sign(wx+b),即線性可分支持向量機模型。

支持向量和間隔邊界

在線性可分得情況下,訓練數據集中的樣本點與分離超平面距離最近的樣本點的實例稱爲支持向量(Support Vector),它是使約束條件等號成立的點,也就是

SVM

對於yi=+1的正例,支持向量在超平面H1上

SVM

對於yi=-1的負例,支持向量在超平面H2上

SVM

下圖中,在H1和H2上的點就是支持向量,H1和H2相互平行,並且沒有實例點落在它們中間,分離超平面位於H1和H2形成一條長帶的中間。長帶的寬帶(H1和H2之間的距離)稱爲間隔,H1和H2稱爲間隔邊界,間隔的大小依賴於超平面的法向量w,等於2/||w||。

SVM

在決定分離超平面時只有支持向量起作用,而不依賴於其他實例點。如果移動支持向量將改變所求的解,但是如果在間隔邊界以外移動其它實例點,則不影響所求的解。由於支持向量在確定分離超平面中起着決定性的作用,所以將這種分離模型稱爲支持向量機。支持向量的個數一般很少,所以支持向量機由很少的“重要”訓練樣本確定。

簡單的例子

已知一個訓練集如下圖所示,其正例點是x1=(3,3)T,x2=(4,3)T,負例點是x3=(1,1)T,試求最大間隔分離超平面。

按照前述,求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面等價於根據訓練集構造約束最優化問題:

SVM

該最優化問題的解w1=w2=0.5,b=-2。因此最大間隔分離超平面爲

SVM

支持向量爲

SVM

線性支持向量機與軟間隔最大化

線性可分問題的支持向量機學習方法,對線性不可分訓練數據是不適用的,因爲這時約束最優化問題的不等式約束並不能都成立。如何將其擴展到線性不可分問題?

對於不是線性可分的訓練數據集,通常情況下是由於存在一些異常點(Outlier),將這些異常點剔除以後,剩下大部分的樣本點組成的集合是線性可分的。

線性不可分意味着某些樣本點不能滿足函數間隔大於等於1的約束條件。爲了解決這個問題,可以對每個樣本點(xi,yi)引入一個鬆弛變量ξi>=0,使函數間隔大於等於1。同時,對每個鬆弛變量支付一個代價ξi。這樣目標函數和約束條件變爲

SVM

其中C>0,爲懲罰參數,一般由應用問題決定,C值大時對誤分類的懲罰增大,C值小時對誤分類的懲罰減小。最小化目標函數意味着間隔儘可能大,而同時誤分類點的個數儘可能少,C是調和二者的係數。相對於線性可分支持向量機的硬間隔最大化,它也成爲軟間隔最大化。

非線性支持向量機與核函數

非線性可分問題是指通過利用非線性模型才能很好地進行分類的問題,如下圖所示,無法找到一條直線(線性模型)將正負樣本點正確分開,但可以用一條橢圓曲線(非線性模型)將它們正確分開。

SVM

當分類問題是非線性時,線性可分支持向量機和支持向量機就不能很有效的應對了,這時可以使用非線性支持向量機,它的主要特點是應用了核技巧(Kernel Trick)。

非線性問題往往不容易求解,所以希望能用線性分類問題的方法解決這個問題。採用的方法就是進行一個非線性變換,將非線性問題轉換爲線性問題,通過求解變換後的線性問題求解非線性問題。

對於上面的例子,通過變換將上圖中的橢圓轉換爲下圖的直線,將非線性分類問題轉化爲線性分類問題。

SVM

定義從原空間到新空間上的變換:

SVM

原空間中的點轉化爲新空間中的點:

SVM

原空間中的橢圓變換成新空間中的直線:

SVM

上面的例子說明,用線性分類方法求解非線性分類問題分爲兩步:首先使用一個變換將原空間的數據映射到新空間,然後在新空間中用線性分類學習方法從訓練數據集中學習分類模型。

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