本篇是學習svm的初學講義,希望能夠對大家有所幫助。svm涉及到很多拉格朗日對偶等最優化知識,強烈推薦大家學習《最優化計算方法》,不然理解svm會遇到很多困難。學習之前強烈推薦先玩一玩林智仁的svm-toy.exe,對理解svm很有幫助,鏈結在
好了,接下來我們開始svm的學習。在本文中,會盡量避免一些數學公式,本文只是為初學者理清脈絡,詳盡的數學推導可以在任一本機器學習教材中找到。
svm是用來分類的演算法。可以分類的演算法還有決策樹、貝葉斯、人工神經網路等。為什麼svm現在這麼火?筆者總結了一些優缺點如下:
優點:
1.人工神經網路是黑箱演算法,而支援向量機有嚴格的理論支援,有嚴格的誤差上下界。
2.模型法(如人工神經網)需要大量樣本訓練,而svm可以在小樣本時表現很好。
3.只有少數支援向量決定了最終結果,剔除了冗餘點,增刪非支援向量對模型沒有影響,具有魯棒性。
4.通過核方法將線性不可分資料對映到高維空間,在高維空間線性可分,可以解決非線性問題。
不足:
1.訓練樣本規模很大時難以實施。
2.解決多分類問題存在困難。
直觀認識:
首先我們來一點兒直觀的認識,最基本的svm,就是尋找乙個區分兩個不同類別的最優超平面的演算法。
圖1圖1中x3,x5,x6
是「支援向量」,「機」表示一種演算法。在svm分類時,只有「支援向量」是起作用的。增刪非支援向量對模型沒有影響。
訓練資料集t:
t共有n
個元素,每個元素形式為(特徵,目標值)
t =
其中xi ∈rn, yi∈, i = 1, 2, ..., n
在圖1中我們不妨把黃色類的點標記為+1,紅色類的點標記為-1
則圖中訓練集為
t =
為方便起見,拿圖1來說,圖中有n個點。平面的方程為:
函式間隔:
對於圖中的任意乙個元素(xi,yi),其中yi
∈,定義其到平面的函式間隔為
其中乘以yi能保證
如圖1,對於紫色的點,將xi =xp +xq
代入(2),並利用(1),可將(2)化簡為
我們發現,對於同樣的分割平面(1),w的方向是確定的,但大小可變,導致w變化而變化。因此我們引入幾何間隔。
幾何間隔:
對於圖中的任意乙個元素(xi, yi),其中yi
∈,定義其到平面的幾何間隔為
與函式間隔相比,只是除了乙個
其中乘以y
i能保證r
i一定非負。
圖中每個點xi對應乙個r
i,為了讓決策平面最恰當地把兩類分開,我們記
因此尋找超平面轉化為最優化問題:
我們可以把這個最優化問題稍稍變形一下,使其更好解。我們知道決策平面只與w的方向有關,而與w的大小無關。上述不等式變形為
由於
(8)等價於
最優化問題6變為
用(9)代替(8)的原因是轉化成二次規劃問題,導數連續,比絕對值方便的多,最優化教材中專門有一節講二次規劃的解法。是為
了求導後計算方便。解這個最優化問題便可得到決策平面(1)。
例題:
正例點x1 = (3, 3),x2 = (4, 3),反例點x3 = (1, 1),求最大間隔分離超平面。(摘自李航《統計學習方法》p103)
圖2解:由公式(10),等價於解最優化問題:解得
最大間隔分離超平面為
至此,乙個簡單的支援向量機就已經介紹完畢了。那為什麼要引入「對偶」演算法呢?具體內容將在下一節中進行討論。
博主e-mail:qiuqiangkong@gmail.com
支援向量機 一)
最近在看史丹福大學的機器學習的公開課,學習了支援向量機,再結合網上各位大神的學習經驗總結了自己的一些關於支援向量機知識。一 什麼是支援向量機 svm 1 支援向量機 support vector machine,常簡稱為svm 是一種監督式學習的方法,可廣泛地應用於統計分類以及回歸分析。支援向量機屬...
支援向量機(一)
支援向量機 svm 有嚴格的數學基礎和推導理論的模式識別方法,是針對小樣本的的統計學理論,基於結構風險最小化原則,演算法在優化過程中具有全域性最優解,泛化能力也比較突出,是一套優秀的機器學習技術。機器學習是乙個不斷學習發展加深的過程,正如乙個讀書人學習svm的時候,他看書的境界分為三層,如先讀資料探...
支援向量機(一)
支援向量機 support vector machines,簡稱svm 是一種二類分類模型。它在一些情況下,對於一些複雜的非線性問題能提供相比邏輯回歸模型或神經網路模型更為簡潔的解決方案。優化目標 我們通過不斷改進邏輯回歸模型以實現支援向量機。邏輯回歸模型的假設函式h x 為 其中 其代價函式j 為...