Page 121~Page 123
比較好的推文可以參考這篇,講的比西瓜書詳細
關於svm的推導不準備贅述了,這裏只注重結論,
超平面 wTx+ b = 0
對於線性可分的情況,超平面其實是我們需要求的東西
支持向量 就是離超平面最近的向量,可以是一個可以是多個
根據相關公式推導:最終要求的最優的超平面其實只要優化
凸函數: 對於一元函數f(x),我們可以通過其二階導數f″(x) 的符號來判斷。如果函數的二階導數總是非負,即f″(x)≥0 ,則f(x)是凸函數對於多元函數f(x),我們可以通過其Hessian矩陣(Hessian矩陣是由多元函數的二階導數組成的方陣)的正定性來判斷。如果Hessian矩陣是半正定矩陣,則是f(x)凸函數, 凸函數是強對偶函數。
SVM步驟:
- 構造拉格朗日函數
- 通過強對偶性轉化:先求最小化 w,b帶入原式中,
a:轉化
原來的最小最大問題可以轉化爲最大最小問題
b:求偏導,帶入原函數
- SMO算法求解
SMO(Sequential Minimal Optimization),序列最小優化算法,其核心思想非常簡單:每次只優化一個參數,其他參數先固定住,僅求當前這個優化參數的極值。我們來看一下 SMO 算法在 SVM 中的應用。
多次迭代求解出i, - 帶入2中解出w,b
- 建立超平面使用決策函數sign(.)分類
? 如果遇到了不能夠完全線性可分的樣本
採用軟間隔,
多引入一項,然後重走上述過程,其中優化函數多加一向做正則化
非線性分類的SVM
將當前維線性不可分樣本映射到更高維空間中,讓樣本點在高維空間線性可分,我們用 x 表示原來的樣本點,用f(x) 表示 x 映射到特徵新的特徵空間後到新向量。那麼分割超平面可以表示爲:
只有一定不同,原來是兩個向量乘,現在變成兩個向量的映射乘,
? 爲什麼要使用核函數而不是直接擴充維度
核函數的引入一方面減少了我們計算量,另一方面也減少了我們存儲數據的內存使用量。