&&機器學習實戰&&支持向量機

1.概述

有些人認爲SVM是最好的現成的分類器,這裏說的現成值得是分類器不加修改即可直接使用。同時,這意味着在數據上應用基本形式的svm分類器就可以得到低錯誤率的結果。svm能夠對訓練集之外的數據點作出很好的分類決策。

SVM有很多實現,本章只關注其中最流行的一種實現,即序列最小優化(SMO)算法。

2.基於最大間隔分隔數據

優點:泛化錯誤率低,計算開銷不大,結果易解釋。

缺點:對參數調節和核函數的選擇敏感,原始分類器不加修改僅適用於處理二類問題。

適用數據類型:數值型和標稱型數據。

線性可分數據:

 

非線性數據:

上述將數據集分隔開來的直線稱爲分隔超平面(separating hyperplane)。假如數據集是N維的,那麼超平面就是N-1維的,此超平面也是分類的決策邊界。

如果數據點離決策邊界越遠,那麼其最後的預測結果也就越可信。我們希望採用這種方式來構建分類器。但是如果這樣做,是不是優點尋找最佳擬合直線的感覺?是的,上述做法確實有點像直線擬合,但這並非最佳方案。我們希望找到分離超平面最近的點,確保它們離分隔面的距離儘可能的遠。這裏點到分隔面的距離被稱爲間隔(margin)。我們希望間隔儘可能的大,這是因爲我們犯錯或在有限數據上訓練分類器的話,我們希望分類器儘可能的健壯。

支持向量就是離分隔超平面最近的那些點。接下來要試着最大化支持向量到分隔面的距離,需要找到此問題的優化求解方法。

3.尋找最大間隔

分類器求解的優化問題:

 

鬆弛變量:來允許有些數據點可以處於分隔面的錯誤一側。

4.SVM應用的一般框架

5.Platt的SMO算法

 

6.在複雜數據上應用核函數

我們使用一種稱爲核函數的工具將非線性可分的數據轉換成易於分類器理解的形式,並介紹他們在支持向量機中的使用方法,然後介紹一種稱爲徑向機函數的最流行的核函數,最後將該核函數應用於我們前面得到的分類器。

利用核函數將數據映射到高維空間。核函數並不僅僅應用於支持向量機,很多其他的機器學習算法也都用到核函數。

支持向量機通過某非線性變換 φ( x) ,將輸入空間映射到高維特徵空間。特徵空間的維數可能非常高。如果支持向量機的求解只用到內積運算,而在低維輸入空間又存在某個函數 K(x, x′) ,它恰好等於在高維空間中這個內積,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那麼支持向量機就不用計算複雜的非線性變換,而由這個函數 K(x, x′) 直接得到非線性變換的內積,使大大簡化了計算。這樣的函數 K(x, x′) 稱爲核函數。

根據模式識別理論,低維空間線性不可分的模式通過非線性映射到高維特徵空間則可能實現線性可分,但是如果直接採用這種技術在高維空間進行分類或迴歸,則存在確定非線性映射函數的形式和參數、特徵空間維數等問題,而最大的障礙則是在高維特徵空間運算時存在的“維數災難”。採用核函數技術可以有效地解決這樣問題。

核函數性質:

(1)核函數的引入避免了“維數災難”,大大減小了計算量。而輸入空間的維數n對核函數矩陣無影響,因此,核函數方法可以有效處理高維輸入。

(2)無需知道非線性變換函數Φ的形式和參數.

(3)核函數的形式和參數的變化會隱式地改變從輸入空間到特徵空間的映射,進而對特徵空間的性質產生影響,最終改變各種核函數方法的性能。

(4)核函數方法可以和不同的算法相結合,形成多種不同的基於核函數技術的方法,且這兩部分的設計可以單獨進行,並可以爲不同的應用選擇不同的核函數和算法 [5] 

 

對於手寫字體識別問題,假如考慮內存問題,可以考慮使用支持向量機。

對於支持向量機而言,其需要保留的樣本少了很多(即只保留支持向量),但是能獲得可比的效果。

7.小結

支持向量機是一種分類器。之所以稱爲“機”是因爲它會產生一個二值決策結果,即他是一種決策“機”。支持向量機的泛化錯誤率較低,也就是說它具有良好的學習能力,且學到的結果具有很好的推廣性。

支持向量機試圖通過求解一個二次優化問題來最大化分類間隔。在過去,訓練支持向量機常採用非常複雜並且低效的二次規劃求解方法。SMO算法通過每次只優化2個alpha值來加快svm的訓練速度。

svm的效果也對優化參數和所用核函數中的參數敏感。

核函數:度量兩個向量距離。

 

 

 

 

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