機器學習之支援向量機(一)樣本線性可分實現原理

2021-09-25 10:46:14 字數 2602 閱讀 7575

支援向量機是神經網路大熱之前,獨領風颯的一種機器學習的演算法。主要用來解決機器學習中的分類問題,也可以用來解決回歸問題。大熱是因為支援向量機能夠將非線性可分的資料集,分的很好。

支援向量機在讓機器學習的過程中,主要是尋找乙個決策邊界,這個決策邊界相比於邏輯回歸或者線性回歸,有大大的優化,如果說邏輯回歸或者線性回歸和支援向量機都能找到乙個符合我們期望的決策邊界,那麼支援向量機找到的決策邊界,將是最好的那個決策邊界。

所謂最好的決策邊界,就是容錯率最高的那個決策邊界。

所謂容錯率最高的決策邊界,就是在決策邊界的正負兩個方向,擁有最大的留白部分,就是margin。當模型訓練到最大margin的時候,將模型用於實踐,去**新來的資料,模型將擁有最大的泛化能力。就是說,這樣的模型,在工業應用中,表現出的**效果最好,是我們最期望的模型。

我們的直觀目的就是要求得決策邊界的最大的margin,就是距離決策邊界最近的點的最大距離。

進一步說明的話就是,機器找到了乙個決策邊界,將正負兩類分開,然後機器會求得所有的樣本點到這個決策邊界的距離,找到距離本個決策邊界最近的那麼幾個點(這幾個點叫做支援向量),將這幾個點到決策邊界的距離和在其他決策邊界中找到的相同作用的點的距離,做乙個比較,哪個距離更大,那個就是更好的決策邊界。

通過這樣的分析,可以總結出:

首先,要找到每乙個決策邊界中,距離決策邊界最近的點

然後,比較每組最近的點,找到那組最遠的點

希望我這樣的表述,可以被聽得明白。

現在將支援向量機抽象成數學問題,其實就是乙個求最優化的問題。

二維平面中,支援向量機要最優化的,就是支援向量點到決策邊界的距離。

根據數學公式可以得出:

距離 : d = |ax + by + c| / (a2 + b2)1/2

多維空間中,支援向量機要最優化的,就是支援向量點到決策面的距離。

根據數學公式可以得出:

距離 : d = |wtx + b| / ||w||

無論是二維還是多維,我們將決策邊界的數學表達通寫為:

wtx + b = 0

其中,w是模型的引數,b是決策邊界的截距,也就是原來的w0

我們希望決策邊界能夠留出d距離的留白來增大容錯率,所以,我們希望滿足:

任意乙個樣本點到決策邊界的距離都可以大於等於d

接下來我們把上述的不等式組做進一步化簡,因為d是正數,所以不等式左右兩邊同時除以d,不等式仍然成立,那麼我們將得到:

我們觀察兩個不等式的分母,w的長度乘以距離d,結果是乙個正的數值,同樣我們觀察決策邊界的表示式:

wtx + b = 0

如果決策邊界的左右兩邊同時除以這個數值,結果也不會發生改變(向量的縮放,並不影響向量的引數),所以我們重新表達決策邊界的表示式:

我們將上述兩個不等式和乙個等式,左邊寫成了同樣的表示式,這時我們用乙個新的變數來表示左邊的表示式:

此時看到的wtx+b和之前的已經不是同乙個意思,是包含了除以乙個常數的變數。

我們此時對不等式組進行組合,兩個表示式可以用乙個通式來表達:

這是我們最優化問題中的限制條件。

回到我們的最優化問題:(點到超平面的距離)

距離 :(最大化) d = |wtx + b| / ||w||

分析: |wtx + b|這裡起作用的點,都是支援向量點,對於正向類的點, wtx + b = 1,對於負向類的點, wtx + b = -1,所以 |wtx + b| = 1

所以問題轉化為:

距離 :(最大化) d = 1 / ||w||

所以問題轉化為:

距離 :(最小化) ||w||

根據前輩們的經驗,在結果不受影響的情況下,表示式轉化為:

距離 :(最小化)(1 / 2) w2

所以整個數學問題表達為:

總結

我們推理了一大圈,其實並沒有真正的去解這個帶限制條件的最優化問題。這是最優化中的,二次歸一化問題,據說求解過程,相當的複雜。所幸,術業有專攻,強大是數學家們給出了完美的解決思路,並且我們的前輩已經將解決方法封裝成了一類工具,我們只需要將我們的問題引數傳進去,美妙的答案就會為我們展現出來。所以免去了我們在編寫程式,同時還要花大量時間去求解數學問題的麻煩,專心程式設計就好。

上述展示的分析,屬於支援向量機中最基礎的,完全線性可分的情況。後續還有線性不可分情況,需要使用的支援向量機加核函式,後續學到了,會有後續的總結。

機器學習之支援向量機

描述 用於處理二分類問題,對於二維線性可分的問題,尋找決策邊界 分割線 使得支撐向量到決策邊界的距離盡可能的大.對於線性不可分的問題,則首先將樣本特徵對映到更高維度,再尋找乙個超平面,使得支撐向量到超平面的距離盡可能的小.通過核函式得展開達到這一目的.常用的核函式有線性核,多項式核,高斯核.引入正則...

機器學習之支援向量機SVM 一

svm support verctor machine 支援向量機,最常拿來就是做分類。也就是說,如果我有一堆已經分好類的東西 可是分類的依據是未知的 那當收到新的東西時,svm可以 新的資料要分到哪一堆去。支援向量機通過求得乙個劃分超平面來劃分兩類不同的資料樣本,把正例放在一邊,反例放在一邊。它是...

機器學習之支援向量機(SVM)

svm數學知識具體參考 數學知識補充 對於線性可分的超平面 既然能線性可分,那麼就有超平面 向量化表示 將這資料集分開,使得一側是 1 類,另一側是 1類 第乙個知識點 已知超平面 和資料集 哪個點離這個超平面最近,答案 哪乙個點使得 最小,哪一點離這個超平面最近 第二個知識點 已知超平面 和點x,...