24-最大間隔分類器——SVM


有時我想:人為什么會喜新厭舊?難道不知新的總會變成舊的。又想:人為什么忽略過程只求結果?難道不知一切結果也都是虛幻的。人能把握的只有現在、此刻正在經歷的點點滴滴。所以走路時千萬不要忘記看風景,有時良辰美景也只是驚鴻一瞥,如果一味向前沖,早晚會為自己的魯莽而后悔。最好的不一定總在前面,回憶往事,最好的也許就是今天、此刻的限量版。所以不用為什么遠大目的而奔忙,即刻享受當下吧。

 

今天學習另一種分類算法SVM(Support Vector Machine,支持向量機),它的目的是最大化分類間隔,間隔是指分離決策邊界與離之最近的訓練樣本點之間的距離。

 

 

  • 線性可分和線性分類器

     

對於一個二分類問題,如果存在至少一個超平面能夠將不同類別的樣本分開,我們就說這些樣本是線性可分的(linear separable)。所謂超平面,就是一個比原特征空間少一個維度的子空間,在二維情況下就是一條直線(注意不能是曲線),在三維情況下就是一個平面。

 

線性分類器(linear classifier)是一類通過將樣本特征進行線性組合來作出分類決策的算法,它的目標就是找到一個如上所述能夠分割不同類別樣本的超平面。這樣在預測的時候,我們就可以根據樣本位於超平面的哪一邊來作出決策。

 

用數學語言來描述,一個線性函數可以簡單表示為:f(x)=wTx+b,而線性分類器則根據線性函數的結果進行分類決策:y=g(f(x))=g(wTx+b)

 

其中g(⋅)是一個將變量映射到不同類別的非線性函數,可以簡單取為: 

即分類的結果由 f(x) 的符號決定,f(x)=wTx+b=0即為分類超平面。

下圖展示了幾個線性可分/不可分的例子,並且畫出了一個可能的分類超平面:

 

  • 最大化間隔

     

在樣本線性可分的情況下,可行的分類超平面可能會有很多,如下圖的L1、L2和L3。 

 

那么怎么選擇一個最好的呢?從上圖我們可以直觀看出,L2比另外兩條分界線要更好,這是因為L2離樣本的距離更遠一些,讓人覺得確信度更高。這好比人(相當於樣本)站在離懸崖邊(分類邊界)越遠,人就會感到越安全(分類結果是安全還是危險)。從統計的角度講,由於正負樣本可以看作從兩個不同的分布隨機抽樣而得,若分類邊界與兩個分布的距離越大,抽樣出的樣本落在分類邊界另一邊的概率就會越小。

 

SVM正是基於這種直觀思路來確定最佳分類超平面的:通過選取能夠最大化類間間隔的超平面,得到一個具有高確信度和泛化能力的分類器,即最大間隔分類器。

 

  • 間隔

     

既然SVM的目標是最大化間隔,我們便要先對“間隔”進行定義。所謂間隔,就是分類超平面與所有樣本距離的最小值,表示為:

其中l表示分類超平面,N為樣本個數,xi為第i個樣本。接下來我們還需要定義樣本到超平面的“距離” dist(l,x)。

 

假設任意一個樣本點x0,其在分類超平面上的投影記作。對於分類超平面wTx+b=0,我們知道他的法向量是w,法向量方向的單位向量可以由法向量除以其模長所得:。我們將dist(l,xi)記為d(d≥0),則可以得到:

等式兩邊同時左乘wT並加上b,並且利用超平面上的點+b=0的性質,我們可以得到:

記y∈{−1,1}為分類標簽,由於y(wTx+b)=∣wTx+b∣,我們可以以此消去上式的絕對值。

綜上所述,我們可以得到對於分類超平面l和N個樣本xi的“間隔”的表達式:

 

  • 最大化

     

有了上述定義的間隔,接下來的事情就很直接了——求解能使間隔最大化的參數w和b,即求解以下優化函數:

,上述優化函數也可以寫成如下等價的形式:

其中第二行的約束條件是為了滿足對“間隔”的定義。下面我們來做一些數學上的小變換,使形式更為簡潔。

我們定義,則目標函數可寫成:,約束條件可寫成:,i=1,2,...,N。再用w替換,b替換,並且利用等價的原理,可以得到以下下等價的優化問題:

 

  • 松弛變量

 

以上我們都只關心一個目的:尋找能夠最大化間隔的分類超平面。然而,由於樣本點中異常點的存在,只考慮這一個因素往往無法得到一個最佳的分類器。我們來看下圖的例子: 

從上圖可以看出:若我們嚴格遵守“間隔”的限制,由於藍色異常點的存在,最終只能得到一個間隔很小的分類超平面。反之,如果我們能夠放寬對於間隔的限制,便可以一定程度的忽略異常點的影響,反而能得到間隔更大的分類超平面。

 

上述容忍異常點的思路可以通過引入“松弛變量”(slack variable)實現。在原優化問題中,我們對“間隔”的限制表現在 yi(wTxi+b)≥1, i=1,2,...,N 當中。為了放寬對此的限制,我們對每個樣本引入其對應的松弛變量 ζi (ζi≥0),則限制條件變為:yi(wTxi+b)≥1−ζi, i=1,2,...,N。

 

從上式可以看出,若樣本點xi不是異常點(滿足 yi(wTxi+b)≥1),則其松弛變量ζi=0,與原限制一樣。若樣本點xi是異常點,只要ζi足夠大,限制條件便能滿足,分類超平面(由w、b決定)不受影響。直觀上講,ζi等於將異常點“拉”回原間隔處所需要移動的距離,如下圖所示: 

松弛變量的引入有助於增強模型對異常點的容忍能力,還能解決一定的數據線性不可分的問題。然而,如果不對松弛變量進行限制,得到的分類器又會變得沒有用處(大量的錯誤分類)。因此,我們需要同時對兩個目標進行優化:最大化間隔和容忍異常樣本,並且引入一個平衡參數 C (C≥0)來衡量這兩個方面的重要程度。引入松弛變量后的完整優化問題如下:

最后,我們再來分析一下平衡參數 C 對求得分類超平面的影響。

 

C 取無窮:ζi只能為零,代表無法容忍任何誤判樣本的出現,即嚴格遵守“間隔”的限制,得到沒有引入松弛變量時的分類超平面

C取零:ζi可以任意大,即任何誤判結果都可以被容忍,得到分類超平面沒有意義

C較大:ζi不能很大,因此限制條件難以被忽略,會得到較為狹窄間隔的分類超平面

C較小:ζi影響較小,因此限制條件可以被忽略,會得到較為寬間隔的分類超平面

 

下周學習如何在scikit-learn中使用SVM分類器,敬請期待:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM