線性可分支持向量機--SVM (1)
給定線性可分的數據集
假設輸入空間(特征向量)為,輸出空間為
。
輸入
表示實例的特征向量,對應於輸入空間的點;
輸出
表示示例的類別。
線性可分支持向量機的定義:
通過間隔最大化或者等價的求出相應的凸二次規划問題得到的分離超平面
以及決策函數:
什么是間隔最大化呢?
首先需要定義間隔, 下面介紹了函數間隔和幾何間隔,幾何間隔可以理解為訓練點到超平面的距離, 二維中就是點到直線的距離,我們要做的就是最小化幾何間隔*。
## 函數間隔和幾何間隔 **函數間隔** 給定訓練數據集T和超平面(w, b) 定義超平面(w,b)關於點(xi, yi)的**函數間隔**:
函數間隔的理解:
描述了點x距離超平面的遠近,對於正確分類的點來說,這個式子與函數間隔是相等的。因此,函數間隔可以表示分類預測的正確性和確信度*。
但是,由於函數間隔會隨着w, b 的改變而改變。例如,(w,b)和(2w, 2b)刻畫的是同一個超平面,但是函數間隔卻變為之前的2倍。因此要引入幾何間隔的概念。
定義超平面(w,b)關於訓練數據集T的函數間隔:
幾何間隔
當樣本點(xi, yi)被正確分類時,點xi與超平面(w,b)的距離可以表示為:
(可以聯系二維空間中點到直線的距離來理解)
所以定義超平面(w,b)關於點(xi, yi)的幾何間隔:
定義超平面(w,b)關於訓練數據集T的幾何間隔:
如圖:
*幾何間隔的理解:
幾何間隔其實就是對函數間隔的規范化, 聯系計算點到直線的公式, 幾何間隔計算出來的就是歐幾里得距離。
間隔最大化
間隔最大化可以寫束最優化問題:
因為我們想要每一個最大化超平面(w,b)關於訓練數據集的集合間隔
約束條件表示的是超平面(w, b)距離每個訓練樣本點的距離都至少是
代入函數間隔和幾何間隔的關系, 得到:
不妨取= 1,那么問題就變成了最大化
了,而
為什么取呢?下面化簡的時候就知道了。
那么我們得到凸二次規划問題如下:
取 = 1的原因和影響:
原因就是上面說到的函數間隔會隨着 w 的改變而改變,所以的取值其實是不會影響最終的結果的,只需要優化 w 就可以了。
影響是, 如果取函數間隔 = 1, 那么滿足
的點就是支持向量*(最上面圖中虛線上的兩個點)
學習的對偶算法
將上面的二次規划問題轉換成對偶問題(參考拉格朗日對偶性(Lagrange duality)),首先引入拉格朗日函數
原始問題是極小極大問題:
對偶問題是極大極小問題:
原理:
通過求對偶問題的最大值即可求得元問題的最小值
對偶問題的求解:
(1)求
對w,b求導得到:
得到Lagrange函數:
即:
(2)求的極大,即是對偶問題:
即對偶問題為:
解出w, b
設求出了最優的一組解
其中至少有一個,可以求出最優的w, b
理由(反證法)(參考拉格朗日乘子(Lagrange multify)和KKT條件):
假如,則由
可知,w = 0,這肯定不是最優解
因此, 至少有一個, 求得最優的w, b:
分類決策函數可以寫成:
算法的綜述: