SVM支持向量機

SVM在在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢。建立在統計學習理論的VC維理論和結構風險最小原理基礎上。

SVM的主要思想可以概括爲兩點:

⑴它是針對線性可分情況進行分析,對於線性不可分的情況,通過使用非線性映射算法將低維輸入空間線性不可分的樣本轉化爲高維特徵空間使其線性可分,從而使得高維特徵空間採用線性算法對樣本的非線性特徵進行線性分析成爲可能。

⑵它基於結構風險最小化理論之上在特徵空間中建構最優分割超平面(最大間隔),使得學習器得到全局最優化,並且在整個樣本空間的期望風險以某個概率滿足一定上界。(在設計時,需要用到條件極值問題的求解,因此需用拉格朗日乘子理論)

 

原理:

SVM方法是通過一個非線性映射p,把樣本空間映射到一個高維乃至無窮維的特徵空間中(Hilbert空間),使得在原來的樣本空間中非線性可分的問題轉化爲在特徵空間中的線性可分的問題.簡單地說,就是升維和線性化.升維,就是把樣本向高維空間做映射,一般情況下這會增加計算的複雜性,甚至會引起“維數災難”,因而人們很少問津.但是作爲分類、迴歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特徵空間中卻可以通過一個線性超平面實現線性劃分(或迴歸).一般的升維都會帶來計算的複雜化,SVM方法巧妙地解決了這個難題:應用核函數的展開定理,就不需要知道非線性映射的顯式表達式;由於是在高維特徵空間中建立線性學習機,所以與線性模型相比,不但幾乎不增加計算的複雜性,而且在某種程度上避免了“維數災難”.這一切要歸功於核函數的展開和計算理論.

選擇不同的核函數,可以生成不同的SVM,常用的核函數有以下4種:

⑴線性核函數K(x,y)=x·y;

⑵多項式核函數K(x,y)=[(x·y)+1]^d;

⑶徑向基函數K(x,y)=exp(-|x-y|^2/d^2)

⑷二層神經網絡核函數K(x,y)=tanh(a(x·y)+b).

 

一大亮點是在傳統的最優化問題中提出了對偶理論,主要有最大最小對偶及拉格朗日對偶。

SVM的關鍵在於核函數。低維空間向量集通常難於劃分,解決的方法是將它們映射到高維空間。但這個辦法帶來的困難就是計算複雜度的增加,而核函數正好巧妙地解決了這個問題。也就是說,只要選用適當的核函數,就可以得到高維空間的分類函數。在SVM理論中,採用不同的核函數將導致不同的SVM算法。

在確定了核函數之後,由於確定核函數的已知數據也存在一定的誤差,考慮到推廣性問題,因此引入了鬆弛係數以及懲罰係數兩個參數來加以校正。在確定了核函數基礎上,再經過大量對比實驗等將這兩個係數取定。


公式理解和推導:

http://blog.csdn.net/sunanger_wang/article/details/7887218


算法思想和代碼:

http://www.csdn.net/article/2012-12-28/2813275-Support-Vector-Machine

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