支持向量機(support vector machines,SVM)是一種二類分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器,支持向量機還包括核技巧,這使它成爲實質上的非線性分類器。支持向量機的學習策略就是間隔最大化,可形式化爲一個求解凸二次規劃(convex quardratic)的問題,也等價於正則化的合頁損失函數的最小化問題。
支持向量機學習方法包含構建由簡到繁的模型,線性可分支持向量機,線性支持向量機及非線性支持向量機。簡單模型是複雜模型的基礎,也是複雜模型的特殊情況。
當訓練數據線性可分時,通過硬間隔最大化(hard margin maximization),學習一個線性的分類器,即線性可分支持向量機,又稱爲硬間隔支持向量機;
當訓練數據近似線性可分時,通過軟間隔最大化(soft margin maximization)學習一個線性的分類器,即線性支持向量機,又稱爲軟間隔支持向量機;
當訓練數據線性不可分時,通過使用核技巧(kernel trick)及軟間隔最大化,學習非線性支持向量機。
當輸入空間爲歐式空間或離散集合,特徵空間爲希爾伯特空間時,核函數(kernel function)表示將輸入從輸入空間映射到特徵空間得到的特徵向量之間的內積。通過使用核函數可以學習非線性向量機,等價於隱式地在高維的特徵空間中學習線性支持向量機。這樣的方法稱爲核技巧。核方法(kernel method)是比支持向量機更爲一般的機器學習方法。
1線性可分支持向量機與硬間隔最大化
1.1線性可分支持向量機
考慮一個二類分類問題,假設輸入空間與特徵空間爲兩個不同的空間,輸入空間爲歐氏空間或離散集合,特徵空間爲歐氏空間或希爾伯特空間,線性支持向量機假設這兩個空間的元素一一對應,並將輸入空間中的輸入映射爲特徵空間中的特徵向量。所以,輸入都由輸入空間轉換到特徵空間,支持向量機的學習是在特徵空間裏進行的。
假設給定一個特徵空間上的訓練數據集
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,
xi∈Rn,yi∈{+1,−1}
學習的目標是在特徵空間中找到一個分離超平面,能將實例分到不同的類,分離超平面對應於方程
w⋅x+b=0 ,它由法向量
w 和截距
b 決定,可用
(w,b) 來表示。分離超平面將特徵空間劃分爲兩部分。一部分是正類,一部分是負類,法向量指向的一側爲正類,另一類是負類。
一般地,當訓練數據集線性可分時,存在無窮多個分離超平面可將兩類數據正確分開。感知機利用誤分類最小的策略,求的分離超平面,不過這時的解有無窮多個。線性可分支持向量機利用間隔最大化求最優分離超平面,這時,解是唯一的。
1.1定義(線性可分支持向量機)給定線性可分訓練數據集,通過間隔最大化或等價求解相應的凸二次規劃問題學習得到的分離超平面爲
w∗⋅x+b∗=0
以及相應的分類決策函數
f(x)=sign(w∗⋅x+b∗)
稱爲線性可分支持向量機
1.2函數間隔和幾何間隔
在超平面w⋅x+b=0 確定的情況下,|w⋅x+b| 能夠相對地表示點x 距離超平面的遠近,而w⋅x+b 的符號與類標記y 的符號是否一致能夠表示分類是否正確,所以可用量y(w⋅x+b) 來表示分類的正確性及確信度,這就是函數間隔(function margin)
1.2定義(函數間隔)對於給定的訓練數據集T 和超平面(w,b) ,定義超平面(w,b) 關於樣本點(xi,yi) 的函數間隔爲
γi^=yi(w⋅xi+b)
定義超平面(w,b) 關於訓練數據集T 的函數間隔爲超平面(w,b) 關於T 中所有樣本點(wi,yi) 的函數間隔之最小值,即
γ̂ =mini=1,...,Nγi^
函數間隔可以表示分類預測的正確性及確信度,但是選擇分離超平面時,只有函數間隔還不夠。因爲只要成比例地改變
w 和
b ,超平面並沒有改變,但函數間隔缺稱爲原來的2倍,這一事實啓示我們,可以對分離超平面的發向量
w 加某些約束,如規範化,
||w||=1 ,使得間隔是確定的。這時函數間隔稱爲幾何間隔(geometric margin)
1.3定義(幾何間隔)對於給定的訓練數據集T 和超平面(w,b) ,定義超平面(w,b) 關於樣本點的幾何間隔爲
γi=yi(w||w||⋅xi+b||w||)
定義超平面(w,b) 關於訓練數據集T 的幾何間隔爲超平面(w,b) 關於T 所有樣本點(wi,yi) 的幾何間隔之最小值,即γ=mini=1,..Nγi
超平面(w,b) 關於樣本點(xi,yi) 的幾何間隔一般是實例點到超平面的帶符號的距離,當樣本點被超平面正確分類時就是實例點到超平面的距離
1.3間隔最大化
支持向量機學習的基本想法是求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面,對線性可分的訓練數據而言,線性可分分離超平面有無窮多個,但是幾何間隔最大的分離超平面是唯一的。這裏的間隔最大化又稱爲硬間隔最大化
間隔最大化的直觀解釋是:對訓練數據集找到幾何間隔最大的超平面意味着以充分大的確信度對訓練數據進行分類。不僅將正負實例點分開,而且對最難分的實例點(離超平面最近的點)也有足夠大的確信度將它們分開。
1.3.1最大間隔分離超平面
最大間隔分離超平面可以表示爲下面的約束最優化問題:
maxw,bγ
s.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,2,...,N
即我們希望最大化超平面
(w,b) 關於訓練數據集的幾何間隔
γ ,約束條件表示的是超平面
(w,b) 關於訓練樣本點的幾何間隔至少是
γ
考慮幾何間隔和函數間隔的關係式,可將這個問題改寫爲
maxw,bγ̂ ||w||
s.t.yi(w⋅xi+b)≥γ̂ ,i=1,2,..,N
函數間隔
γ̂ 的取值並不影響最優化問題的解。事實上,假設將
w 和
b 按比例改變爲
λw 和
λb ,這時函數間隔稱爲
λγ̂ ,函數間隔的這一改變對上面最優化問題的不等式約束沒有影響,對目標函數的優化也沒有影響,也就是說它產生一個等價的最優化問題。這樣,就可以取
γ̂ =1 ,注意最大化
1||w|| 和最小化
12||w||2 是等價的。於是就得到過下面的線性可分支持向量機學習的最優化問題
minw,b12||w||2
s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N
這是一個凸二次規劃問題。
凸優化問題是指約束最優化問題
minwf(w)
s.t.gi(w)≤0,i=1,2,..,k
hi(w)=0,i=1,2,..,l
其中,目標函數
f(w) 和約束函數
gi(w) 是連續可微的凸函數,約束函數
hi(w) 是
Rn 上的仿射函數。
如果求出了約束最優化問題的解
w∗,b∗ ,那麼就可以得到最大間隔分離超平面
w∗⋅x+b∗=0 及分類決策函數
f(x)=sign(w∗⋅x+b∗) ,及線性可分支持向量機模型。
綜上所述,就有了線性可分支持向量機的學習算法—最大間隔法
1.3.2支持向量和間隔邊界
在線性可分情況下,訓練數據集的樣本點中與分離超平面距離最近的樣本點的實例稱爲支持向量(support vector)。支持向量是使約束條件式yi(w⋅xi+b)−1=0 成立的點。在決定分離超平面時只有支持向量起作用,而其他實例點並不起作用,如果移動支持向量則將改變所求解的解;但如果在間隔邊界以外移動其他實例點,則解是不會改變的
1.4 拉格朗日對偶性
在約束最優化問題中,常常利用拉格朗日對偶性(Lagrange duality)將原始問題轉換爲對偶問題,通過解對偶問題而得到原始問題的解
1.4.1原始問題
假設f(x),ci(x),hj(x) 是定義在Rn 上的連續可微函數,考慮約束最優化問題
minx∈Rnf(x)
s.t.ci(x)≤0, i=1,2,...,k
hj(x)=0, j=1,2,...,l
稱此約束最優化問題爲原始最優化問題或原始問題。
首先,引進廣義拉格朗日函數
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
αi,βj 是拉格朗日乘子,
αi≥0 。考慮
x 的函數
ΘP(x)=maxα,β:αi≥0L(x,α,β)
這裏下標P表示原始問題。
假設給定某個
x ,如果
x 違反原始問題的約束條件,即存在某個
i 使得
ci(w)>0 或者存在某個
j 使得
hj(w)≠0 那麼就有
ΘP(x)=maxα,β:αi≥0[f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)]=+∞
如果滿足約束條件,則
ΘP(x)=f(x) ,否則
ΘP(x)=+∞
所以如果考慮極小化問題:
minxΘP(x)=minxmaxα,β:αi≥0L(x,α,β)
稱爲廣義拉格朗日的極小極大問題。爲了方便,定義原始問題的最優解爲
p∗=minxΘP(x)
1.4.2對偶問題
定義ΘD(α,β)=minxL(x,α,β) ,再考慮極大化ΘD(α,β) ,即
maxα,β:αi≥0ΘD(α,β)=maxα,β:α≥0minxL(x,α,β)
問題
maxα,β:α≥0minxL(x,α,β) 稱爲廣義拉格朗日函數的極大極小問題。定義對偶問題的最優解
d∗=maxα,β:α≥0ΘD(α,β) 爲對偶問題的值。
1.4.3原始問題和對偶問題的關係
若原始問題和對偶問題都有最優解,則
d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗
x∗,α∗,β∗
分別是原始問題和對偶問題的解的充分必要條件是
x∗,α∗,β∗ 滿足下面的KKT條件
∇xL(x∗,α∗,β∗)=0
∇αL(x∗,α∗,β∗)=0
∇βL(x∗,α∗,β∗)=0
α∗ici(x∗)=0,i=1,2,...,k
ci(x∗)≤0,i=1,2,...,k
α∗i≥0,i=1,2,...,k
hj(x∗)=0,j=1,2,...,l
1.5學習的對偶算法
首先,構建拉格朗日函數。爲此,對每一個不等式約束引進拉格朗日乘子,αi≥0,i=1,2,...,N 定義拉格朗日函數:
L(w,β,α)==12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi
根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:
maxαminw,bL(w,β,α)
所以爲了得到對偶問題的解,需要先求
L(w,β,α) 對
w,b 的極小,再求對
α 的極大
(1)求
minw,bL(w,β,α)
將拉格朗日函數
L(w,β,α) 分別對
w,b 求偏導並令其等於0.
∇wL(w,β,α)=w−∑i=1Nαiyixi=0
∇b(w,β,α)=∑iNαiyi=0
或者
w=∑i=1Nαiyixi
∑i=1Nαiyi=0
L(w,β,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi[(∑j=1Nαiyixj)⋅xi+b]+∑i=1Nαi
=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
即
minw,βL(w,β,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
(2)求
minw,βL(w,β,α) 對
α 的極大,即對偶問題
maxα[−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi]
s.t.∑i=1Nαiyi=0,αi≥0
將此問題由求極大變爲求極小,就等到下面與之等價的對偶最優話問題:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi
s.t. ∑i=1Nαiyi=0
αi≥0,i=1,2,..,N
求解最優化問題的解w∗ ,b∗
w∗=∑i=1Nα∗iyixi
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)