【直观详解】支持向量机SVM
【閱讀時間】
? ? 13min - 19min
【內容簡介】
? ??詳解解讀什么是支持向量機,如何解支持向量以及涉及的拉普拉斯乘子法,還有核方法的解讀。
支持向量機-SVM(Support Vector Machine)從本質來說是一種:用一條線(方程)分類兩種事物。
有了直觀的感知,在定義這一節在做一些深入的思考,分解名詞(Support Vector Machine)并嘗試解釋:
2?如何求解支持向量機對于我們需要求解的這個超平面(直線)來說,我們知道
它離兩邊一樣遠(待分類的兩個部分的樣本點)
最近的距離就是到支持向量中的點的距離
根據這兩點,抽象SVM的直接表達(Directly Representation)
其實這個公式是一點也不抽象,需要更進一步的用符號來表達。
我們知道在準確描述世界運行的規律這件事上,數學比文字要準確并且無歧義的多,文字(例子)直觀啰嗦,數學(公式)準確簡介
補充一些關于二次規劃算法的相關,(3)式的約束是一個不等式約束,所以我們可以使用KKT條件得到三個條件:
使用這些條件,可以構建高效算法來解這個方程,比如SMO(Sequential Minimal Optimization)就是其中一個比較著名的。至于SMO是如何做的,考慮到現代很多SVM的Pakage都是直接拿來用,秉承著前人付出了努力造了輪子就不重復造的核心精神,直接調用就好
已經說明了如何求得方程,以上的推導形式都是建立在樣本數據線性可分的基礎上,如果樣本數據你中有我我中有你(線性不可分),應該如何處理呢?這里就需要引入軟間隔(Soft Margin),意味著,允許支持向量機在一定程度上出錯
三種常見損失函數如下圖
(8)式就是常見的軟間隔支持向量機,其中,每一個樣本都有一個對應的松弛變量,用以表征該樣本不滿足約束的程度,求解的方法同理硬間隔支持向量機
3?支持向量機擴展以上我們求解的支持向量機都是在線性情況下的,那么非線性情況下如何處理?這里就引入:核方法
對于這樣的問題,可以將樣本從原始空間映射到一個更高為的特征空間,使得樣本在這個特征空間內線性可分。
同理上文中引入拉格朗日乘子,求解整個方程后可得
也可以通過函數組合得到這些值
多類問題可以使用兩兩做支持向量機,再由所有的支持向量機投票選出這個類別的歸屬,被稱為one-versus-one approace。
更多文章歡迎訪問https://charlesliuyx.github.io或者訪問原文鏈接
Reference
知乎各類回答
Wiki百科
PRML
周志華-機器學習
總結
以上是生活随笔為你收集整理的【直观详解】支持向量机SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简约而不简单的 Django 新手图文教
- 下一篇: 化学版2048,你玩过吗?内含游戏链接