支持向量機(SVM)-----學習筆記一(原理詳解與公式推導)

支持向量機(SVM)

什麼是支持向量機?

支持向量機,因其英文名爲support vector machine,故一般簡稱SVM,通俗來講,它是一種二類分類模型,其基本模型定義爲特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化爲一個凸二次規劃問題的求解。

SVM思想(線性可分支持向量機)

圖一

給定一些數據點,它們分別屬於兩個不同的類,現在要找到一個線性分類器把這些數據分成兩類。在決策邊界上面算法認爲是紅色的點,決策邊界下面認爲是藍色的點。

圖二

但從上圖我們可以看到,有多條決策邊界可以將這兩種顏色的點分開,這往往會導致不適定問題。

圖三

例如上圖,我們增加一個點,此時的決策邊界雖然正確分類了,但是決策邊界基本離紅色的點很近,這樣離決策邊界很近的那個藍色點被誤分爲紅色點的可能性非常的大,即圖中的決策邊界泛化效果不夠好。

那什麼樣的決策邊界比較好呢?

在下圖中,離直線最近的這些點,我們讓它離決策邊界的距離都儘可能的大,換句話說就是,希望決策邊界即離紅色的點比較遠又離藍色的點比較遠。相當於是,SVM要需要找到一個決策邊界,他不僅能夠將訓練數據進行很好的分類,並且找到的決策邊界泛化能力也要儘可能的好。

圖四

圖五

間隔

回憶解析幾何,點到直線的距離:

假設圖五中決策邊界的表達式爲:


則樣本空間中任意的點到這條直線的距離爲:


圖中離決策邊界最近的點到決策邊界的距離定義爲d,換句話說圖五中所有點到決策邊界的距離都應該≥d,在圖中我們將紅色的點定義爲y值定義爲1,將藍色的點y值定義爲-1,表達爲數學公式有:


則決策邊界兩邊的那兩根直線表示爲:

圖六

爲了後續方便,對公式重新命名,並將其化簡爲一個式子表示,圖六中的所有的點都要滿足最後的這個公式,即:

兩個不同類的支持向量到決策邊界的距離之和叫做間隔,對於任意支持向量,SVM需要最大化支持向量到決策邊界的距離d,即(化簡成平方形式是爲了方便求導):


於是,整個支持向量機算法就變成了如下的最優化問題,s.t.代表限定條件,這是一個有條件的最優化問題,也是SVM的基本型:

 對偶問題

拉格朗日乘子法:

KKT條件

根據SVM的基本型求解出w和b,即可得到最佳超平面對應的模型:

該求解問題本身是一個凸二次規劃(convexquadratic propgramming)問題,對於式(1)的每條約束添加拉格朗日乘子αi≥0,則該問題的拉格朗日函數可寫爲:

將(3)帶入(2)式中,消去w和b就可得到(1)的對偶問題

由(4)可知我們並不關心單個樣本是如何的,我們只關心樣本間兩兩的乘積,這也爲後面核方法提供了很大的便利。 求解出之後,再求解w出和b即可得到SVM決策模型:

(1)式對偶問題轉化爲,構造並求解約束最優化問題,求得最優解α:


又因(1)中存在不等式約束,所以上式滿足KKT條件,即要求:

        對於任意樣本(xi,yi)總有αi=0或者yi(wxi+b)-1=0。如果則由式(5)可知該樣本點對求解最佳超平面沒有任何影響。當αi=0時必有yi(wxi+b)-1=0,表明對應的樣本點在最大間隔邊界上,即對應着支持向量。也由此得出了SVM的一個重要性質:訓練完成之後,大部分的訓練樣本都不需要保留,最終的模型僅與支持向量有關。 

        那麼對於式(6)該如何求解α呢?很明顯這是一個二次規劃問題,可使用通用的二次規劃算法來求解,但是SVM的算法複雜度是O(n2),在實際問題中這種開銷太大了。爲了有效求解該二次規劃問題,人們通過利用問題本身的特性,提出了很多高效算法,Sequential Minimal Optimization(SMO)就是一個常用的高效算法。在利用SMO算法進行求解的時候就需要用到上面的KKT條件。利用SMO算法求出之後根據式(8)即可求出w和b,解出w和b就可以用f(x)=sign(wx+b)進行預測分類了。

軟間隔與正則化

    若樣本的分佈如下圖左,給出一條決策邊界如下圖右所示,雖然能夠正確的對數據進行分類,但難免對其泛化能力產生懷疑:

對決策邊界做出調整如下圖所示,可以看到雖然它錯分個數據,但它的泛化能力可能更好,所以SVM需要一個機制,即SVM算法得到的邊界允許有一定的容錯能力

        具體來說,前面介紹的支持向量機是要求所有樣本均滿足約束(1),即所有樣本都必須正確劃分,這叫做‘硬間隔’,線性不可分意味着有樣本點不滿足約束條件(1),這叫‘軟間隔’,爲了解決這個問題,對每個樣本引入一個鬆弛變量,這樣約束條件變爲:


        最優化問題是在最大化間隔,但是現在允許SVM犯一定的錯誤也就是允許數據點落在直線跟虛線之間,值得注意的是每個樣本都有一個對應的鬆弛變量,用於表徵該樣本不滿足約束條件的程度希望的是SVM具有一定的容錯空間,但是又不希望這個容錯空間太大。則需將目標函數變爲

其中C爲懲罰函數,目標函數有兩層含義:

l  Margin儘可能的大

l  誤分類的樣本點儘量少

對於Soft Margin SVM,相當於在目標函數中加入了正則化相,避免我們訓練出的模型向一個極端方向發展,使之對訓練數據集有一定的容錯能力,對訓練集中的一些極端數據不那麼敏感,從而在面對真實未知的數據的時候,擁有一定的泛化能力。



對於式(11),該問題的拉格朗日函數可寫爲:



核函數

在前面的討論中,我們假設訓練樣本是線性可分的,即存在一個劃分超平面能將訓練樣本正確分類。然而在現實任務中,原始樣本空間內也許並不存在一個能正確劃分兩類樣本的超平面,對於這樣的問題,可以將樣本從原始空間映射到一個更高維的特徵空間,使的樣本在這個特徵空間內線性可分。

則SVM的最優化問題,及該問題的偶問題,表示如下:

求解後得到:

舉例(添加二次項核函數):

 

高斯核函數的本質是將樣本點映射到一個無窮維的特徵空間,依靠升維使得原本線性表與可分的數據線性可分。

支持向量迴歸(SVR)