版權說明:碼字不易,轉載請註明出處:http://blog.csdn.net/flying_sfeng/article/details/79055411
支持向量機(SVM)是一種二分類模型。它的基本模型是定義在特徵空間上的間隔最大的線性分類器。支持向量機學習的基本思想是求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面。
對於下圖線性可分的情況,SVM就是爲了找到一個最優的超平面,將正負樣本儘可能地分開來,也就是說,我們要找到分開樣本的最大間隔。
先了解一下函數間隔和幾何間隔。
函數間隔:
γ^(i)=y(i)(wTx(i)+b)
其中,
y(i)
爲標籤
(y∈{−1,1})
當
y(i)=1
時,爲了使間隔最大,
wTx+b
必須是一個儘可能大的正數,這樣才能確保分類正確的確信度最高。同樣地,當
y(i)=−1
時,爲了使間隔最大,
wTx+b
必須是一個儘可能大的負數。
而我們的目的是最大化所有訓練樣本的最小間隔,即給定一個訓練集
S={(x(i),y(i));i=1,...,m}
,我們定義在S下
(w,b)
的函數間隔爲所有訓練樣本的函數邊界的最小值,則:
γ^=mini=1,...,mγ^(i)
幾何間隔:
如圖,
假設
γ(i)
爲我們要求的幾何間隔,我們知道,
w||w||
是
w
方向上的單位向量,給定A:
x(i)
,可以得到B:
x(i)−γ(i)∗w||w||
,又因爲B位於決策邊界,所以B也滿足
wTx+b=0
,代入得:
wT(x(i)−γ(i)∗w||w||)+b=0.
移項得到:
γ(i)=wTx(i)+b||w||=(w||w||)Tx(i)+b||w||
這只是一個方向上的,爲了滿足正負樣本
y=±1
的情況,更一般的,我們可以令
γ(i)=y(i)((w||w||)Tx(i)+b||w||)
因此,幾何間隔與函數間隔的關係爲:
γ(i)=γ^(i)||w||
當
||w||=1
時,幾何間隔就等於函數間隔。
同樣地,幾何間隔爲所有樣本距離分界面的間隔的最小值,則
γ=mini=1,...,mγ(i)
間隔最大化:
間隔最大化的直觀解釋是:對訓練數據集找到幾何間隔最大的超平面,這意味着以充分大的確信度對訓練數據進行分類。也就是說,不僅將正負實例點分開,而且對最難分的實例點(離超平面最近的點)也有足夠的確信度將它們分開。
下面考慮如何求得一個幾何間隔最大的分離超平面,即最大間隔分離超平面。具體地,這個問題可以表示爲下面的約束最優化問題:
maxw,bs.t.γγ(i)=y(i)((w||w||)Tx(i)+b||w||)≥γ, i=1,2,...,N
即我們希望最大化超平面(w,b)關於訓練數據集的幾何間隔
γ
,
γ
表示的是訓練數據集中的最小几何間隔,所以約束條件表示的是超平面(w,b)關於每個訓練樣本點的幾何間隔至少是
γ
.
考慮到幾何間隔與函數間隔的關係,可將這個問題改寫爲:
maxw,bs.t.γ^||w||y(i)((w||w||)Tx(i)+b||w||)≥γ^||w||, i=1,2,...,N
將不等式兩邊的
||w||
約去,即:
maxw,bs.t.γ^||w||y(i)(wTx(i)+b)≥γ^, i=1,2,...,N
函數間隔
γ^
的取值並不影響最優化問題的解。爲什麼呢?事實上,假設將w和b按比例改變成
λw
和
λb
,這時函數間隔成爲
λγ^
。把
λw
,
λb
,
λγ^
分別代入上面的優化問題可以得到:
maxw,bs.t.λγ^||λw||=λγ^λ||w||y(i)((λw)Tx(i)+λb)≥λγ^, i=1,2,...,N
兩個式子的
λ
都可以約去,因此,函數間隔的這一改變對上述目標函數的優化沒有影響,對不等式約束也沒有影響。也就是說,它產生了一個等價的最優化問題。所以,我們就可以取
γ^=1
, 將
γ^=1
代入上面的最優化問題中,考慮到最大化
1||w||
和最小化
12||w||2
是等價的,於是就得到了下面的線性可分支持向量機學習的最優化問題:
minw,bs.t.12||w||2y(i)(wTx(i)+b)−1≥0, i=1,2,...,N
如果求出了上述約束最優化問題的解
w∗,b∗
, 那麼就可以得到最大間隔超平面
w∗x+b∗=0
及分類決策函數
f(x)=sign(w∗x+b∗)
, 即線性可分支持向量機模型。
接下來考慮
對偶問題:
我們暫時先不管以上的優化式子,考慮一般化的條件:
minw s.t. f(w)hi(w)=0, i=1,...,l.
這是含有等式約束的最小化問題,可以用拉格朗日乘子方法求解。
以上含等式約束的問題可以轉換爲以下拉格朗日函數:
L(w,β)=f(w)+∑i=1lβihi(w)
其中
βi
爲拉格朗日乘子,令
L
的導數等於零:
∂L∂wi=0; ∂L∂βi=0
可以求出
w
和
β
.
接下來我們看一下含有不等式約束的最優化問題。原問題:
minws.t.f(w)gi(w)≤0, i=1,...,khi(w)=0, i=1,...,l.
爲了解決這個不等式約束問題,我們定義以下的拉格朗日函數:
L(w,α,β)=f(w)+∑i=1kαigi(w)+∑i=1kβihi(w).
其中
αi,βi
爲拉格朗日乘子。
考慮以下等式:
θp(w)=maxα,β:αi≥0L(w,α,β)
當違背約束時(即存在
i,
使得
gi(w)>0或者hi(w)≠0
),
θp(w)=maxα,β:αi≥0=∞f(w)+∑ki=1αigi(w)+∑ki=1βihi(w)
而當不等式約束跟等式約束都滿足時,
θp(w)=f(w)
,即:
θp(w)={f(w),∞,如果w滿足所有約束否則
這就是要最大化拉格朗日函數的原因。當不等式約束跟等式約束都滿足要求時,
θp(w)=f(w);
當違背約束時,
θp(w)
趨向於無窮大,式子無解,這樣做相當於把約束放到了上述式子中了。同時,我們最小化
f(w)
,就相當於最小化
θp(w)
.即:
p∗=minwθp(w)=minwmaxα,β:αi≥0 L(w,α,β)
p∗
即爲原問題的解。
接下來我們最小化拉格朗日函數,
θd(α,β)=minwL(w,α,β)
由此我們可以列出對偶優化問題:
d∗=maxα,β:αi≥0θd(α,β)=maxα,β:αi≥0minw L(w,α,β)
d∗
即爲對偶問題的解。
原問題跟對偶問題有什麼關係呢?關係如下:
d∗=maxα,β:αi≥0minw L(w,α,β)≤minwmaxα,β:αi≥0 L(w,α,β)=p∗
當拉格朗日乘子的解
w∗,α∗,β∗
滿足以下的KKT條件時,
d∗=p∗
:
∂L(w∗,α∗,β∗)∂wi∂L(w∗,α∗,β∗)∂βiα∗igi(w∗)gi(w∗)α∗=0, i=1,...,n=0, i=1,...,l=0, i=1,...,k≤0, i=1,...,k≥0, i=1,...,k(27)(28)(29)(30)(31)
下面,將證明原問題與對偶問題的關係的由來。
我們再次寫下拉格朗日函數:
L(w,α,β)=f(w)+∑i=1kαigi(w)+∑i=1kβihi(w).
以下式子恆成立(
sup
表示上確界,
inf
表示下确界):
infw∈WL(w,α,β)supα,β:αi≥0L(w,α,β)≤L(w,α,β), ∀w,α,β≥L(w,α,β), ∀w,α,β(32)(33)
令:
q(α,β)f(w)=infw∈WL(w,α,β)=supα,β:αi≥0L(w,α,β)(34)(35)
所以,有:
q(α,β)≤f(w)
因此:
supα,β:αi≥0q(α,β)≤infw∈Wf(w)
即:
supα,β:αi≥0infw∈WL(w,α,β)≤infw∈Wsupα,β:αi≥0L(w,α,β)
等式成立的條件是:
L(w,α,β)
的第二項跟第三項爲零,即:
αigi(w)αigi(w)hi(w)≥0, ∀i≤0, ∀i=0, ∀i=0, ∀i(36)(37)(38)(39)
也就是說,當變量滿足KKT條件時,對偶問題的解等於原問題的解。
優化問題的求解:
再次寫下我們要求解的優化問題:
minw,bs.t.12||w||2y(i)(wTx(i)+b)−1≥0, i=1,2,...,N
拉格朗日函數如下:
L(w,α,β)=12||w||2+∑i=1mαi[1−y(i)(wTx(i)+b)].
我們通過求解對偶問題來得到原問題的解,當然前提是必須滿足KKT條件。
對偶問題如下:
maxαi≥0minw,b12||w||2+∑i=1mαi[1−y(i)(wTx(i)+b)].
對於這個問題,我們先通過最小化
L(w,α,β)
來求出
w,b(固定α)
,具體做法是使L對w,b的導數爲零。對w求導:
∇wL(w,b,α)=w−∑i=1mαiy(i)x(i)=0
即:
w=∑i=1mαiy(i)x(i)
對b求導:
∂∂bL(w,b,α)=∑i=1mαiy(i)=0
將上述兩式代入到拉格朗日函數中,可以得到:
L(w,b,α)=∑i=1mαi−12∑i=1m∑j=1my(i)y(j)αiαj(x(i))Tx(j)
因此,優化問題可寫成下列形式:
maxαs.t.∑mi=1αi−12∑mi=1∑mj=1y(i)y(j)αiαj(x(i))Tx(j)αi≥0, i=1,...,m∑mi=1αiy(i)=0
這就變成了對
α
的單變量優化問題。對
α
的求解可以使用SMO算法,我們後面會講到。假設我們已經求解出
α
, 那麼我們可以通過
w=∑mi=1αiy(i)x(i)
求出w,但是b該怎麼求解呢?
當i爲支持向量時,我們可以得到函數間隔:
y(i)(w∗Tx(i)+b)=γ^
,即:
maxi:y(i)=−1w∗Tx(i)+b=−γ^mini:y(i)=1w∗Tx(i)+b=γ^
以上兩式相加可以得到b:
b=−maxi:y(i)=−1w∗Tx(i)+mini:y(i)=1w∗Tx(i)2.
因此,對於一個待預測的樣本,我們可以得到:
wTx+b=∑mi=1αiy(i)(x(i))Tx+b=∑mi=1αiy(i)⟨x(i),x⟩+b.
當
wTx+b>0
時我們把該樣本預測爲正樣本,
wTx+b≤0
時預測爲負樣本。
核函數:
在前面的討論中,我們假設訓練樣本時線性可分的,即存在一個劃分超平面能將訓練樣本正確分類。然而在現實任務中,原始樣本空間內也許並不存在一個能正確劃分兩類樣本的超平面。對於這樣的問題,可將樣本從原始空間映射到一個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。幸運的是,如果原始空間是有限維,即屬性數有限,那麼一定存在一個高維特徵空間使樣本可分。(參考《機器學習》6.3節 周志華著)
核函數的定義:
設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)
的內積。
核技巧的想法是:在學習與預測中只定義核函數
K(x,z)
,而不顯式地定義映射函數
ϕ
。通常,直接計算
K(x,z)
比較容易,而通過
ϕ(x)
和
ϕ(z)
計算
K(x,z)
並不容易。這是因爲,
ϕ
是原始輸入空間X到特徵空間H地映射,特徵空間H一般是高維的,甚至是無窮維的。
通俗點講,對於在原始空間內線性不可分的情況,我們可以將原始空間映射到高維空間,高維空間的內積計算使用核函數代替。
因此,我們的目標函數的對偶問題可以寫成下列形式:
maxαs.t.∑mi=1αi−12∑mi=1∑mj=1y(i)y(j)αiαjk(x(i),x(j))αi≥0, i=1,...,m∑mi=1αiy(i)=0
求解後即可得到:
f(x)=wTϕ(x)+b=∑mi=1αiy(i)ϕ(x(i))Tϕ(x)+b=∑mi=1αiy(i)k(x(i),x)+b
那麼,什麼樣的函數能做核函數呢?我們有下面的定理:
定理:令
X
爲原始輸入空間,
k(x(i),x(j))
是定義在
X×X
上的對稱函數,則
k
是核函數當且僅當對於任意數據
D=x(1),x(2),...,x(m)
, 核矩陣
K
總是半正定的:
K=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢k(x(1),x(1))⋯k(x(i),x(1))⋯k(x(m),x(1))⋯⋱⋯⋱⋯k(x(1),x(j))⋮k(x(i),x(j))⋮k(x(m),x(j))⋯⋱⋯⋱⋯k(x(1),x(m))⋮k(x(i),x(m))⋮k(x(m),x(m))⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
定理表明,只要一個對稱函數所對應的核矩陣半正定,它就能作爲核函數使用。
定理證明:如果
k
是一個有效的核函數,那麼
k(x(i),x(j))=ϕ(x(i))Tϕ(x(j))==ϕ(x(j))Tϕ(x(i))=k(x(j),x(i))
, 因此核函數
k
必須是對稱的。另外,對於任意向量
z
,我們有:
zTKz=∑i∑jzik(x(i),x(j))zj=∑i∑jziϕ(x(i))Tϕ(x(j))zj=∑i∑jzi∑kϕk(x(i))ϕk(x(j))zj=∑k∑i∑jziϕk(x(i))ϕk(x(j))zj=∑k(∑iziϕk(x(i)))2≥0.
因此,核矩陣
K
必須是半正定的。證畢。
常用核函數:
線性核多項式核高斯核拉普拉斯核Sigmoid核k(x(i),x(j))=(x(i))Tx(j)k(x(i),x(j))=((x(i))Tx(j))dk(x(i),x(j))=exp(−||x(i)−x(j)||22σ2)k(x(i),x(j))=exp(−||x(i)−x(j)||σ)k(x(i),x(j))=tanh(β(x(i))Tx(j)+θ)
線性不可分的支持向量機
在前面的討論中,我們一直假定訓練樣本在樣本空間或特徵空間中是線性可分的,即存在一個超平面能將不同類的樣本完全分開。然而,在現實任務中往往很難確定合適的核函數使得訓練樣本在特徵空間中線性可分;退一步說,即使恰好找到了某個核函數使訓練集在特徵空間中線性可分,但這樣劃分的結果會更容易造成過擬合。
線性不可分意味着某些樣本點
(x(i),y(i))
不能滿足函數間隔大於等於1的約束條件。爲了解決這個問題,可以對每個樣本點
(x(i),y(i))
引進一個鬆弛變量
ξi
, 使函數間隔加上鬆弛變量大於等於1,這樣,約束條件變爲:
y(i)(wTx(i)+b)≥1−ξi
同時,對每一個樣本,支付一個代價
ξi
, 目標函數由原來的
12||w||2
變爲:
12||w||2+C∑i=1Nξi
其中,
C>0
稱爲懲罰因子,C值大時對誤分類的懲罰增大。最小化目標函數包含兩層含義:爲了使目標函數儘可能小,C應該取一個較小的值;同時爲了使誤分類的樣本儘可能少,C應該取一個較大的值。所以,懲罰因子C的取值必須在這兩者做個折中。
線性不可分的線性支持向量機的學習問題變成一個凸二次規劃問題(原問題):
minw,b,ξs.t.12||w||2+C∑Ni=1ξiy(i)(wTx(i)+b)≥1−ξi, i=1,2,...,Nξi≥0, i=1,2,...,N
該問題的拉格朗日函數是:
L(w,b,α,ξ,μ)=12||w||2+C∑i=1Nξi+∑i=1mαi(1−ξi−y(i)(wTx(i)+b))−∑i=1mμiξ(i)+b))−∑i=1mμiξi
其中,
αi≥0,μi≥0
是拉格朗日乘子。
令
αi≥0,μi≥0
是拉格朗日乘子。
令
L(w,b,α,ξ,μ)
對
w,b,ξ
的偏導爲零可得: