機器學習 --- 線性支援向量機
支援向量機是一種二分類模型,目的是尋找一個超平面對樣本進行劃分,其基本模型定義為特徵空間上的間隔最大的線性分類器。
一、線性支援向量機的直觀理解
給定訓練樣本集 , ,模型旨在能基於訓練集在樣本空間中找到一個合適的劃分超平面。
在下圖的二維平面中,希望有一個超平面即一條線可以將正負樣本很好分開:
由上圖直觀的感受,可以將樣本分開的劃分超平面可能會有很多,但一般會選擇中間那條黑色加粗的線。畢竟訓練集從某種程度上來說只是近似於樣本分佈,因此更希望能找到一個劃分超平面對分類結果具有很好的魯棒性,即具有對訓練集中沒有包含的某些樣本具有很好的泛化效果。而中間的這條線對分類的結果有著更好的“容忍性”
二、線性超平面
在樣本空間中,劃分超平面定義成:
根據線性代數的知識,引數 決定了超平面的方向,又被稱作法向量,引數 決定了超平面與遠點之間的距離。這與邏輯迴歸中假設函式十分的相像。不同之處在於,邏輯迴歸中通過啟用函式將函式值對映到 區間上。但實質上決定分類結果的還是引數 ,
類似地,假設超平面 能將訓練樣本正確分類,則滿足:
由之前的邏輯迴歸可以知道,當點能滿足:
也能分類樣本,但這種情況下當 同時放大或縮小,結果不受影響。超平面還是那個超平面,即多個滿足一定規則的 ,其可能對應同一個超平面。
三、支援向量
上圖中,距離超平面最近的幾個訓練樣本點使得下式成立
則這些點又被稱作支援向量,兩個異類支援向量到超平面的距離 稱作間隔。
由高中數學,這個間隔等於兩個異類支援向量的差在 上的投影。因此:
聯立(1)(2)式,得到:
整個問題現在歸類到最大間隔
這就是支援向量機的基本型式。
四、求解向量機基本型式
問題轉化成如何求解(3)式,由於這是一個凸二次規劃問題,我們使用拉格朗日乘子法將問題轉化成對偶問題(拉格朗日原理請參照拉格朗日乘子法和KTT條件)。對每個約束條件新增拉格朗日乘子 ,去掉約束條件,目標函式寫成:
然後固定 ,如果要讓 關於 最小化,對 分別求偏導:
將(5)(6)代入(4)中,得到對偶式:
求解上式用到了SMO演算法:
演算法思路是首先固定 之外的所有引數,再求 的極值。約束項 保證了能通過其他的變數匯出。於是SMO演算法每次選擇兩個變數 ,固定其他引數,迭代至收斂。
主要的步驟是:
- 選取一對需要更新的變數
- 固定 以外的引數,求解(7)式獲得更新後的
求解過程中,在僅考慮 的情況下,約束條件(8)可以重寫為:
代入到(7)式中,消去 ,得到一個關於 的單變數二次規劃問題。
求出 的值後,由(5)式求解引數 :
這裡的 指得是極值情況下的 值,對應於邊界的支援向量,再求引數 :
即:
那麼極值情況下的 :
成功求解引數 後,劃分超平面也就確立下來。
1.支援向量機通俗導論(理解SVM的三層境界) - Mac Track - CSDN部落格
3.深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件
4.周志華. 機器學習[M]. 清華大學出版社, 2016