【機器學習具體解釋】SVM解二分類,多分類,及后驗概率輸出


轉載請注明出處:http://blog.csdn.net/luoshixian099/article/details/51073885

CSDN

支持向量機(Support Vector Machine)以前在分類、回歸問題中非常流行。支持向量機也稱為最大間隔分類器,通過分離超平面把原始樣本集划分成兩部分。

首先考慮最簡單的情況:線性可分支持向量機。即存在一個超平面能夠把訓練樣本分開。

1.線性可分支持向量機

1.考慮一個線性二分類的問題;例如以下左圖,在二維平面上有兩種樣本點x,目標值分別標記為{-1,1}。能夠作出無數條直線 wTx+b=0 ,直線上方的點標記為{+1}的帶入直線公式會得到 wTx+b>0 ,下方的點。標記為{-1}帶入直線公式會得到 wTx+b<0 ,因此能夠用 wTx+b 的符號決定點的分類,寫成決策函數為 f(x,w,b)=sign(wTx+b) 把兩類點分開。可是個採用哪個直線最好呢?
2.一般來說,當樣本點離直線越遠。則分類正確的確信度越大;例如以下右圖所看到的,A,B,C三個樣本點都被預測分類到‘×’類中。可是對於A的分類正確的確信度比C大。因為點C里分類直線 wTx+b=0 非常近,當直線的斜率稍一點變化,即會導致C被分到還有一類中。


這里寫圖片描寫敘述這里寫圖片描寫敘述

1.1函數間隔與幾何間隔

由二維直線 wTx+b=0 擴展到高維被稱為超平面 (w,b)

一個點距離超平面的遠近能夠表示分類預測的確信程度。在超平面 wTx+b=0 確定的情況下, |wTx+b| 能夠相對地表示點x距離超平面的遠近。並且假設分類正確。則 y(i) wTx(i)+b 的符號一致,即 y(i)(wTx(i)+b)>0 ,同一時候表示分類的正確性以及確信度。
函數間隔:超平面 (w,b) 關於樣本點 (x(i),y(i)) 的函數間隔為

:γ^(i)=y(i)(wTx(i)+b)

定義超平面關於樣本集S的函數間隔為超平面(w,b)與S中全部樣本點的函數間隔的最小值
γ^=mini=1,2,...m γ^(i)

定義 γ^ 是為了最大化間隔, γ^ 表示關於超平面與訓練集中樣本的函數間隔最小值,以下僅僅要最大化 γ^ 就可以。
注意到函數間隔實際上並不能表示點到超平面的距離,因為當超平面 (w,b) 參數擴大同樣的倍數后,如 (2w,2b) ,超平面的位置並沒有改變,可是函數間隔也變大了同樣的倍數 2γ^(i) .
幾何間隔
這里寫圖片描寫敘述
如上圖所看到的:設樣本點A坐標為 x(i) ,點A到超平面的垂直距離記為 γ(i) ,分離超平面 wTx(i)+b=0 的單位法向量為 w||w|| ,因此點B的坐標為 x(i)γ(i)w||w|| ,且點B在直線上,帶入直線公式有:
wT(x(i)γ(i)w||w||)+b=0:γ(i)=(wTx(i)+b)||w||

假設點被正確分類。 y(i) (wTx(i)+b)||w|| 的符號一致,由此
:γ(i)=y(i)(wTx(i)+b||w||)

Sγ=mini=1,2,...m γ(i)

幾何間隔不隨着超平面參數的變化而變化,比如超平面參數(w,b)變為(2w,2b)。函數間隔 γ^(i) 變為 2γ^(i) ,而幾何間隔 γ(i) 保持不變。
函數間隔與幾何間隔的關系: γ(i)=γ^(i)||w|| γ=γ^||w|| ,若||w||=1,函數間隔與幾何間隔同樣。

1.2間隔最大化

如上所述。支持向量機的基本想法是求解能夠正確划分訓練數據集並且幾何間隔最大的分離超平面。 γ 表示分離超平面與訓練集中樣本的幾何間隔的最小值。為了間隔最大化。僅僅須要最大化 γ ,同一時候全部樣本的幾何間隔必須滿足 γ(i)γ,i=1,2,...,m ;

maxw,b γ

s.t. y(i)(wTx(i)+b||w||)γ

上述問題,能夠轉變為一個凸二次規划問題。這是支持向量機的一個重要屬性,局部極值即為全局最值。
考慮函數間隔與幾何間隔的關系:
這里寫圖片描寫敘述
上述優化問題中,當超平面參數(w,b)同一時候變為(2w,2b),函數間隔也會變為 2γ^ ,目標函數的解並不會變化。即 γ^ 的取值不影響優化問題的解。因此令 γ^=1 。目標函數變為最大化 1||w|| ,即最小化 ||w||2 。為了后面的求解方便,加入因子 12 也不影響目標函數的解;
這里寫圖片描寫敘述
上述問題為一個凸優化問題,通過某些優化算法能夠求解。

以下繼續介紹拉格朗日對偶算法,能夠更進一步優化上述問題,同一時候自然引入核函數,推廣到高維數據。

1.3拉格朗日對偶性

有時考慮解決原始問題的對偶問題會更高效。


原始問題
f(w),gi(w),hi(w) 均為連續可微:
這里寫圖片描寫敘述
寫出拉格朗日函數。當中 αi0,β0 稱為拉格朗日乘子:
這里寫圖片描寫敘述
定義關於 w 的函數 θP(w)=maxα,βL(w,α,β) ;能夠證明假設 w 滿足上述約束條件 gi(w)0,hi(w)=0 ,則有 θP(w)=f(w)
這里寫圖片描寫敘述
由此原始問題的約束最優化問題變為極小極大問題:
這里寫圖片描寫敘述
設原始問題的最優解記為 p=minwf(w)=minwθp(w) .
對偶問題
把上述極小極大問題 minw maxα,βL(w,α,β) ,改為極大極小變為對偶問題,即:
定義:這里寫圖片描寫敘述
這里寫圖片描寫敘述
設此極大極小問題的最優解記為 d ,能夠證明
這里寫圖片描寫敘述
為了使得對偶問題與原始問題的最優解相等 d=p ,必須滿足下述幾個條件。稱為KKT條件
這里寫圖片描寫敘述

1.4最優間隔分類器

回想原始問題:
這里寫圖片描寫敘述
寫成拉格朗日函數。因為僅僅有不等式約束這里寫圖片描寫敘述所以僅僅包括拉格朗日乘子 αi
這里寫圖片描寫敘述
原始問題最優解 p=minw,b maxαL(w,b,α) ;對偶問題的最優解 d=maxα minw,bL(w,b,α)
對偶問題先求關於參數w,b的最小值,再求關於參數 α 的最大值。


首先,分別對w,b求偏導數並令為0。得:
這里寫圖片描寫敘述
這里寫圖片描寫敘述
把上述結果帶入拉格朗日函數 L(w,b,α)
這里寫圖片描寫敘述
注意到上述是僅僅關於參數 α 的函數,記為 W(α) ,由對偶函數。下一步即最大化 W(α)
這里寫圖片描寫敘述
以下的目的是解決上述優化問題。通常採用SMO算法,本篇文章暫不做介紹。假如已經得到最優解 α=(α1,α2,...,αm) ,帶回到上面對w求偏導得到的公式,能夠得到 w 的值。以下要求得b得值,考慮KKT條件有: αi[y(i)(wTx(i)+b)1]=0i=1,2..m ,當中必定存在一個 αj0 ,(否則 w=0 ,不是原始解)。

αj0 y(i)(wTx(i)+b)=1 ,能夠解出 b 的代數式。 b=y(j)mi=1αiy(i)(x(i),x(j)) ,也能夠對全部採用滿足條件的 b 加和求平均;然后就可以得到最佳分類超平面:
這里寫圖片描寫敘述
依據KKT條件有 αi[y(i)(wTx(i)+b)1]=0i=1,2..m ,當 αi>0 時,必定有 y(i)(wTx(i)+b)=1 ,即該樣本點的函數間隔為1。例如以下圖所看到的,落在直線 wTx+b=±1 上。此向量即稱為支持向量。對於落在直線 wTx+b=±1 以內的點,函數間隔 y(j)(wTx(j)+b)>1 ,必定有 αj=0 ,當計算函數最優切割超平面參數w,b時。這些點相應的 αj=0 。所以對參數沒有影響。僅僅有支持向量,即落在 wTx+b=±1 上數據影響着最優超平面的計算。


這里寫圖片描寫敘述

2.線性支持向量機

以上討論的內容是建立在數據是線性可分的情況。即存在一個分離超平面能夠把訓練數據分為兩部分。實際上數據並不會這么理想,例如以下圖所看到的。即存在某些樣本點不能滿足函數間隔大於等於1這個條件。
這里寫圖片描寫敘述這里寫圖片描寫敘述
這時能夠為每一個數據點設置一個松弛因子 ξi0 ,使得函數間隔 γi 加上松弛因子 ξi 大於等於1.即 y(i)(wTx(i)+w0)1ξi ,同一時候對每一個松弛因子 ξi 支付一個代價 ξi 。由此原始問題變為:
這里寫圖片描寫敘述
C稱為懲處參數(C>0)。C值越大對誤分類的懲處越大。因為當C為無窮大時,即成為了線性可分問題。
採用與線性可分同樣的過程。建立拉格朗日函數:
這里寫圖片描寫敘述

這里寫圖片描寫敘述這里寫圖片描寫敘述

由對偶函數得。首先分別對 w,b,ξi 求偏倒數,並令為0,能夠得到上面右式,帶回到拉格朗日函數中,因為 μi0 ,且 αi=Cμi ,所以有:
這里寫圖片描寫敘述
由上述KKT條件能夠得到:
這里寫圖片描寫敘述這里寫圖片描寫敘述

3.非線性支持向量機

3.1 概念

這里寫圖片描寫敘述
如上圖所看到的,原始樣本數據線性不可分,即無法用一條直線或分離超平面將兩類分開。

可是對原始數據採用非線性變換 ϕ(x) ,非線性變換將原始數據從低維映射到高維,高維上數據就可能變得線性可分。

步驟:首先使用非線性變換將原始數據集映射到新空間中。稱為特征空間,在特征空間中數據將變的線性可分,然后採用線性支持向量機的方法訓練分離超平面參數。

但在高維上計算量會急劇增大。會造成維數災難,自然引入核技巧(kernal trick)。

3.2 核技巧

觀察線性支持向量機的對偶問題為:
這里寫圖片描寫敘述
上述目標函數中。僅僅包括原始數據的內積形式 <x(i),x(j)>=(x(i))T(x(j))

由上述分析,僅僅須要找到一個合適的非線性變換 ϕ(x) ,將原始數據 x(i) 映射到高維特征空間 ϕ(x(i)) 中。內積形式變為為 <ϕ(x(i)),ϕ(x(j))>
定義核函數 K(x,z)=ϕ(x)Tϕ(z) 。表示兩個原始數據 x,z 分別變換到特征空間中的內積值。

核技巧的方法即不用構造非線性映射 ϕ(x) 而直接給定一個核函數 K(x,z) ,降低了計算量。如以下樣例一個核函數等於兩個非線性變換的內積:

Eg:x,zRn, K(x,z)=(xTz)2=i,j=1n(xixj)(zizj),ϕ(x)=(x1x1,x1x2...,x1xn,x2x1,...xnxn)T

經常使用幾個核函數:
K(x,z)=(xTz+1)q,q>0

K(x,z)=exp(||xz||22σ2),

K(x,z)=tanh(βxTz+γ)滿Mercerβ=2,γ=1

4.SVM后驗概率輸出

SVM分類器中判決函數 y^=sign(f(x))=sign(wTx+b) 。能夠採用f(x)與sigmoid函數結合。把 f(x)=wTx+b 解釋成 y=1 的對數幾率,SVM分類器概率輸出(Platt 2000):

p(y^=1|x)=σ(Af(x)+B)

參數A,B通過最大釋然的方法求解,為防止過擬合。求解A,B參數的樣本數據應獨立於訓練分類的樣本。因為在訓練分類器階段,沒有考慮后驗概率的問題,因此SVM后驗概率結果不可靠。

5.幾種損失函數的比較

這里寫圖片描寫敘述
如圖:0-1損失是二分類問題的真正損失函數,合頁損失與logistic損失是對0-1的損失函數的近似。最小二乘損失強化了分類點在正確分類邊界處。

5.1合頁損失函數

對於線性支持向量機。目標函數是最小化 12||w||2+Cmi=1ξi ,當中 ξi 為每一個樣本支付的代價;能夠定義 ξi=[1y(i)(wTx(i)+b)]+ ;下標’+’表示取正值函數。假設 z>0,[z]+=z;[z]+=0 ,因此目標函數能夠定義為:

minw,b i=1m[1y(i)(wTx(i)+b)]++λ||w||2

第一項關於被稱為經驗損失,定義 z=y(i)(wTx(i)+b) ;損失函數為 E(z)=[1z]+ 。如上圖所看到的,因為圖形像一個合頁,被稱為合頁損失。
λ=12C12||w||2+Ci=1mξi

5.2logistic回歸損失

為了方便敘述,改變一下標記方法。記原始樣本數據為 (xi,ti)t[1,1] ,模型預測值為 y(xi)=wTxi+b 。結合sigmoid函數。能夠把 y(xi) 帶入sigmoid函數中,后驗概率輸出。

p(t=1|y)=σ(y) ,則 p(t=1|y)=1σ(y)=σ(y) 。綜上兩種情況 p(t|y)=σ(ty)

採用最大似然函數:
這里寫圖片描寫敘述
目標函數能夠定義為對數似然的負數。同一時候加上一個二次正則化因子。

i=1mln[1+exp(yiti)]+λ||w||2

第一項即為logistic回歸損失函數 ELR(yt)=ln[1+exp(yt)]

5.3最小二乘損失

與線下回歸相似,能夠採用最小二乘損失作為目標函數:

i=1m(yiti)2+λ||w||2

6.SVM多分類問題

這里寫圖片描寫敘述

1.one-versus-the-rest

對於K個類別的問題。在訓練樣本上,採用SVM訓練出K個分類器。每一個分類器將訓練樣本分成 Ki 類與非 Ki 類,然后採用SVM訓練出模型。如上圖所看到的,每一個分類器僅僅能回答是否屬於 Ki 的答案。此種方法會造成一個樣本數據屬於多個類別的情況,上左圖陰影部分。


也能夠採用: y(x)=maxk yk(x) ,即採用最大的函數間隔的那個類別。但不同的分類器有可能尺度不同樣,函數距離自然不能作為推斷標准。

同一時候,訓練樣本的不平衡也可能造成分類器有誤差。

2.one-versus-one

在K分類的情況下,訓練出 K(K1)2 個分類器,即每兩個類別訓練出一個分類器,然后依據 K(K1)2 個分類器的結果,採用投票方法給出預測結果。
此種方法依舊造成部分數據不屬於不論什么類的問題,上右圖陰影部分所看到的。

3.其它方法

1.一次訓練K分類的SVM。

參數多。復雜度高;(Weston and Watkins 1999)
2.DAGSVM ;(Platt 2000)

參考:
1. PRML
2. MLAPP
3. CS 229-Andrew Ng


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM