SVM_支援向量機
SVM簡介
支援向量機(support vector machines,SVM)是一種二分類模型,基本模型是定義線上性空間上的間隔最大的線性分類器,間隔大使它有別於普通的感知機,通過核技巧隱式的在輸入空間直接求解對映空間中特徵向量的內積,使其成為一個非線性分類器。;svm還包括核技巧,使它成為實質上的非線性分類器。
SVM的學習策略是間隔最大化,可形式化為一個求解凸二次規劃的問題,等價於正則化的合頁損失函式的最小化問題。SVM的學習演算法就是求解凸二次規劃的最優化演算法。
SVM的幾個核心概念
1 確定超平面及函式間隔
由空間上的平面公式確定超平面wx+b = 0,且|wx+b|表示點x到平面上的距離。正例負例位於分割平面兩側,因此y(wx+b) 可同時表示分類正確性以及距離確信度。這也就是函式間隔,其被定義為訓練集中所有點到超平面距離的最小值。
2 幾何間隔
由於成比例地縮放w和b會使得 |wx+b| 跟著成比例縮放,因此,需要對法向量w加上約束,使得間隔是確定的,也就是函式間隔整體除以 ||w||,也就得到了幾何間隔
3 間隔最大化(硬間隔)
分為硬間隔最大和軟間隔最大
SVM的基本思想就是求解可以正確劃分資料集並且幾何間隔最大的分離超平面,其原因是線性可分超平面有無數個,但是間隔最大超平面是唯一的。
間隔最大化的意思就是以充分大的確信度對訓練資料進行分類,也就是說,不僅將正負例項分開,同時對最難分的例項點(距離超平面最近的點)也有足夠大的確信度將其分離。
4 支援向量
與超平面最近的點被稱為支援向量,也就是使得原始問題約束項成立的點。
實際上離超平面很遠的點已經被正確分類,我們讓它離超平面更遠並沒有意義。反而我們最關心是那些離超平面很近的點,這些點很容易被誤分類。如果我們可以讓離超平面比較近的點儘可能的遠離超平面,那麼我們的分類效果會好有一些。
5核函式
注意,核函式本質不是將特徵對映到高維空間,而是找到一種直接在低位空間對高維空間中向量做點積運算的簡便方法。
6 為何將原始問題轉化為對偶問題
總是說對偶問題更容易求解,道理在哪呢?
之所以說換為對偶問題更容易求解,其原因在於降低了演算法的計算複雜度。在原問題下,演算法的複雜度與樣本維度相關,即等於權重w的維度,而在對偶問題下,演算法複雜度與樣本數量有關,即為拉格朗日運算元的個數。
因此,如果你是做線性分類,且樣本維度低於樣本數量的話,在原問題下求解就好了,Liblinear之類的線性SVM預設都是這樣做的;但如果你是做非線性分類,那就會涉及到升維(比如使用高斯核做核函式,其實是將樣本升到無窮維),升維後的樣本維度往往會遠大於樣本數量,此時顯然在對偶問題下求解會更好。
另一方面,我們有分析過,只有在支援向量上的樣本對應的拉格朗日運算元λ才大於0,其餘的λ都是=0,而轉為對偶問題的計算物件僅有λ,所以大大降低了計算複雜度。
tip:(百度詞條)
原始-對偶方法的基本思想是為了得到原問題的基礎容許解,常用的方法是首先在原問題中引入人工變數,將目標函式換成人工變數之和的負值;
然後極大化目標函式,並將得到的最優基礎容許解消去人工變數,此解即為原問題的基礎容許解,
如果對偶問題有容許解與原問題的基礎容許解滿足互補鬆弛條件,則原問題的基礎容許解也就成為最優基礎容許解。
基本思想:
原始-對偶方法是求解線性規劃的一種演算法,指求解線性規劃的一類特殊對偶型方法,其特殊性在於,它是以鬆弛互補性條件為基礎去構造一個由原問題產生的限定問題,並通過求解此限定問題去改善解對原問題的可行性,這一過程含有單純形法與對偶單純形方法的思想,所以有此名。
合頁損失函式
在支援向量機中,構造目標函式時可以選用合頁損失函式作為損失函式。合頁損失函式不僅要分類正確,而且確信度足夠高時損失才是0,也就是說,合頁損失函式對學習有更高的要求。
合頁損失函式的計算:
下標“+”表示以下取正值的函式。
https://zhuanlan.zhihu.com/p/31886934
https://zhuanlan.zhihu.com/p/88314990
相關文章
- 支援向量機
- 支援向量機(SVM)
- 支援向量機之線性可分向量機
- SVM——支援向量機(完整)
- 感知機與支援向量機 (SVM)
- 對SVM支援向量機(1)
- [譯] 支援向量機(SVM)教程
- 機器學習:支援向量機(SVM)機器學習
- 機器學習——支援向量機(SVM)機器學習
- 【機器學習】支援向量機分類機器學習
- 機器學習——支援向量機SVM(一)機器學習
- 監督學習之支援向量機
- 支援向量機(SVM)之硬閾值
- 分類演算法-支援向量機 SVM演算法
- 支援向量機(SVM)和python實現(二)Python
- 支援向量機|SMO演算法實現演算法
- 支援向量機python實現(簡易版)Python
- 【機器學習】支援向量機(個人筆記)機器學習筆記
- 人工智慧-機器學習-支援向量機SVM人工智慧機器學習
- 機器學習之支援向量機的超平面機器學習
- 機器學習基礎專題:支援向量機SVM機器學習
- 吳恩達機器學習系列17:支援向量機吳恩達機器學習
- 演算法金 | 再見,支援向量機 SVM!演算法
- Python數模筆記-Sklearn(5)支援向量機Python筆記
- 《Machine Learning in Action》—— 剖析支援向量機,優化SMOMac優化
- 機器學習之支援向量與間隔機器學習
- 非線性支援向量機 與核函式函式
- SVM 支援向量機演算法-原理篇演算法
- SVM 支援向量機演算法-實戰篇演算法
- 支援向量機(Support Vector Machine,SVM)—— 線性SVMMac
- OpenCV筆記(3)實現支援向量機(SVM)OpenCV筆記
- 機器學習之支援向量機原理和sklearn實踐機器學習
- 吳恩達機器學習筆記 —— 13 支援向量機吳恩達機器學習筆記
- 透過現象看本質,圖解支援向量機圖解
- 支援向量機 (二): 軟間隔 svm 與 核函式函式
- 支援向量機(SVM)從原理到python程式碼實現Python
- 機器學習演算法筆記之5:支援向量機SVM機器學習演算法筆記
- 支援向量機SVM:從數學原理到實際應用