【机器学习】SVM基本线性可分与多分类
上一篇講了線性可分的SVM推導,現在講一講基本線性可分的情形,后面還會介紹多分類的使用以及核函數的使用。
outlier 的處理
給定數據集? ,當樣本數據大部分為線性可分的,存在少量異常值使得數據線性不可分,或者導致分離超平面被擠壓,可以通過一些方法仍然按照線性可分的方式處理,異常值的情況如下圖所示:
以上情況意味著某些樣本點的函數間隔并不滿足大于 1 的要求。為了解決這個問題,為每個樣本引入一個松弛變量, 使得函數間隔可以小于 1 ,即滿足??,這里顯然??不能任意大,因為那會導致任意樣本點都滿足要求,所以要把優化目標改成如下的形式:
上面將不等式約束都已經化成了的形式了,為方便使用拉格朗日乘子法與KKT條件。
這里??叫做懲罰參數,上述的不等式約束記做??的形式,同樣通過對偶的形式求解,首先構造拉格朗日函數:
拉格朗日函數中的乘子?, 且???,很明顯的有:
因此原始問題轉化為:
對于上述問題應用對偶可得:
接下來求解對偶問題,對于極小部分的參數??求導:
將以上結果帶入對偶問題,極小部分便得到一個關于??的函數:
注意這里根據??與??消去了?。
使原始問題滿足KKT條件,則原問題與對偶問題具備強對偶性。(其實在這里可以通過Slater條件成立推出強對偶性,再從強對偶性推出原問題滿足KKT條件,Slater條件為兩個,1是原問題為凸優化問題,這個顯而易見。2是原問題存在嚴格滿足不等式約束的解,這個也是顯而易見的,對于所有不是支持向量的點,都是嚴格滿足這個條件的。故Slater條件是成立的。)
聯立KKT條件與對偶問題約束最后可求解得出
首先由? KKT 條件 (1) 可得:
根據 KKT 條件(3) (4) (6) (9)可知若?,則??,且存在??,使得:
因此便可求得??:
至此,可以總結出帶有異常值的線性可分 SVM 的算法1.3:
Algorithm 1.3
下圖中實線為分離超平面,虛線為間隔邊界,且有間隔邊界與分離超平面的函數距離為1,幾何距離為?。在線性不可分的情況下,求解得到??的分量??對應的樣本實例??中的??稱為支持向量,這時的支持向量要比線性可分復雜一些,如下圖的點,以下支持向量點到間隔邊界的幾何距離均已標注出為?。這個幾何距離是這樣計算的,點? 到分離超平面的函數距離為?, 而分離超平面與間隔邊界的函數距離為 1 ,所以點? 到間隔邊界的距離為??,幾何距離只需除以??即可得到結果。
可見這時候的支持向量或者分布在間隔邊界上,或者在間隔邊界與超平面之間,或者在分離超平面誤分的一側。 根據 KKT 條件可以得出一些很有意思的結論,當??時,根據 KKT 條件 (3) 可得?,即? ,又由于??可得??,根據 KKT 條件 (4) 可得??,所以當??時,可得 ,這時樣本便為支持向量,且落在間隔邊界上;當??時且??,這時便為分類正確的且落在間隔邊界之后的點,至于? 的情況,根據??的不同取值,可分為不同的情況,總結起來便有:
至此,帶有異常值的非線性可分的情況也解決了,但是還需要注意的是數據集是完全非線性可分的。這時便需要引入核方法了。核方法并不是 SVM 的專利,其可以解決一系列機器學習問題。
多分類
至于 K 分類問題 (K>2) ,最簡單的方式便是?one-vs-all?的方法,如下圖所示,該方法共訓練 K 個分類器,對于待分類樣本點,分別使用這 K 個分類器進行分類,對于樣本??分類的計算如下:?,若只有一個 +1 出現,則其為樣本對應類別 k ;但實際情況下構造的決策函數總是有誤差的,此時輸出不只一個 +1 (不只一類聲稱它屬于自己),或者沒有一個輸出為 +1 (即沒有一個類聲稱它屬于自己),這時比較則比較??輸出值,最大者對應類別為樣本 ?的類別 k 。
或者采用 LIBSVM 中?one-vs-one?的方法,其做法是在任意兩類樣本之間設計一個SVM,因此 k 個類別的樣本就需要設計??個SVM。當對一個未知樣本進行分類時,最后得票最多的類別即為該未知樣本的類別。比如說 A,B,C 三類。在訓練的時候針對 (A,B) (A,C) (B,C) 所對應的樣本作為訓練集,然后得到三個模型,在測試的時候,對應的分別對三個模型進行測試,然后采取投票形式得到最后的結果,如下圖所示:
再就是直接使用 Hinge Loss 進行多分類了,這個接下來也會詳細介紹。
參考文章:
致謝ooon大神,從他的博文中學到了很多東西!
支持向量機SVM
?
?
總結
以上是生活随笔為你收集整理的【机器学习】SVM基本线性可分与多分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】SVM线性可分
- 下一篇: 【机器学习】线性回归之梯度下降、多元线性