很久之前就想把SVM系統的解析一下,爭取把西瓜書的這一部分順一遍,並用C語言對各個部分進行解析,加深理解。
基本概念
給定訓練樣本集\(D = {(Xl,Yl) , (X2,Y2) , . . . , (Xm, Ym)}\), \(Yi ε{-1, 1)\),分類學習最基本的想法就是基於訓練、集D 在樣本空間中找到一個划分超平面、將不同類別的樣本分開。

在樣本空間中,划分超平面可通過如下線性方程來描述:

其中,\(w = (w1;w2,... , ωd)\)?決定了超平面的方向; b 為位移項,決定了超平面與原點之間的距離.顯然,划分超平面可被法向量ω 和位移b 確定,下面我們將其記為(磯的.樣本主R 間中任意點2 到超平面(磯的的距離可寫為:
間隔與支持向量
間隔:,兩個異類支持向量到超平面的距離之和,即\(\gamma = \frac{2}{\omega}\)
支持向量:距離超平面最近的這幾個訓練樣本點使式(6.3) 的等號成立,


SVM的基本型

對偶問題


那么?如何求解式(6.11) 呢?不難發現j 這是一個三次規划問題?可使用通
用的二次規划算法來求解;然而?該問題的規模正比於訓練樣本數7 這會在實際
任務中造成很大的開銷.為了避開這個障礙,人們通過利用問題本身的特性,提
出了很多高效算法, SMO (Sequential Minimal Optimization) 是其中一個著名
的代表[Platt , 1998].
SMO算法
SMO的基本思路是先固定向之外的所有參數,然后求向上的極值.由於存在約束藝匯1 叫ντ 工0 ,若固定向之外的其他變量?則αz 可由其他變量導出.於是, SMO 每次選擇兩個變量問和町,並固定其他參數.這樣,在參數初始化
后, SMO 不斷執行如下兩個步驟直至收斂:
- 選取一對需更新的變量\(\alpha_i\)和\(α_j\);
- 固定\(α_i\)和\(α_j\)以外的參數,求解式(6.11)獲得更新后的叫\(α_i\)和\(α_j\).
注意到只需選取的問豐IJα3 中有一個不滿足KKT 條件(6.13) ,目標函數就會在選代后減小[Osuna et al., 1997]. 直觀來看, KKT 條件違背的程度越大?則變量更新后可能導致的目標函數值減幅越大.於是, SMO 先選取違背KKT 條件程度最大的變量.第二個變量應選擇一個使目標函數值減小最快的變量,但由於比較各變量所對應的目標函數值減幅的復雜度過高,因此SMO 采用了一個啟發式:使選取的兩變量所對應樣本之間的問隔最大. 種直觀的解釋是,這樣的兩個變量有很大的差別,與對兩個相似的變量進行更新相比,對它們進行更新會帶給目標函數值更大的變化.

核函數
對於線性不可分的訓練樣本,可將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分.



核函數定理

常用的核函數

