支持向量機(Support Vector Machine, SVM)是一種二分類模型。給定訓練集D = {(x1,y1), (x2,y2), ..., (xm,ym)},分類學習的最基本的想法即是找到一個超平面S:
,從而將訓練集D的樣本空間中不同類別的樣本區分開。
SVM的模型,由簡至繁地,包括:線性可分支持向量機(linear SVM in linearly separable case)、線性支持向量機(linear SVM)以及非線性支持向量機(non-linear SVM)。
當訓練數據線性可分時,SVM試圖尋找硬間隔最大化(hard margin maximization)的划分超平面,因為這樣的超平面產生的分類結果是最魯棒的,由此學習的線性分類器稱為線性可分支持向量機;而當訓練數據近似線性可分時,通過軟間隔最大化(soft margin maximization),也可學習得到分類器,稱為線性支持向量機;當數據線性不可分時,則可以使用核技巧(kernel methods)以及軟間隔最大化,習得非線性支持向量機。“間隔、”核技巧“等相關概念均將在下文中予以闡述。
一、線性可分支持向量機
1.1 間隔與支持向量
如前文所述,划分超平面可以用線性方程
來描述,其中ω為法向量,b為位移。於是,划分超平面可以由ω和b確定,記為(ω, b)。利用高中解析幾何的相關知識容易推算出,樣本空間中任意點到超平面(ω, b)的距離即為

由於若超平面(ω', b')可以對樣本正確分類,則對於(xi,yi),若yi=+1,則
;若yi=-1,則
。令

則總存在縮放變換ςω→ω',ςb→b'使得上式成立。由此,定義”支持向量“(support vector)為滿足上式且距離超平面最近的點。兩個異類支持向量到超平面的距離之和被稱為”間隔“(margin),為
。順便一提,所謂樣本都必須划分正確的情形稱為“硬間隔”(hard margin),而“軟間隔”(soft margin)則允許某些樣本不滿足
。
SVM的任務是找到”最大間隔“(maximum margin)的划分超平面。於是,SVM的基本型可以表達為

進而可以寫為

值得注意的是,間隔貌似只與ω有關,但事實上,b通過約束隱式地影響着ω的取值,進而對間隔產生影響。
1.2 對偶問題與SMO算法
為求解得到最大間隔划分超平面的模型
,一種高效的辦法是利用lagrange乘子法得到SVM基本型的”對偶問題“(dual problem),再利用SMO算法求解。
首先,在基本型中,對每條約束添加lagrange乘子
,得到lagrange函數為

為取到函數的最值,令L(ω,b,α)對ω和b分別求偏導為零,得到


代入L(ω,b,α),消去ω和b,即得到SVM基本型的對偶問題


且上述過程需要滿足KKT條件,即要求

直接用二次規划算法來求解對偶問題,開銷較大。比較高效的是SMO算法(Sequential Minimal Optimization)。
SMO首先初始化參數,然后不斷執行下述步驟直至收斂:
- 選取一對需要更新的αi和αj;
- 固定αi和αj以外的參數,求解上式獲得更新后的αi和αj。
最后,由
,可以確定偏移項b為

1.3 核函數
如果原始樣本空間中不存在可以正確划分樣本的超平面,則可以將樣本從原始空間映射到更高維的特征空間,使得樣本在此特征空間內線性可分。事實上,若原始空間是有限維的,則一定存在一個更高維的空間使樣本線性可分。
令Φ(x)表示將x映射后的特征向量,則在特征空間中,划分超平面對應的模型可表示為
。於是得到基本型

及其對偶問題


直接計算Φ(xi)TΦ(xj)通常比較困難,為此,引入”核函數“(kernel function)k(•,•)。設k(xi, xj) = <Φ(xi), Φ(xj)> = Φ(xi)TΦ(xj),則對偶問題可以重寫為

求解后即得到

此展式亦稱為”支持向量展式“(support vector expansion)。
那么,合適的核函數是否一定存在?什么樣的核函數能作為核函數呢?對此,有如下定理:
定理 令
為輸入空間,k(•,•)為定義在
上的對稱函數,則k是核函數當且僅當對於任意數據D = {x1,x2,...,xm},”核矩陣“(kernel matrix)K總是半正定的:
書中給出了幾種常見的核函數,見於下表

此外,核函數還可以通過函數組合得到:
- 若k1和k2是核函數,則k1(x,z)k2(x,z)也是核函數;
- 若k1是核函數,則對於任意函數g(x),k(x,z) = g(x)k1(x,z)g(z)也是核函數。
二、線性支持向量機
2.1 軟間隔與正則化
如前文提到的,而“軟間隔”允許某些樣本不滿足
。盡管如此,還是希望不滿足約束的樣本盡可能少。於是,優化目標可以改寫為

其中,C>0是常數,
是“0/1損失函數”

為了使得優化目標更易於求解,引入一些數學性質更好的函數來替代
,成為“替代損失”(surrogate loss)。替代損失函數通常是凸的、連續的,且是
的上界。下面列出了一些常用的替代損失函數:
- hinge損失:
- 指數損失(exponential loss):
- 對率損失(logistic loss):
例如,如果采用hinge損失,則優化目標變為

進而引入“松弛變量”(slcak variable)ξi≥0。每個樣本都對應一個松弛變量,用以表征該樣本不滿足約束
的程度。由此,上式可以重寫為


此即為常見的“軟間隔支持向量機”,亦即“線性支持向量機”。
類似線性可分支持向量機的求解,首先通過lagrange乘子法得到lagrange函數

其中
,
是lagrange乘子。對ω,b,ξi分別求偏導為零,得到

代入原式即得到對偶問題

且上述過程滿足KKT條件

值得注意的是,SVM與對率回歸的優化目標相近。比如,若將對率損失作為替代損失函數帶入,則幾乎就得到對率回歸模型。

不過,與對率回歸模型不同的是,SVM不具有概率意義。對率回歸可直接用於多分類任務,而SVM則需要推廣。另一方面,由於hinge損失有一塊“平坦的”零區域,使得SVM的解具有稀疏性,而對率回歸的解則依賴更多的訓練樣本,預測開銷更大。
用不同函數作為替代損失函數得到的學習模型的性質與替代函數直接相關,但這些模型具有一個共性:即優化目標中,第一項用來描述划分超平面的“間隔”大小,另一項則用來表述訓練集上的誤差。於是,更一般的形式可寫為

其中Ω(ƒ)稱為“結構風險”(structural risk),用於描述模型自身的一些性質;
成為“經驗風險”(empirical risk),用於描述與訓練集的契合程度。上述形式也可稱為“正則化”(regularization)問題,其中Ω(ƒ)為正則化項,C為正則化常數,而Lp范數(norm)為常用的正則化項。比如,L2范數傾向於非零分量個數盡量稠密;而L0和L1范數傾向非零分量個數盡量少。
2.2 支持向量回歸
首先回顧一下回歸問題:給定訓練樣本D = {(x1,y1), (x2,y2), ..., (xm,ym)},希望學得一個形如
的模型,使得ƒ(x)與y盡可能接近,ω和b是待確定的模型參數。基於ƒ(x)與y的差別計算損失,當且僅當ƒ(x)與y完全相同時,損失才為0。
與傳統回歸模型不同,“支持向量回歸”(Support Vector Regression, SVR)假設我們能容忍ƒ(x)與y之間最多有ε的偏差。於是,SVR問題可以形式化為

C為正則化常數,
為ε-不敏感損失(ε-insensitive loss)函數

再引入松弛變量
和
,將優化目標重寫為


同樣地,用lagrange乘子法,可以得到lagrange函數

偏導置零求解得到對偶問題
SVR的解形如

以及相應的KKT條件

其中,滿足
的樣本即為SVR的支持向量。同樣地,選取多個滿足0<αi<C的樣本求平均值解得b。
考慮特征映射,則利用核函數k(xi,xj)=Φ(xi)TΦ(xj),SVR表示為

2.3 核方法
從SVM和SVR的解的形式不難看出,若不考慮偏移項b,則其學習得到的模型總能表示成核函數k(x,xi)的線性組合。事實上,對核函數,有下述“表示定理”(representer theorem):
表示定理 令
為核函數k對應的再生希爾伯特空間,
表示
空間中關於h的范數,對於任意單調遞增函數Ω: [0,∞)→
和任意非負損失函數
:
→[0,∞),優化問題
的解總可以寫為
所謂“核方法”(kernel methods),就是人們發展出的一系列基於核函數的學習方法。其中最常見的,就是通過引用核函數——“核化”——來將線性學習器拓展為非線性學習器。
下面以線性判別分析為例,介紹由核方法得到的分線性拓展,“核線性判別分析”(Kernelized Linear Discriminant Analysis, KLDA)。
設映射
將樣本映射到特征空間
。線性判別分析在
中執行,以求得
。類似於在前一篇博文『機器學習中的線性模型』提到的,最大化目標為

令Xi表示第i(i=0,1)類樣本的集合,其樣本數為mi;總樣本數m=m0+m1。則第i類樣本在特征空間
中的均值為

於是,類間散度矩陣和類內散度矩陣的計算公式如下

將J(ω)作為損失函數
,再令Ω≡0,由表示定理,h(x)可寫為

於是

令K為核函數k對應的核矩陣,1i為第i類樣本的指示向量(即1i的第j個分量為1當且僅當xj屬於Xi,否則為0)。再令


於是,KLDA的優化目標即等價為

這樣以來,即便映射Φ的具體形式難以知道,只要使用線性判別分析即可求解得到α,進而可以由h(x)的表示定理表達式得到投影函數h(x)。

為輸入空間,k(•,•)為定義在
上的對稱函數,則k是核函數當且僅當對於任意數據D = {x1,x2,...,xm},”核矩陣“(kernel matrix)K總是半正定的:
為核函數k對應的
表示
和任意非負損失函數
:
→[0,∞),優化問題
