Content
8. Support Vector Machines(SVMs)html
8.1 Optimization Objection算法
8.2 Large margin intuition網絡
8.3 Mathematics Behind Large Margin Classification機器學習
8.4 Kernels函數
8.5 Using a SVM學習
8.5.1 Multi-class Classification優化
8.5.2 Logistic Regression vs. SVMsui
支持向量機(Support Vector Machine: SVM)是一種很是有用的監督式機器學習算法。首先回顧一下Logistic迴歸,根據log()函數以及Sigmoid函數的性質,有:spa
同時,Logistic迴歸的代價函數(未正則化)以下:orm
爲獲得SVM的代價函數,咱們做以下修改:
所以,對比Logistic的優化目標
SVM的優化目標以下:
注1:事實上,上述公式中的Cost0與Cost1函數是一種稱爲hinge損失的替代損失(surrogate loss)函數,其餘常見的替代損失函數有指數損失和對率損失,具體參見《機器學習》P129 周志華)
注2:注意參數C和λ的對應關係: C與(1 / λ)成正相關。
根據8.1中的代價函數,爲使代價函數最小,有以下結論:
現假設C很大(如C=100000),爲使代價函數最小,咱們但願
因此代價函數就變爲:
因此問題就變成:
該問題最後的優化結果是找到具備"最大間隔"(maximum margin)的劃分超平面,因此支持向量機又稱大間距分類器(large margin classifier)。那麼什麼是間隔? 爲何這樣優化就能夠找到最大間隔?首先,咱們經過圖8-1所示的二維的0/1線性分類狀況來直觀感覺。
圖8-1 SVM Decision Boundary: Linearly separable case
直觀上,應該去找位於兩類訓練樣本"正中間"的劃分超平面,即圖8-1的黑色直線(二維),由於該劃分超平面對訓練樣本局部擾動的"容忍"性最好。例如,圖中的粉色和綠色直線,一旦輸入數據稍有變化,將會獲得錯誤的預測。換言之,這個劃分超平面所產生的分類結果是最魯棒的,對要預測數據集的泛化能力最強。而兩條藍色直線之間的距離就稱爲間隔(margin)。下一節將從數學角度來解釋間隔與最大間隔的優化原理。
首先介紹一些數學知識。
因此有:
其中是
在
向量上的投影長度。
因此,8.2節獲得的優化問題能夠轉爲以下形式:
分界線爲,因此可知
和分界線正交(垂直),而且當
時,分界線過原點(歐式空間)。爲使目標最優(取最小值)且知足約束,
應該儘量大,這樣就要求間距儘量的大。直觀的如圖8-2所示,圖左爲間距較小的狀況,此時的
較小,爲知足約束,致使目標函數變大,圖右爲最大間距的狀況,此時的
是最大的,因此目標能夠儘量的小。
圖8-2 兩種不一樣間距的狀況
上述的討論都是基於線性可分的樣本,即存在一個劃分超平面能夠將訓練樣本正確分類,然而現實世界存在大量複雜的,非線性分類問題(如4.4.2節的異或/同或問題)。Logistic迴歸處理非線性問題能夠經過引入多項式特徵量做爲新的特徵量;神經網絡經過引入隱藏層,逐層進化解決非線性分類問題;而SVM是經過引入核函數(kernel function)來解決非線性問題。具體作法以下:
,其中
與
爲一一對應;
如今有兩個問題,
對於第一個問題,能夠按照以下方式,即將訓練集的輸入做爲landmarks
因此特徵量的個數與訓練集的個數相等,即n = m,因此帶有核的SVM變爲以下形式:
對於第二個問題,經常使用的核函數有線性核,高斯核,多項式核,Sigmoid核,拉普拉斯核等,現以經常使用的高斯核(Gaussian)爲例。
高斯核具備以下性質:
也就是說,若是x和landmark接近,那麼核函數的值也就是新的特徵量將會接近1,而若是x和landmark距離很遠,那麼核函數的值將會接近0.
是高斯核的參數,它的大小會影響核函數值的變化快慢,具體的,圖8-3是一個二維狀況下的特殊例子,可是所含有的性質是可推廣的。即
越大,核函數變化(降低)越緩慢,反之,
越小,核函數變化越快。
圖8-3 參數對高斯核的影響舉例
下面對SVM的參數對誤差和方差的影響作簡要分析:
上文簡單的介紹了SVM的優化原理以及核函數的使用方式。在實際應用SVM中,咱們不須要本身去實現SVM的訓練算法來獲得參數,一般是使用現有的軟件包(如liblinear, libsvm)。
可是下面的工做是咱們須要作的:
下面是須要注意的地方:
參考:《機器學習》 周志華