支援向量機 一)

2021-07-03 08:43:42 字數 2359 閱讀 7492

最近在看史丹福大學的機器學習的公開課,學習了支援向量機,再結合網上各位大神的學習經驗總結了自己的一些關於支援向量機知識。

一、什麼是支援向量機(svm)?

1、支援向量機(support vector machine,常簡稱為svm)是一種監督式學習的方法,可廣泛地應用於統計分類以及回歸分析。支援向量機屬於一般化線性分類器,這族分類器的特點是他們能夠同時最小化經驗誤差與最大化幾何邊緣區,因此支援向量機也被稱為最大邊緣區分類器。

2、支援向量機將向量對映到乙個更高維的空間裡,在這個空間裡建立有乙個最大間隔超平面。在分開資料的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。

3、假設給定一些分屬於兩類的2維點,這些點可以通過直線分割, 我們要找到一條最優的分割線,如何來界定乙個超平面是不是最優的呢?

如下圖:

在上面的圖中,a和b都可以作為分類超平面,但最優超平面只有乙個,最優分類平面使間隔最大化。 那是不是某條直線比其他的更加合適呢? 我們可以憑直覺來定義一條評價直線好壞的標準:

距離樣本太近的直線不是最優的,因為這樣的直線對雜訊敏感度高,泛化性較差。 因此我們的目標是找到一條直線(圖中的最優超平面),離所有點的距離最遠。

由此, svm演算法的實質是找出乙個能夠將某個值最大化的超平面,這個值就是超平面離所有訓練樣本的最小距離。這個最小距離用svm術語來說叫做間隔(margin) 。

二、如何計算最優超平面?

1、線性分類:

我們通常希望分類的過程是乙個機器學習的過程。這些資料點並不需要是\mathbb^2中的點,而可以是任意\mathbb^n的點(乙個超平面,在二維空間中的例子就是一條直線)。我們希望能夠把這些點通過乙個n-1維的超平面分開,通常這個被稱為線性分類器。有很多分類器都符合這個要求,但是我們還希望找到分類最佳的平面,即使得屬於兩個不同類的資料點間隔最大的那個面,該面亦稱為最大間隔超平面。如果我們能夠找到這個面,那麼這個分類器就稱為最大間隔分類器。

我們從下面乙個圖開始:

中間那條線是wx + b =0,我們強調所有點盡可能地遠離中間那條線。考慮上面3個點a、b和c。從圖中我們可以確定a是×類別的,然而c我們是不太確定的,b還算能夠確定。這樣我們可以得出結論,我們更應該關心靠近中間分割線的點,讓他們盡可能地遠離中間線,而不是在所有點上達到最優。因為那樣的話,要使得一部分點靠近中間線來換取另外一部分點更加遠離中間線。同時這個所謂的超平面的的確把這兩種不同形狀的資料點分隔開來,在超平面一邊的資料點所對應的 y 全是 -1 ,而在另一邊全是 1 。

我們可以令分類函式:

顯然,如果 f(x)=0 ,那麼 x 是位於超平面上的點。我們不妨要求對於所有滿足 f(x)<0 的點,其對應的 y 等於 -1 ,而 f(x)>0 則對應 y=1 的資料點。如下圖。

最優超平面可以有無數種表達方式,即通過任意的縮放 w 和 b 。 習慣上我們使用以下方式來表達最優超平面

||\beta_ + \beta^ x| = 1|=1

式中 x 表示離超平面最近的那些點,也可以就可以得到支援向量的表示式為:y(wx + b) = 1,

上面說了,我們令兩類的點分別為+1, -1,所以當有乙個新的點x需要**屬於哪個分類的時候,我們用sgn(f(x)),就可以**了,sgn表示符號函式,當f(x) > 0的時候,sgn(f(x)) = +1, 當f(x) < 0的時候sgn(f(x)) = –1。

通過幾何學的知識,我們知道點 x 到超平面 (\beta, \beta_) 的距離為:

\mathrm = \frac + \beta^ x|}.

特別的,對於超平面, 表示式中的分子為1,因此支援向量到超平面的距離是

=||w||的意思是w的二範數。

剛才我們介紹了間隔(margin),這裡表示為 m, 它的取值是最近距離的2倍:

m = 2 / ||w||

最大化這個式子等價於最小化||w||, 另外由於||w||是乙個單調函式,我們可以對其加入平方,和前面的係數,熟悉的同學應該很容易就看出來了,這個式子是為了方便求導。

最後最大化 m 轉化為在附加限制條件下最小化函式:

即:這是乙個拉格朗日優化問題,可以通過拉格朗日乘數法得到最優超平面的權重向量w和偏置 b 。

ps1、咱們就要確定上述分類函式f(x) = w.x + b(w.x表示w與x的內積)中的兩個引數w和b,通俗理解的話w是法向量,b是截距;

2、那如何確定w和b呢?答案是尋找兩條邊界端或極端劃分直線中間的最大間隔(之所以要尋最大間隔是為了能更好的劃分不同類的點,下文你將看到:為尋最大間隔,匯出1/2||w||^2,繼而引入拉格朗日函式和對偶變數a,化為對單一因數對偶變數a的求解,當然,這是後話),從而確定最終的最大間隔分類超平面hyper plane和分類函式;

3、進而把尋求分類函式f(x) = w.x + b的問題轉化為對w,b的最優化問題,最終化為對偶因子的求解。

支援向量機(一)

本篇是學習svm的初學講義,希望能夠對大家有所幫助。svm涉及到很多拉格朗日對偶等最優化知識,強烈推薦大家學習 最優化計算方法 不然理解svm會遇到很多困難。學習之前強烈推薦先玩一玩林智仁的svm toy.exe,對理解svm很有幫助,鏈結在 好了,接下來我們開始svm的學習。在本文中,會盡量避免一...

支援向量機(一)

支援向量機 svm 有嚴格的數學基礎和推導理論的模式識別方法,是針對小樣本的的統計學理論,基於結構風險最小化原則,演算法在優化過程中具有全域性最優解,泛化能力也比較突出,是一套優秀的機器學習技術。機器學習是乙個不斷學習發展加深的過程,正如乙個讀書人學習svm的時候,他看書的境界分為三層,如先讀資料探...

支援向量機(一)

支援向量機 support vector machines,簡稱svm 是一種二類分類模型。它在一些情況下,對於一些複雜的非線性問題能提供相比邏輯回歸模型或神經網路模型更為簡潔的解決方案。優化目標 我們通過不斷改進邏輯回歸模型以實現支援向量機。邏輯回歸模型的假設函式h x 為 其中 其代價函式j 為...