一. SVM簡介
支持向量機一般用於解決二分類問題,即給定數據集T={(
x1,
y1),(
x2,
y2),(
x3,
y3)…},找到一個可以分開數據集的超平面:
w∗⋅x+b∗=0(式 1.1)此最優超平面應當使支持向量到超平面上的幾何間隔d最大。
如上圖所示,在向量空間中構造三個相互平行的超平面F,Fa,Fb。一般將離超平面F最近的一些樣本點稱之爲支持向量(Support Vector),由支持向量約束構成的超平面Fa,Fb稱爲支持超平面。由於在超平面F與樣本集均確定的條件下,所有支持向量也是確定的,在訓練過程中需要計算所有支持向量到超平面F的幾何間隔d。
二. 將幾何間隔最大值問題轉化爲最小值問題
幾何間隔
d與間隔
u可以用以下公式計算,其中
(x,y)爲樣本點:
d=y⋅(w∗⋅x+b∗)⋅∣∣w∣∣1(式 2.1)
u=y⋅(w∗⋅x+b∗)(式 2.2)
y表示數據標籤,在二分類問題中一般爲1/-1,這樣定義後,不論樣本點在超平面的哪一側,都能保證
u總爲正數。在實際使用中,爲了方便計算,通常固定間隔
u=1,這樣,求
d的最大值問題變爲求
∣∣w∣∣的最小值問題,於是可以轉化爲求解如下的二次規劃問題:
w,bmin21∣∣w∣∣2(式 2.3)
條件:yi⋅(w⋅xi+b)−1≥0,i=1,2,...,N
對於線性可分數據集,這是一個凸二次規劃問題,必有解。
三. 將二次規劃問題轉化爲對偶優化問題
定義拉格朗日函數:
L(w,b,λ)=21∣∣w∣∣2−i=1∑Nλiyi(w⋅xi+b)+i=1∑Nλi(式 3.1)
根據拉格朗日對偶性,(式 2.3)的對偶問題是以下極大極小值問題:
λmaxw,bminL(w,b,λ)(式 3.2)
可以分兩步解決:
- 求
minw,bL(w,b,λ)
拉格朗日函數
L(w,b,λ)分別對
w,b求偏導,並令其等於0,整理後可得到:
w=i=1∑Nλiyixi(式 3.3)
i=1∑Nλiyi=0(式 3.4)將(式 3.3)與(式 3.4)帶入(式 3.1)中,即可得到:
w,bminL(w,b,λ)=−21i=1∑Nj=1∑Nλiλjyiyj(xi⋅xj)+i=1∑Nλi(式 3.5)
- 求
minw,bL(w,b,λ)對
λ的極大值
在(式 3.5)前加負號將極大值問題轉化爲極小值問題:
λmin21i=1∑Nj=1∑Nλiλjyiyj(xi⋅xj)=i=1∑Nλi(式 3.6)
條件:i=1∑Nλiyi=0λi≥0,i=1,2,...,N
由(式 3.6)可以求得拉格朗日乘子
λ,依據
λ帶入(式 3.3)與(式 3.1)中可以求得
w,b,最終帶入(式 1.1)即可得到最終超平面方程爲:
i=1∑Nλiyi(xi⋅x)+yi−i=1∑Nλiyi(xi⋅xj)=0(式 3.7)
四. 核函數
核函數的標準定義:
設
X爲輸入空間,而
H爲特徵空間,設存在一個從
X到
H的映射
ϕ(x):X→H,使得對所有的
x,z∈X,函數
K(x,z)滿足條件:
K(x,z)=ϕ(x)⋅ϕ(z),則稱
K(x,z)爲核函數,
ϕ(x)爲映射函數。式中
ϕ(x)⋅ϕ(z)爲
ϕ(x)與
ϕ(z)的內積。
在上文的(式3.6)與(式3.7)中,可以注意到樣本的輸入x總是成對乘積的形式,在此可以將兩個輸入的歐式乘積定義爲核函數
K(xi,xj),利用此核函數就可求得最終解。
核函數可以將輸入空間通過映射函數映射到特徵空間中,一般來說從低維映射到高維。在低維空間中的線性不可分問題轉化至高維空間中可能爲線性可分問題,即在高維空間中使用
ϕ(x)⋅ϕ(z)求解優化問題。利用核函數不需要顯性地給定映射,而只需定義一個低維空間中的運算使其值等於在高維空間中的乘積運算。
常用的核函數有以下幾種:
- 線性核:
K(x1,x2)=x1Tx2+c
- 多項式核:
K(x1,x2)=(ax1Tx2+c)d
- 徑向基核函數:
K(x1,x2)=exp(−γ∣∣x1−x2∣∣2)
- Sigmoid核函數:
K(x1,x2)=tanh(a(x1Tx2)+c)