SVM 透徹理解與分析

hit2015spring

歡迎關注我的博客:http://blog.csdn.NET/hit2015spring

支持向量機問題
問題先按照幾何間隔最大化的原則引出他的問題爲

minw,b12w2
s.t.yi(wTxi+b)1,i=1,2,,m

上面的約束條件就是一個不等式約束,
可以寫成
01yi(wTxi+b),i=1,2,,m

這個是SVM的基本型,或者說是原始問題,尋找這個問題的解法就是需要一些數學的理論,當然在尋找這個解法的過程中,就陸續展開了對於SVM中條件的物理含義的一些解釋。

解決該問題,用拉格朗日乘子法和KKT條件導出他的對偶問題,通過解決他的對偶問題,從而解決原始問題。這裏麪包含的知識有:拉格朗日乘子,kkt條件,對偶理論,凸優化,線性代數,高等數學。當然上面這些是理論上的證明解的存在和解的方向,在求解出真正能用的模型還需要數值分析的一些優化方法,如:牛頓法,梯度下降。。。。。。

首先解決引出他的對偶問題:

對它引入拉格朗日乘子,參考KKT條件和拉格朗日乘子法即對上式添加拉格朗日乘子αi0 該問題的拉格朗日函數可以寫成:
L(w,b,α)=12w2+i=1mαi(1yi(wTxi+b))

對偶問題

先定義一個概念:Wolfe對偶:定義問題(1)(3) 是凸優化問題(4)(5) 的對偶

maxα,xxL(x,α)(1)

s.t.xL(x,α)=0(2)

α>0(3)

這裏的L(x,α)f(x) 的拉格朗日函數

minf(x)(4)

s.t.ci(x)0,i=1,2,3,p(5)

再定義一個概念:約束規格:
考慮一般約束問題

minf(x)s.t.c(x)=0c(x)0(6)

在式(6)的可行域D={x|ci(x)0,i=1,,p;ci(x)=0,i=p+1,,p+q} ,在這p+q 個約束函數c1(x),,cp+q(x) 都是可微函數,引進下列兩種對約束的限制性條件(約束規格)
1、線性條件:p+q 個約束函數都是線性函數
2、梯度無關條件:梯度向量集{ci(x¯)|iA¯} 線性無關,其中A¯x¯ 處的有效集

在這裏引入一個定理: Wolfe對偶定理:
考慮連續可微的凸優化問題(4)(5) ,其中f 和每一個ci 都是連續可微的凸函數,且定義約束規格中的任意一個約束規格成立,則有以下的:
(1)若原始問題(4)(5) 有解,則它的Wolfe對偶問題(1)(3) 有解
(2)若原始問題和它的Wolfe對偶問題分別有可行解x¯α¯ ,則這兩個解分別爲原始問題和對偶問題最優解的充要條件是它們相應的原始問題和對偶問題的目標函數值相等

對其原始問題引入式(1)(3) 中的對偶問題(拉格朗日函數的極大極小)
令拉格朗日函數對w,b 求偏導數,並令他們等於0

w=i=1mαiyixi0=i=1mαiyi(7)

把式(7)中的兩個代入原始的拉格朗日函數可得到式:

12w2w2+i=1mαi+i=1mαiyib(8)

故得到了SVM基本型的對偶問題爲:

maxαi=1mαi12i=1mj=1mαiαjyiyjxTixjs.t.i=1mαiyi=0αi0,i=1,2,,m(9)

上面的對偶問題,對於它求解是可以做到的,這裏面的解法涉及到了數值分析中的一些問題。
由Wolfe定理可以知道,只要解決了這個對偶問題之後,我們便可以得到原始問題的解,因爲原始問題的解可以通過對偶問題的解得到,於

求解出α 後在求出wb

f(x)=wTx+b=i=1mαiyixTix+b(10)

下面是對於在求解過程中的一些物理含義的解釋,可以更加具體的理解一下SVM就是支持向量的含義:

由對偶問題解出的αi 是拉格朗日乘子,對應着訓練樣本(xi,yi) ,而且需要滿足KKT條件,於是就有下式,參考KKT條件和拉格朗日乘子法

αi0yif(xi)10αi(yif(xi)1)=0(11)

這裏寫圖片描述

這裏解釋了支持向量貢獻了超平面的計算和非支持向量對超平面沒有影響之間的關係

拉格朗日對偶的引入是爲求解svm提供途徑,kkt條件是svm存在解的充要條件。只要求出解,就得滿足kkt條件

線性支持向量機與軟間隔

在支持向量機中,解決線性不可分問題主要有兩種方法:硬間隔核函數空間映射,線性軟間隔,一般作用的時候是兩者結合起來。

在線性可分的的情況下,支持向量機要求所有的點都要滿足約束條件,但是事情往往沒有那麼完美的滿足,在線性不可分的情況下,並不是所有的點都會滿足,爲了解決這個問題,就引入了一個懲罰項,這個懲罰項對不滿足約束條件yi(wxi+b)1 進行懲罰處理。這裏引入一個鬆弛變量ζi ,直觀的可以看一下,我們對在分類問題中進行一些調整了,就是把約束條件放寬,原本的約束條件yi(wxi+b)1 轉化爲:yi(wxi+b)1ζi .當然引入了鬆弛條件,這時候付出的代價當然要進行相應的調整了,於是我們對分類錯誤或者分類的效果不滿意的點進行了懲罰處理。
這個懲罰處理就體現在了最終需要優化的目標函數當中:軟間隔的svm需要優化的目標函數就是:

minw,b,ζ12w2+Ci=1mζi(12)

這裏的C就是權衡一下壞點所佔有的比重,當C 時,那時候就強制要求所有的樣例點都要滿足約束條件,於是上面的問題就轉化爲一個硬間隔的svm。對式(12)進行優化,代表着兩層含義:使得間隔儘量大,同時使得分類點的個數儘量少。

於是軟間隔的SVM的原始問題可以描述成下式

minw,b,ζ12w2+Ci=1mζis.t.yi(wxi+b)1ζiζi0,i=1,2,,m(13)

式(13)是一個凸二次規劃問題,在這裏面可以證明得到w 的解是唯一的,而b 的解是不唯一的,b 的解存在於一個區間中,具體證明見書《數據挖掘中的新方法——支持向量機》,當然爲了求解式(13)的問題,我們同樣要通過求解其對偶問題,從而得到該問題的解。
同樣引入拉格朗日函數

L(w,b,ζ,α,μ)=12w2+Ci=1mζii=1mαi(yi(wTxi+b)1+ζi)i=1mμiζi(14)

對偶問題是拉格朗日的極大極小問題,同樣先要求關於 w,b,ζ 的極小

wL(w,b,ζ,α,μ)=wi=1mαiyixi=0
bL(w,b,ζ,α,μ)=i=1mαiyi=0
ζiL(w,b,ζ,α,μ)=Cαiμi=0

可得到

w=i=1mαiyixi(15)

i=1mαiyi=0(16)

Cαiμi=0(17)

上面三個式子代入(14)可得到

minw,b,ζL(w,b,ζ,α,μ)=i=1mαi12i=1mj=1mαiαjyiyjxTixj(18)

再對minw,b,ζL(w,b,ζ,α,μ)α 的極大,即可得到對偶問題

maxαi=1mαi12i=1mj=1mαiαjyiyjxTixjs.t.i=1mαiyi=0Cαiμi=0αi0μi0,i=1,2,,m(19)

對約束條件進行轉換,消去μi 從而只留下αi ,即後面三個約束條件變爲
0αIC
對偶問題就轉爲:

maxαi=1mαi12i=1mj=1mαiαjyiyjxTixjs.t.i=1mαiyi=00αiCi=1,2,,m(20)

這裏繼續討論軟間隔的SVM的kkt條件,該優化問題具體的kkt條件和原始的KKT條件進行比對理解

KKT條件對比理解

損失函數

在軟間隔的SVM中引入懲罰項對間隔進行軟化,其實懲罰項的係數C含義是權衡懲罰項的比重,但是後面具體的懲罰項只是用一個ζ 來表示,卻要經過選取,具體的定義就是損失函數

損失函數是評價預測準確度的一種度量,預測:某個假設推斷出的結果,損失函數是與假設密切相關的。
常見的損失函數:

0-1損失函數:這裏寫圖片描述
此時軟間隔的優化函數爲:

minw,b,ζ12w2+Ci=1ml0/1(yi(wTxi+b)1)(21)

ϵ 不敏感損失函數
hinge損失函數 :l(z)=max[0,1z] ,此時的優化函數爲:
minw,b,ζ12w2+Ci=1mmax[0,1yi(wTxi+b)](22)

指數損失函數:l(z)=ez
對率損失函數:l(z)=log(1+ez)

在這裏證明一下如果在軟間隔的SVM中,該原始問題採用的是式(23)的話,

minw,b,ζ12w2+Ci=1mζis.t.yi(wxi+b)1ζiζi0,i=1,2,,m(23)

那麼其實他的損失函數就是用hinge函數,該函數的作用後面會提,先來證明一下:參考《統計學習方法》李航P114

證明:線性支持向量機原始最優化問題式(23)等價於最優化問題minw,bλw2+i=1mmax[0,1yi(wTxi+b)]

證明:令ζi=max[0,1yi(wTxi+b)]
1yi(wTxi+b)>0
1yi(wTxi+b)=ζi
1yi(wTxi+b)0
ζi=0
1yi(wTxi+b)ζi
yi(wTxi+b)1ζi
故滿足式(23)的約束條件:
s.t.yi(wxi+b)1ζi ζi0,i=1,2,,m
最優化問題minw,bλw2+i=1mmax[0,1yi(wTxi+b)] 可以寫成:

minw,bλw2+i=1mζi
λ=12C 可以得到:
minw,b1C(12w2+Ci=1mζi)
命題得證

所以在用線性支持向量機的時候,我們其實默認的損失函數就是hinge損失函數,它和其他損失函數的圖像如下圖所示

幾種損失函數的圖像

支持向量
這裏又要說到支持向量的概念了,在求解線性支持向量中我們需要滿足KKT條件下對問題進行優化,在上述我們給過那個圖

KKT條件對比理解

軟間隔zhi支持向量圖示

對於任意的訓練樣本(xi,yi) 總有αi=0 或者yif(xi)=1ζi .當αi=0 時,則該樣本不會對結果f(x) 產生影響;當0<αiC 時,則yif(xi)=1ζi ,這時候的樣本會對結果產生影響,即樣本就是支持向量。此時分爲兩種情況看
1 ,當0<αi<C 時,此時由約束條件C=αi+μi 得到,μi>0 ,ζi=0 此時樣本落在間隔的邊界上面。這時候損失函數是0

2 ,當αi=C 時,此時由約束條件C=αi+μi 得到,μi=0 ,ζi1 時,此時樣本落在間隔的內部,即兩個間隔之間。當ζi>1 時,此時樣本錯誤分類。這時候損失函數起作用,根據樣本點的分類情況而定。

所以從上述可以看出對於最終結果的影響是支持向量在起作用,當然這個作用的大小主要看的是該點被分類的效果,因爲從合頁損失函數的圖像來看,只有當分類的效果即ζileq0 的時候,此時的分類效果正好,不被懲罰即損失爲0,在分類的效果不好的時候此時的懲罰項起作用,即損失不爲0.所以合頁函數不僅要分的正確,還要分的具有足夠高的置信度,還有因爲合頁函數在yi(wTxi+b)>1 上面爲0了,就保證了svm解的稀疏性,就是在分類很正確的情況下,該樣本是不會對決策函數產生影響的。大於1的時候損失爲0,退化爲硬間隔的情況,硬間隔的情況下又因爲分類正確,且不是在邊界上的點,於是就不起作用了。

合頁損失函數
當然我們可以把合頁損失函數用另外的損失來替換,例如把he頁函數替換爲對率的時候,這時候由於對率函數連續光滑,這樣就算是在後面分類正確的情況下,還是會產生損失,由此這樣的點還是會對模型的構建產生影響,於是就是得不到關於支持向量概念的東西。其實這時候的模型會變爲一個對率迴歸的模型。
正如上述,損失函數的性質直接對模型的性質產生影響,由此我們可以用一個更加簡潔的方式來表達一下目標函數:

minfΩ(f)+Ci=1ml(f(xi),yi)(24)

式24的第一項表示這個模型的一些屬性,固有屬性,是根據先驗知識得到的,第二項是這個模型在這個訓練集上面的誤差項,這裏的誤差項表示着經驗風險,當然我們希望在訓練集上面的誤差很小,有一種辦法就是構造出很完美的第一項出來,它對數據的描述很精確,但是又不希望模型對於這個訓練集過度精確的描述,以至於把一些不是通用的特徵都學進去。所以我們需要優化的是這兩個矛盾的一種同一。所以很多的學習任務,能把優化的目標函數寫出來,那纔是王道。具體見描述20 萬、50 萬、100 萬年薪的算法工程師在能力素質模型上有哪些差距?

VC維概念的理解

VC維

我們在對一個問題進行學習的時候,會得到一些問題的決策函數f(x) ,但是決策函數是不唯一的,這些決策函數構成的集合就叫做假設集,用F 來表示。我們通常是從這個假設集裏面找一個使得經驗風險最小的f(x) 來作爲決策函數。
vc維是度量一個假設集F 的表達能力的,對於VC維的定義:

先定義幾個概念:
(1)N(F,Zm) :這個概念是表示:
設:

1、F 是一個假設集,理解爲決策函數的集合,它們在XR 上取值爲-1或者+1
2、Zm=x1,,xm 就是X 空間裏面的m個點構成的集合

Zm 中的每一個點代入F 中的一個函數fm(x) ,得到一個m維的向量(f(x_1,\cdots,f(x_m))),其實這個向量就是-1和+1構成的向量,當把F 裏面的所有的f 都取到後,所得到的不同的m維向量的個數就是N(F,Zm)

打散:還是上面的FZm ,如果N(F,Zm)=2m 就稱爲ZmF 打散

打散其實可以這樣理解:
![enter description here][2]

看上面的圖,上面的F 是二維空間上的線性指示函數
F=f(x,α)=sgn(α2[x]2+α1[x]1+α0)

Z3=x1,x2,x3 ,上面的圖中,Z3F 打散,就是如上圖所示,當取不同的f 的時候,那三個點的決策值是不一樣的值,可以取編23=8 種情況,這樣就能說明,ZmF 打散

增長函數N(F,m) :
N(F,m)=maxN(F,Zm)|ZmX

VC維表示的是在空間X 中能打散的最多的點數。這裏的最多是存在性問題。

其實有一個結論:在n 維空間中x=([x]1,[x]2,,[x]n)T 中的線性指示函數集合,它的VC維是n+1 (反正在求職過程中考過這個問題(某互聯網大廠))

支持向量機的總體理解

支持向量機的理論基礎是統計學習理論,其實它就是一個結構風險最小化的近似實現,結構風險相當於期望風險的一個上界,它是經驗風險和置信區間的和,經驗風險依賴於決策函數f 的選取,但是置信區間是,F 的VC維的增函數,兩者是矛盾的。矛盾體現在:當VC維數變大的時候可以選到更好的f 使得經驗風險比較小,但是此時的置信區間比較大

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章