支援向量機SVM推導及求解過程
支援向量機是屬於原創性、非組合的具有明顯直觀幾何意義的分類演算法,具有較高的準確率。
使用SVM演算法的思路:(1)簡單情況,線性可分情況,把問題轉化為一個凸優化問題,可以用拉格朗日乘子法簡化,然後用既有的演算法解決;(2)複雜情況,線性不可分,用核函式將樣本投射到高維空間,使其變成線性可分的情形,利用核函式來減少高緯度計算量。
一、SVM相關基本概念
分割超平面
設C和D為兩不相交的凸集,則存在超平面P,P可以將C和D分離。
兩個集合的距離,定義為兩個集合間元素的最短距離。
做集合C和集合D最短線段的垂直平分線。
(影象摘自七月演算法)
但是, 如何定義兩個集合的"最優"分割超平面?找到集合“邊界”上的若干點,以這些點為“基礎”計算超平面的方向,以兩個集合邊界上的這些點的平均作為超平面的“截距”。這些點被稱作支援向量,點是可用向量方式表示。
(影象取自七月演算法)
輸入資料
假設給定一個特徵空間上的訓練資料集
其中,,為第i個例項(若n>1,即x是多維度,具有多個屬性特徵,此時為向量);
為的類標記,當為+1時,稱為正例,當為-1時,稱為負例。
線性可分支援向量機
給定線性可分訓練資料集,通過間隔最大化得到的分離超平面為
整理符號
分割平面:
訓練集:
目標值:
新資料的分類:
二、SVM推導過程
推導目標函式
根據題設
有:
w,b等比例縮放,則t*y的值同樣縮放,從而:
最大間隔分離超平面
目標函式:,表示最近點到直線距離儘可能大
(影象取自七月演算法)
函式間隔和幾何間隔
分割平面: (函式間隔)
總可以通過等比例縮放w的方法,使得兩類點的函式值都滿足
(影象取自七月演算法)
建立目標函式
1.總可以通過等比例縮放w的方法,使得兩類點的函式值都滿足
2.約束條件:
3.原目標函式:
4.新目標函式:
5.目標函式變換一下:
6.拉格朗日乘子法
7.原問題是極小極大問題
原問題的對偶問題是極大極小問題
8.將6中的拉格朗日函式分別對w, b 求偏導並令其為0:
9.計算拉格朗日的對偶函式
10.繼續求的極大
11.整理目標函式:新增負號
12.線性可分支援向量機學習演算法
計算結果如下
13.分類決策函式
三、線性不可分SVM
1.若資料線性不可分,則增加鬆弛因子,使函式間隔加上鬆弛變數大於等於1,
則約束條件變成
目標函式: (這裡是為了保證鬆弛因子不至於過大)
2.此時的凸優化為
3.拉格朗日函式
4.將三式代入L中,得到
5. 整理,得到對偶問題的最優化問題
求得最優解
6.計算
實踐中往往取支援向量的所有值取平均,作為b*
7.求得分離超平面
8.分類決策函式為
核函式:可以使用核函式,將原始輸入空間對映到新的特徵空間,從而使得原本線性不可分的樣本可在核空間可分。
有多項式核函式
高斯核函式RBF
字串核函式
在實際應用中,往往依賴先驗領域知識或交叉驗證等方案才能選擇有效的核函式。沒有更多先驗資訊,則使用高斯核函式。
核函式對映:
(影象取自七月演算法)
(影象取自七月演算法)
高斯核
(影象取自七月演算法)
粗線是分割超“平面”,其他線是y(x)的等高線,綠色圈點是支援向量點。
高斯核是無窮維的,因為
注:SVM和Logistic迴歸的比較:(1)經典的SVM,直接輸出類別,不給出後驗概率;(2)Logistic迴歸,會給出屬於哪一個類別的後驗概率;(3)比較重點是二者目標函式的異同。