支持向量機(SVM)是另一類的學習系統,其眾多的優點使得他成為最流行的算法之一。其不僅有扎實的理論基礎,而且在許多應用領域比大多數其他算法更准確。
1、線性支持向量機:可分情況

根據公式(1)<w.x>+b=0,我們知道,w定義了垂直於超平面的方向 ,如上圖,w被成為超平面的法向量,不改變法向量,可以通過變化b來平移超平面。
因為支持向量機要最大化整理正例和負例的距離,我們找到這個距離2/||W||;支持向量機尋找具有最大邊距的分割平面,也就是被稱為最大邊距超平面,把該平面做為最終的決策平面;
上圖 中,H是分類面,H1和H2是平行於H,且過離H最近的兩類樣本的直線,H1與H,H2與H之間的距離就是幾何間隔。幾何間隔與樣本的誤分次數間存在關系:
,
其中的δ是樣本集合到分類面的間隔,
,即R是所有樣本中向量長度最長的值。從上式可以看出,誤分次數的上界由幾何間隔決定。因此選擇幾何間隔來作為評價一個解優劣的指標,幾何間隔越大的解,它的誤差上界越小。因此最大化幾何間隔成了我們訓練階段的目標。
從d=|<w.xs>+b-1|/||w||=1/||W||式可知,幾何間隔與||w||是成反比的,因此最大化幾何間隔與最小化||w||等價。通常不是固定||w||的大小而尋求最大幾何間隔,而是固定間隔(例如固定為1),尋找最小的||w||。
此時變成一個最優化問題,若想尋找一個小||w||,就可以用下面的式子表示:

但實際上對於這個目標,常常使用另一個完全等價的目標函數來代替,如下:

如果直接來解這個求最小值問題,很容易看出當||w||=0的時候就得到了目標函數的最小值。反映在圖2中,就是H1與H2兩條直線間的距離無限大,這個時候,所有的樣本點都位於H1和H2中間,而我們原本的意圖是,H1右側的被分為正類,H2左側的被分為負類,位於兩類中間的樣本則拒絕分類。這樣,所有樣本點都進入了無法分類的灰色地帶。造成這種結果的原因是在描述問題的時候只考慮了目標,而沒有加入約束條件,於是可以添加約束條件:
(n是總的樣本數)
於是可以將兩類分類轉化成數學形式,如下:

在這個問題中,自變量就是w,而目標函數是w的二次函數,所有的約束條件都是w的線性函數,這種規划問題就是二次規划(Quadratic Programming,QP),由於它的可行域是一個凸集,因此它是一個凸二次規划。
樣本確定了w,用數學的語言描述,就是w可以表示為樣本的某種組合:

式子中的是拉格朗日乘子,而是樣本點,也是向量,n就是總樣本點的個數。為了方便描述,以下開始嚴格區別數字與向量的乘積和向量間的乘積,我會用aw表示數字和向量的乘積,而用<w.x>表示向量的內積。因此公式(1)嚴格的形式應該是:

w不僅跟樣本點的位置有關,還跟樣本的類別有關。因此用下面這個式子表示w:

其中的ai就是第i個樣本的標簽,它等於1或者-1。其實以上式子的拉格朗日乘子中,只有很少的一部分不等於0,這部分不等於0的拉格朗日乘子后面所乘的樣本點,其實都落在和上,也正是這部分樣本唯一的確定了分類函數。這部分可以確定分類的樣本點,就叫做支持向量。因此原來的g(x)表達式可以寫為:
,
其中,
上式可以變形為:

此時消去了上式中的,問題從求變成了求。這樣就簡化了原問題的求解,以這樣的形式描述問題以后,優化問題少了很大一部分不等式約束。
SVM中的核函數
根據模式識別理論,低維空間線性不可分的模式通過非線性映射到高維特征空間則可能實現線性可分,但是如果直接采用這種技術在高維空間進行分類或回歸,則存在確定非線性映射函數的形式和參數、特征空間維數等問題,而最大的障礙則是在高維特征空間運算時存在的“維數災難”。采用核函數技術可以有效地解決這樣問題。
如圖3所示,當分類問題在低緯空間無法用線性分類方法解決時,可以通過將低緯空間的數據映射到高緯特征空間中,從而達到線性可分的目的。

圖3 低緯度向高緯度空間映射
從低緯度向高緯度轉化關鍵在於尋在一個
函數,但對目前沒有一個系統的方法。對映射過程推導如下:

從上式可以得出,我們只關心高維空間里內積的值,而核函數就是接受低空間的輸入,並計算出在高緯空間的內積值。
,就是我們要找的核函數。如圖4

圖4 在映射過程中的核函數
於是上式,可以表示為
。盡管給的問題是線性不可分的,但凡是要求內積的時候我們就選定的核函數來算。這樣求出來的α再和你選定的核函數一組合,就可以得到線性分類器。但是任然存在以下兩個問題:
1.既然有很多的核函數,針對具體問題該怎么選擇?
2.如果使用核函數向高維空間映射后,問題仍然是線性不可分的,那怎么辦?
第一個問題:對核函數的選擇,現在還缺乏指導原則!各種實驗的觀察結果的確表明,某些問題用某些核函數效果很好,用另一些就很差,但是一般來講,徑向基核函數是不會出太大偏差的一種,首選。
對第二個問題的解決用了SVM中的另一個概念:松弛變量。
