統計學習方法之支持向量機

【概述】 SVM訓練分類器的方法是尋找到超平面,使正負樣本在超平面的兩側(分類正確性即“分得開”),且樣本到超平面的幾何間隔最大(分類確信度即“分得好”)。? 每個樣本點xi的幾何間隔至少是γ,要求γ首先是>0(分類正確),然后盡力求γ的最大值(分得好,要γ>1)。

? ? ?另外γ值是由少數在margin上的點決定的(引出支持向量的概念,名字還挺形象的!這些向量“撐”起了分界線)。

注:SVM算法的特點是巧妙地利用了很多零散的數學知識和技巧,所以要消化學習如何針對分類繼續優化、追求分離平面唯一性的需求,如何構造約束最優化問題(通過構造目標函數,充分利用已有的數學計算技巧)

7.1.2 函數間隔和幾何間隔

“間隔”的作用和意義:一個點距離分離超平面的遠近,可以用來表示分類預測的確信程度,有以下原則:在超平面w.x+b=0確定的情況下:|w.x+b|能夠相對表示點x距離超平面的遠近,而w.x+b的符號與類標記的符號是否一致(例如:點在正側,w.xi+b大于0,而yi為1,yi大于0,分類正確;點在負側,w.xi+b小于0,yi為-1,符號一致,分類正確;反之符號不一致)。

1、函數間隔(又稱函數距離)

進而引出函數間隔functional margin的概念,用函數距離y(w.x+b)來表示分類的正確性(符號,大于0表示分類正確)和確信度(距離大小)

1)分類正確性:如果y(w.x+b)>0,則認為分類正確,否則錯誤。

2)分類確信度:且y(w.x+b)的值越大,分類結果的確信度越大,反之亦然

定義超平面(w,b)關于訓練集T的函數間隔為超平面(w,b)關于T中所有樣本點(xi,yi)的函數間隔的最小值,γ^=min(i=1,...,N)下的γ^

2、幾何間隔(又稱幾何距離)

如上述函數間隔的概念,樣本點(xi,yi)與超平面(w,b)之間的函數間隔定義為γ^=yi(w.xi+b)

但這樣帶來一個問題,w和b同時縮小或放大m倍,"這時超平面沒有變化",但函數間隔卻變化了。所以需要將w的大小固定下來,例如||w||=1,使得函數間隔固定-->這時得出幾何間隔。

幾何間隔的定義如下:ri=yi(w/||w||.xi+b/||w||)

幾何間隔

實際上,幾何間隔就是點到超平面的距離,點(xi,yi)到直線ax+by+c=0的距離公式是

點到超平面距離

因此在二維空間,幾何間隔就是點到直線的距離,在三維或以上空間中,幾何間隔就是點到超平面的距離。而函數距離就是上述公式的分子,沒有歸一化。

注:對于yi這些標簽,如果在分離超平面的負側,yi=-1,運算時要留意

舉例1:如果訓練集中的點A在超平面的負側,即yi=-1,那么點與超平面的距離為:

ri=-(w/||w||.xi+b/||w||)


定義超平面(w,b)關于樣本點(xi,yi)的幾何間隔一般是實例點到超平面的“帶符號”的距離(signed distance),只有當樣本點被超平面正確分類時,幾何間隔才是“實例點到超平面的距離”。

注:以上描述的含義是,當不正確分類時得出r=yi(w/||w||.xi+b/||w||)小于0,例如yi=-1,wx+b大于0 或者 yi=1,wx+b小于0

為何關注幾何間隔?

因為幾何間隔與樣本的誤分類次數存在關系(見《統計學習方法》第二章“感知機”的證明)

誤分類次數≤(2R/δ)^2,其中其中δ就是樣本集合到分類超平面的距離

R=max||xi||,i=1,...,n,即R是所有樣本中(xi是以向量表示的第i個樣本)向量長度最長的值(即代表樣本的分布有多么廣)。結論是“當樣本已知的情況下”,誤分類次數的上界由幾何間隔決定。”

為何要選擇幾何間隔評價“解”(系數組)是否最優的指標?

因為幾何間隔越大的解,誤差的上界越小。因此最大化幾何間隔,就成為學習的目標。

注:必須反復強調的是,xi不是要求的變量,而是已知的樣本,而要求的主要是w、a、b這些系數和算子(在這里,不要將xi當成變量,xi代表樣本,是已知的(訓練集中的樣本已知是哪些標簽分類,是用來學習的))


7.1.3 間隔最大化

1、最大間隔分離超平面(助記:找到γ,或者找到間隔最小的點,再求超平面使得γ的值最大)

SVM的基本想法是“除了分得開,更要分得好”,所以引出了“有約束”的“最優化問題”,式子如下:

argmax(w,b) ? ?γ? ? ? ? ? ? ? ? ? (7.9)? #最大化幾何間隔γ

s.t. yi(w/||w||.xi+b/||w||)大于等于γ, (7.10) #超平面跟每個樣本點的幾何間隔至少是γ

這里隱含的意義:

每個樣本點xi的幾何間隔至少是γ,說明γ首先是>0(分類正確),然后盡力求γ的最大值(分得好),另外γ值是由少數在margin分割線上的點決定的(引出支持向量的概念)。


考慮到幾何間隔和函數間隔的關系(7.8)

γ=γ^/||w||? ? (7.8)

【得出】

argmax(w,b) γ^/||w||? ? ? (7.11)#希望最大化超平面(w,b)對訓練集T的間隔

s.t. yi(w.xi+b)≥γ^? ? ? ? ? ? ? (7.12)#要求(w,b)對每個訓練樣本點的間隔至少是γ

有以下幾點設定:

1)最大化-->最小化:對凸函數來說,求最大值往往需要轉化為求最小值,注意到“最大化1/||w||”和"最小化1/2||w||^2"是等價的

2)函數間隔γ^取“1”:函數間隔取值不影響最優化問題的解(例如將w和b按比例改為λw和λb,這時函數間隔成為λγ^);函數間隔的這個變更對上述最優化問題的不等式約束沒有影響(大于等于的關系不變)。這樣,就可以取γ^=1,將γ^=1代入上面的最優化問題

經過上述設定,所以得出以下“線性可分SVM的最優化問題”:

argmin(w,b) 1/2||w||^2 ? ? ? (7.13) ? ?

s.t. yi(w.xi+b)-1≥0 ? ? ? ? ? ? (7.14)



算法7.1(線性可分SVM學習算法-最大間隔法)

輸入:線性可分訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈χ=Rn,yi∈Υ={-1,+1},i=1,2,...,N;

輸出:最大間隔分離超平面分類決策函數

1)構造并求解約束最優化問題

argmin 1/2||w||^2

s.t. yi(w.xi+b)-1≥0,i=1,2,...,N

求得最優解w*,b*。

2)由此得到最佳分離超平面:w*.x+b*=0

由此得到分類決策函數:f(x)=sign(w*.x+b*)

2、支持向量和間隔邊界

引出“支持向量”概念:支持向量是訓練數據集中的樣本點跟分離超平面距離最近的樣本點的實例(support vector)

這種點滿足幾何間隔=γ-->yi(w.xi+b)=γ,因為γ取值1,即

yi(w.xi+b)-1=0

1)對于yi=+1的正例點,支持向量在超平面H1:w.x+b=1

2)對于yi=-1的負例點,支持向量在超平面H2:w.x+b=-1

由于γ^取值1,所以兩個超平面的幾何距離依賴于超平面H0的法向量w,即幾何距離是是2/||w||,詳見圖7.3(支持向量),H1和H2成為間隔邊界

【重要】在決定分離超平面時,只有支持向量起作用,而其他實例點不起作用。由于支持向量在確定分離超平面中起到決定性作用,所以將這種分類模型成為“支持向量機”。

習題7.1 已知一個如圖7.4的訓練數據集,正例點是x1=(3,3)^T,x2=(4,3)^T,負例點是x3=(1,1)^T,試求最大間隔分離超平面H0.



7.1.4 學習的對偶算法

1、帶約束的線性分類器問題如下

min 1/2||w||^2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.13)

s.t. yi(w.xi+b)-1≥0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.14)

下面進行重要的推導,帶約束的最小值問題如何通過拉格朗日的對偶算法來解決。那什么是拉格朗日對偶性呢?簡單來講,就是通過拉格朗日函數將約束條件融合到目標函數里去,從而只用一個函數表達式便能清楚的表達出我們的問題。

求解SVM基本型不太方便,于是乎求解其對偶問題,對偶問題是一個不等式約束問題,求不等式約束問題采用KKT條件,KKT條件中有一個條件很有意思,就是 a*g(x)=0,要么拉格朗日乘子為0,要么g(x)=0,g(x)=0,表示樣本是支持向量,也就是只有支持向量才使得g(x)=0,而a=0的樣本就不需要了。

轉化如下:

(7.18)

求解策略:為了得到對偶問題的解,先求L(w,b,a)對w、b的極小,再求對a的極大

1)求min(w,b)L(w,b,a)

將拉格朗日函數L(w,b,a)分別對w、b求偏導并令其等于0

▽wL(w,b,a) = w-Σaiyixi=0

▽bL(w,b,a) = -?Σaiyi=0

得到

w=Σaiyixi ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.19)

Σaiyi=0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.20)

將(7.19)代入拉格朗日函數(7.18),即得

L(w,b,a)

=1/2 ||w||^2 ?- ?Σaiyi(w.xi+b)+Σai

=1/2 ΣΣaiajyiyj(xi.xj)

因為這時候,L函數取最小值,所以得出

min(w,b)? L(w,b,a) = -1/2 ΣΣaiajyiyj(xi.xj) ?+ Σai

2)求min(w,b) L(w,b,a) 對 a的極大,也就是對偶問題

對偶問題 ?min(x)max(μ)L(x,μ)=max(μ)min(x)L(x,μ)=min(x)f(x)

max(a) -1/2ΣΣaiajyiyj(xi.xj)? +Σai ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7.21)

s.t. ?Σaiyi=0

將式(7.21)的目標函數由求極大值轉換為求最小值,就轉化為下面與之等價的對偶最優化問題(將前面的-號變成+號)

? ? ? ? ? ?max(a)?-1/2ΣΣaiajyiyj(xi.xj)? +?Σai

===>? min(a)? 1/2ΣΣaiajyiyj(xi.xj)? -? Σai ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.22)

? ? ? ? ? ?s.t. Σaiyi=0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.23)

? ? ? ? ? ai ≥0,I=1,2,...,N ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7.24)

通過上述處理,原始問題求w解轉化為對偶問題求a解,并引出內積 (7.22)--(7.24)

這個問題中變量是w,目標函數是w的二次函數,所有的約束條件都是w的線性函數(再次強調不要將xi看成是自變量,xi代表已知的樣本),這種規劃問題成為“二次規劃”(Quadriatic Progamming,QP);同時由于可行域是一個凸集,因此是一個“凸二次規劃”。

定理7.2 設a*= (a1*,a2*,...,ai*)^T,是對偶最優化問題(7.22)-(7.24)的解,則存在下標j,使得aj*>0,并可按照下列式子求得原始最優化問題(7.13)-(7.14)的解w*、b*

w* =? Σai*yixi ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.25)注:w*是解

b* =Σyj -Σai*yi(xi.xj)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7.26)

從7.25和7.26可知,w*和b*只依賴于訓練數據中對應于a*>0的樣本點(xi,yi),而其他樣本點對w*和b*沒有影響,所以稱“訓練數據中對應于ai* > 0的實例點xi∈R”為支持向量。

證明如下:

▽wL(w,b,a) = w-Σaiyixi=0

▽bL(w,b,a) = -Σaiyi=0

得到:

w* = Σai*yixi

其中至少有一個aj不為0(aj>0),對此j有yj(w*xj+b*)-1=0 ? ? ? ?(7.28)

將(7.25) w* =?Σai*yixi 代入 (7.28)得到?

有yj(Σai*yixi*xj+b*) =1

=>?Σai*yjyixi*xj+yj.b*=yj^2 ?(注:yj^2=1)

=>(兩邊都除以yj)?yj=b*-?Σai*yixi*xj?

=>b*= yj - Σai*yi(xi*xj)

由此定理可知,

由于g(x)=<w.x>+b,代入w* =Σai*yixi?

這里只有x才是變量,同時注意到式子中x和xi是向量,將不是向量的量從內積符號拿出來,得到g(x) 的式子為:

g(x)= Σaiyi<xi,x>+b

由此分離超平面可以寫成:?Σai*yi(xi*xj) + b* =0 ? ? ? ? ? ? ? ? ? ? ? ? ?(7.29)?

分類決策函數可以寫成: f(x)=sign[Σai*yi(xi*xj)+b*] ? ? ? ? ? ? (7.30) (對偶形式)

(7.29)和 (7.30)的含義:分類決策函數只依賴于輸入x和訓練樣本輸入的內積(xi.xj)也寫作<xi,xj>,式(7.30)稱為線性可分支持向量機的對偶形式。

注意:上述變換中,看到式子中x才是變量,也就是你要分類哪篇文檔,就把該文檔的向量表示代入到 x的位置,而所有的xi統統都是已知的樣本。還注意到式子中只有xi和x是向量,因此一部分可以從內積符號中拿出來。

算法7.2(線性可分支持向量機學習算法)

輸入:線性可分訓練集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈χ=Rn,yi∈Υ={-1,+1},i=1,2,...,N;

輸出:分離超平面和分類決策函數

1)構造并求解約束最優化問題

min 1/2?

Σ Σaiajyiyj(xi.xj) - Σai

? ? ? ? ? ? s.t. Σaiyi=0

? ? ? ? ? ? a ≥ 0,i=1,2,...,N

求得最優解a*=(a1,a2,...,an)^T

2)計算

w* = Σaiyixi

并選擇a*的一個正分量aj*>0,計算

b*=yj-Σai*yi<xi,xj> ? 注:xi和xj的內積

3)求得分離超平面

w*x+b*=0

4)求得分類決策函數

f(x)=sign(w*.x+b*)



7.3 非線性支持向量機與核函數

1)引入核函數(滿足對稱性和半正定型的函數是某高維希爾伯特空間的內積

只要是滿足了Mercer條件的函數,都可以作為核函數。如果有很多基的話維度勢必會很高,計算內積的花銷會很大,有些是無限維的,核函數能繞過高維的內積計算,直接用核函數得到內積。

核函數的基本想法:

1)通過一個非線性變換將輸入空間(歐式空間Rn或離散集合)對應于一個特征空間(希爾伯特空間),使得在輸入空間中的超曲面模型對應于特征空間中的超平面模型(支持向量機)。

2)核函數必須滿足對稱性(K(x,y) = K(y, x))及半正定性(K(x,y)>=0)。根據Mercer法則,我們知道任何滿足對稱性和半正定型的函數都是某個高維希爾伯特空間的內積。


核函數定義:設X是輸入空間(歐式空間Rn或離散集合),又設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)容易,而通過Ф(x)和Ф(z)計算K(x,z)有點困難。


例題:

假設輸入空間是R2,核函數是K(x, z)=(x.z)2,試找出相關的特征空間H(希爾伯特空間)和映射Φ(x):R2------>H。

解:取特征空間H=R^3,記x=(x1,x2)^T,z=(z1,z2)^T,由于

(x, z)2=(x1z1+x2z2)2 = (x1z1)2+2 x1z1x2z2+ (x2z2)2

可以取映射

Φ(x) = [(x1)2,√2x1x2,(x2)2]^T

Φ(x).Φ(z) = (x1z1)2+2 x1z1x2z2+ (x2z2)2

注意:原空間R2,而用核技巧后的空間是R^3,實際上是升維了

2)核技巧在支持向量機中的應用:

對支持向量機的對偶問題中跟,無論是目標函數還是決策函數(分離超平面)都只涉及實例和實例之間的內積。所以在對偶問題的目標函數?1/2?ΣΣaiajyiyj(xi.xj)? -Σai 中的內積xi.xj 可以用核函數K(xi.xj) = Φ(xi).Φ(xj) 來代替。此時對偶問題的目標函數成為

W(a) = 1/2 ΣΣaiajyiyj K(xi.xj) -Σai中 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7.67)

同樣分類決策函數中的內積也可以用核函數來代替,而分類決策函數成為:

f(x) = sign [ΣaiyiΦ(xi).Φ(x) + b*] = sign [ΣaiyiK(xi.xj) + b*] ? ?(7.68)

這樣一來:原來輸入空間中的高維度內積(升維是為了實現分離“超曲面”變成高維度空間的分離“超平面”)xi.xj經過映射函數Φ轉換為特征空間(高維度空間,H空間)中的內積Φ(xi).Φ(xj),并在新的H空間中學習線性向量機



附錄A:最優化問題種類

通常我們需要求解的最優化問題有如下幾類:

1、無約束優化問題,可以寫為:

min f(x);

對此類優化問題,常常使用的方法就是Fermat定理,即使用求取f(x)的導數,然后令其為零,可以求得候選最優值,再在這些候選值中驗證;如果是凸函數,可以保證是最優解。

2、有等式約束的優化問題,可以寫為:

min f(x),

s.t. h_i(x) = 0; i =1, ..., n

對此類優化問題,常使用拉格朗日乘子法(Lagrange Multiplier) ,即把等式約束h_i(x)用一個系數與f(x)寫為一個式子,稱為拉格朗日函數,而系數稱為拉格朗日乘子。通過拉格朗日函數對各個變量求導,令其為零,可以求得候選值集合,然后驗證求得最優值。

3、有不等式約束的優化問題,可以寫為:

min f(x),

s.t. g_i(x) <= 0; i =1, ..., n

h_j(x) = 0; j =1, ..., m

對第3類優化問題,常用KKT條件。

同樣地,我們把所有的等式、不等式約束與f(x)寫為一個式子,也叫拉格朗日函數,系數也稱拉格朗日乘子,通過一些條件,可以求出最優值的必要條件,這個條件稱為KKT條件。

KKT條件是說最優值必須滿足以下條件:

1. L(a, b, x)對x求導為零;

2. h(x) =0;

3. a*g(x) = 0;

求取這三個等式之后就能得到候選最優值。

其中第三個式子非常有趣,因為g(x)<=0,如果要滿足這個等式,必須a=0或者g(x)=0. 這是SVM的很多重要性質的來源,如支持向量的概念。


根據拉格朗日方法,對應的拉格朗日函數為

求函數z=f(x,y)在滿足φ(x,y)=0的條件極值,可以轉化求為函數F(x,y,λ)=f(x,y)+λφ(x,y)的無條件極值問題。


附錄B KKT對偶解釋(為何min max=max min=f(x)?)

http://blog.csdn.net/wusnake123/article/details/58635726? 拉格朗日數乘法

【KKT的定義】KKT條件是指在滿足一些有規則的條件下, 一個非線性規劃(Nonlinear Programming)問題能有最優化解法的一個必要和充分條件.這是一個廣義化拉格朗日乘數的成果. 一般地, 一個最優化數學模型的列標準形式參考開頭的式子, 所謂 Karush-Kuhn-Tucker 最優化條件,就是指上式的最優點x?必須滿足下面的條件:

1)約束條件滿足gi(x?)≤0,i=1,2,…,p, 以及,hj(x?)=0,j=1,2,…,q

2).?f(x?)+∑i=1μi?gi(x?)+∑j=1λj?hj(x?)=0, 其中?為梯度算子;

3)λj≠0且不等式約束條件滿足μi≥0,μigi(x?)=0,i=1,2,…,p。

KKT條件第一項是說最優點x?必須滿足所有等式及不等式限制條件, 也就是說最優點必須是一個可行解, 這一點自然是毋庸置疑的.?

第二項表明在最優點x?, ?f必須是?gi和?hj的線性組合, μi和λj都叫作拉格朗日乘子. 所不同的是不等式限制條件有方向性, 所以每一個μi都必須大于或等于零, 而等式限制條件沒有方向性,所以λj沒有符號的限制, 其符號要視等式限制條件的寫法而定.

以下舉例介紹KTT 的由來

推導思路:從上述三個條件(湊出這些條件就能實現對偶,形成KTT條件求最優解)

令L(x,μ)=f(x)+Σμkgk(x) ? #注:這里f(x)代表目標函數,g(x)表示約束函數

∵ μk≥0,gk(x)≤0 ====>? μkg(x)≤0

∴ max(μ)L(x,μ)=f(x) ? ? ? ? ? ? ? ? ? ? ? ? (公式2)

∴ min(x)f(x)=min(x)max(μ)L(x,μ) ? ?(公式3)

代入

max(μ)min(x)L(x,μ)

=max(μ)[min(x)f(x)+min(x)μg(x)]

=max(μ)min(x)f(x)+max(μ)min(x)μg(x)

=min(x)f(x)+max(μ)min(x)μg(x)

?為何max(μ)min(x)f(x)=min(x)f(x)

又∵ μk≥0,gk(x)≤0

min(x)μg(x)有以下兩個條件的取值

1)取值為“0” ? ? ? ? ? ? ? ? ? ? ? ? ?當μ=0 或 g(x)=0

2)取值為“-∞”(負無窮)? ? 當μ>0 或g(x)<0 ??

所以當取值“0”的時候有最大值

==>

∴ max(μ)min(x)μg(x)=0,此時μ=0 或 g(x)=0.

∴ max(μ)min(x)L(x,μ)=min(x)f(x)+max(μ)minxμg(x)=minxf(x) ? ? (公式4)

聯合(公式3)和(公式4)我們得到min(x)max(μ)L(x,μ)=max(μ)min(x)L(x,μ),也就是

min(x)max(μ)L(x,μ)=max(μ)min(x)L(x,μ)=min(x)f(x)

我們把maxμminxL(x,μ)稱為原問題minxmaxμL(x,μ)的對偶問題

上式表明“當滿足一定條件時”,原問題(prmial)的解、對偶問題(duality)的解、以及min(x)f(x)是相同的,且在最優解x*處,μ=0或g(x*)=0。

將x*代入(公式2)得到max(μ)L(x*,μ)=f(x*),由(公式4)得到max(μ)min(x)L(x*,μ)=f(x*),(對"max(μ)min(x)L(x*,μ)=max(μ)L(x*,μ)”)兩邊消去max(μ),所以L(x*,μ)=min(x)L(x*,μ)(式子表示x*的時候,L(x,μ)得到最小值),說明x*也是L(x,μ)的極值點。

【小結】

KKT條件是拉格朗日乘子法的泛化(見附錄B說明),如果我們將等式約束和不等式約束一并納進來如下所示:


注:由于下標x輸入不方便,min(x)是指對x求最小值(常通過偏導操作實現)等同于



附錄C:從||w||引出范數的定義

||w||是什么符號?||w||叫做向量w的范數,范數是對向量長度的一種度量。

我們常說的向量長度其實指的是它的L2范數,范數最一般的表示形式為p-范數,可以寫成如下表達式

向量w=(w1, w2, w3,…… wn)

它的p級范數為


附錄E:python實現SVM實例(LIBSVM)

http://www.cnblogs.com/luyaoblog/p/6775342.html

http://www.cnblogs.com/harvey888/p/5852687.html

http://blog.csdn.net/zouxy09/article/details/17292011

數據文件CSV的鏈接


附錄E:工程實踐

總的來說實驗一、二,其結果驗證了Vapnik等人的結論,即不同的核函數對SVM性能的影響不大,反而核函數的參數和懲罰因子C是影響SVM性能的關鍵因素,因此選擇合適的核函數參數和懲罰因子C對學習機器的性能至關重要


附錄F:數學符號表(用于輸入公式)

2 3 ± × ÷ ∽ ≈ ≌ ≒ ≠ ≡ ≤ ≥ Σ ∈ ∞ ∝ ∩ ∪ ∫ √

б μ ? δ ε γ α β γ Ω Ψ Σ θ η λ π τ φ ω ψ ‰←↑→↓↖↗↘↙∴∵

∠∟∥∣∶∷⊥⊿⌒□△◇○?◎☆?①②③④⑤⑥⑦⑧⑨⑩°‰?℃℉№

123≈≡≠=≤≥<>≮≯∷±?+-×÷/

∫∮∝∞∧∨∑∏∪∩∈∵∴⊥∥∠⌒⊙≌∽√ ▽

αβγδεζηθικλμνξοπρστυφχψω ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ

§№☆★○●◎◇◆□℃‰■△▲※→←↑↓↖↗↘↙

〓¤°#&@\︿_ ̄―♂♀~Δ▽▽▽▽▽▽▽▽

㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩①②③④⑤⑥⑦⑧⑨⑩▽▽▽▽▽▽

?2f/?x2=2y2,?2f/?x?y=4xy,?2f/?y2=2x2,?2f/?y?x=4xy。?求偏導符號


附錄G

一般來說,求最小值問題就是一個優化問題(規劃),由兩部分組成:目標函數和約束條件

min ? f(x) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#目標函數

s.t. ci(x)≤0,i=1,2,...,p ? ? ? ? ? ? ? ? ? #注意這里是hi不等式約束

cj(x)=0,j=p+1,p+2,...,p+q ? ? ?#注意這里是等式約束

#p個是不等式約束,q個是等式約束

#上式中的x是自變量,但不限于x的維度數(例如文本分類的維度數可能達到上萬個維度)

#要求f(x)在某個點找到最小值,但不是在整個空間中尋找,而是在約束的條件所限定的空間找,這個有限的空間就是優化理論提到的“可行域”

#注意到可行域中的每一個點都是要求滿足p+q個條件,同時可行域邊界上的點有一個優秀的特性,就是可以使不等式約束。注意,這個特性后續求解起到關鍵作用,例如以下例子:

max(μ)min(x)L(x,μ)

=max(μ)[min(x)f(x)+min(x)μg(x)]

=max(μ)min(x)f(x)+max(μ)min(x)μg(x)

=min(x)f(x)+max(μ)min(x)μg(x)

又∵ μk≥0,gk(x)≤0 ? ? ? ? ? ?∴min(x)μg(x)有以下兩個條件的取值

1)取值為“0” ? ? ?當μ=0 或 g(x)=0;2)取值為“-∞”(負無窮)? ? 當μ>0 或g(x)<0

所以當取值“0”的時候有最大值,因此這時μ=0 或 g(x)=0


按照定理7.2,分離超平面可以寫成

Σai*yi(xi.xj)+ b* = 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7.29)

分類決策函數可以寫成

f(x) = sign(Σai*yi(7.29)

注:這里為何是ai和aj,xi和xj,yi和yj?

2、重新審視線性分類器問題(原始問題求w解轉化為對偶問題求a解,并引出內積)

min 1/2||w||^2 ? #注意自變量是w

s.t. yi(w.xi+b)-1≥0

需要求w的解,凸二次規劃問題的優點是“容易找到解”,有全局最優解。

下來的重要思路是將“帶不等式約束的問題”轉化為“只帶等式約束的問題--就能用拉氏算子輕松解決”(在這里,凸集邊界的點就起到關鍵作用)

1)需要求得一個線性函數(n維空間中的線性函數),

g(x)=wx+b,

使得所有屬于正類的點x+,代入后有g(x+)≥1

使得所有屬于負類的點x-,代入之后有g(x)≤1

注:g(x).x-或g(x).x+都會大于1,類似yi(w.xi+b)

2)求解的過程就是“求解w的過程”,w是n維向量

3)可以看出,求出w之后,就能得出超平面H、H1和H2的解

4)w如何推導?w是由樣本xi決定,這樣w就可以表示為樣本xi的某種組合

w=a1.x1+a2.x2+...+an.xn.

注:ai是實數值系數,又成為拉格朗日乘子;xi是樣本點因而是向量,n就是總樣本的個數

5)以下區別“數字和向量的乘積”以及“向量之間的乘積”,并用尖括號代表向量x1和x2的內積(也是點積,注意跟向量叉積的區別)

6)g(x)的表達式修改為:g(x)=+b(林軒田視頻中,干脆就是,b為w0)

7)進一步優化表達式

w=a1.y1.x1+a2.y2.x2+...+an.y3.xn? ? ? ? ? (式1)

注:yi是第i個樣本的標簽,yi=+1或yi=-1

8)? 對求和號Σ進行簡寫:w=Σ(aiyixi)

9)因此原來的g(x)表達式可以寫為:g(x)=+b=<Σ(aiyixi),x>+b

10)將上述公式的非向量提取出來,修改成以下式子:

g(x)=Σaiyi+b(式2)

11)至此,完成了將“求w”轉化成“求a”的過程

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容