三個角度看SVM(1)——最大間隔分類器

“橫看成嶺側成峯,遠近高低各不同。”

支持向量機(Support Vector Machine, SVM)作爲一個被廣泛應用的有監督機器學習算法,網絡上對它的介紹數不勝數,其中更有不少好文佳作。本文與它們的區別在於:並不着重於“教程式”地對SVM進行系統性介紹,而是希望從三個不同的角度對這個算法進行探究。我相信經過這番“把玩”,看過你會跟我一樣覺得:機器學習真的是好玩!


1、引言

最大化類間間隔分類器(maximum margin classifier),估計是最爲直觀,也是最爲人們所熟悉的對於SVM的理解。我們不妨也先從這個角度切入,看看爲什麼SVM能給我們帶來優良的泛化能力。這一部分的路線圖如下:
路線圖

2、線性可分和線性分類器

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

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

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

y=g(f(x))=g(wTx+b)
其中g() 是一個將變量映射到不同類別的非線性函數,可以簡單取爲:
g(z)=1,1,if z0if z<0

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

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

3、最大化間隔

在樣本線性可分的情況下,可行的分類超平面可能會有很多,如下圖的L1L2L3
這裏寫圖片描述

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

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

3.1、間隔

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

γ=min{dist(l,xi) | i=1,2,...,N}
其中l 表示分類超平面,N 爲樣本個數,xi 爲第i 個樣本。接下來我們還需要定義樣本到超平面的“距離” dist(l,x)

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

x0x̂ 0=dww
等式兩邊同時左乘wT 並加上b,並且利用超平面上的點wTx̂ 0=0 的性質,我們可以得到:
d=wTx+bw
y{1,1} 爲分類標籤,由於y(wTx+b)=wTx+b ,我們可以以此消去上式的絕對值。

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

γ=min{yi(wTxi+b)w i=1,2,...,N}

3.2、最大化

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

maxw,b γ=min{yi(wTxi+b)w i=1,2,...,N}
y0(wTx0+b)w=γ ,上述優化函數也可以寫成如下等價的形式:
maxw,b y0(wTx0+b)w
s.t. yi(wTxi+b)y0(wTx0+b), i=1,2,...,N
其中第二行的約束條件是爲了滿足對“間隔”的定義。下面我們來做一些數學上的小變換,使形式更爲簡潔。

我們定義ŵ =w / y0(wTx0+b)b̂ =b / y0(wTx0+b) ,則目標函數可寫成:1 / ŵ  ,約束條件可寫成:yi(wTxi+b)1, i=1,2,...,N 。再用w 替換ŵ  ,並且利用maxw1 / wmaxw1 / w2 等價的原理,可以得到以下下等價的優化問題:

maxw,b 1w2
s.t. yi(wTxi+b)1, i=1,2,...,N

4、鬆弛變量

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

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

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

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

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

maxw,b 1w2Ciζi
s.t. yi(wTxi+b)1ζi, i=1,2,...,N
ζi0

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

  • C 取無窮:ζi 只能爲零,代表無法容忍任何誤判樣本的出現,即嚴格遵守“間隔”的限制,得到沒有引入鬆弛變量時的分類超平面
  • C 取零:ζi 可以任意大,即任何誤判結果都可以被容忍,得到分類超平面沒有意義
  • C 較大:ζi 不能很大,因此限制條件難以被忽略,會得到較爲狹窄間隔的分類超平面
  • C 較小:ζi 影響較小,因此限制條件可以被忽略,會得到較爲寬間隔的分類超平面

5、結語

作爲最直觀簡單的角度,最大化間隔的思想不僅帶我們一步步走向SVM背後的原理,更讓我們理解到SVM具有的良好泛化能力的原因。雖然我們現在得到的SVM只能處理線性的情況,但我覺得從最大間隔分類器的角度去看,走到這一步已經足夠了。SVM還蘊含着很多有趣的性質和優點,我們會在其他角度的探尋中一一發現。

Reference

1、本校AI課課件及參考資料:http://www.cs.rochester.edu/~jliu/CSC-242/svm.pdfhttp://www.robots.ox.ac.uk/~az/lectures/ml/lect2.pdf
2、July博客:支持向量機通俗導論
3、PRML Chapter 7.

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