支持向量機SVM——軟間隔
接上一篇博客支持向量機SVM(2)——拉格朗日乘數法
前面我們的問題假設數據處於理想狀態,而現實情況是數據可能是線性不可分的,或者可分但是存在噪聲。對於有噪聲這種情況,如果我們還是使用前面的方法,那麼就會把噪聲也分類,就會存在過擬合的情況。解決這個問題的一個方法就是存於我們的超平面出一點點錯,這也就是「軟間隔」(soft margin),而前面我們所講的就是「硬間隔」(hard margin)。
如下圖所示:我們允許出現紅色圈的那些點不滿足約束條件
yi(wTxi+b)≥1。
我們現在用loss來表示允許一點錯誤的損失,當
yi(wTxi+b)<1不滿足約束條件時,loss=1;
yi(wTxi+b)≥1時滿足條件時,這個時候沒有錯誤,loss=0。這也稱爲0/1損失函數:
loss(z)={1,ifz<10,otherwise
那麼我們原始的優化目標就變成了:
min(w,b)21wTw+Ci=1∑Nloss(yi(wTxi+b))
其中,C是常數。
很容易發現我們的損失函數並不連續,在後面我們求導過程中的處理會比較麻煩,這裏我們會用一些其他的連續的損失函數來替代,常見的有三種替代損失函數:
hinge損失:losshinge(z)=max(0,1−z)指數損失:lossexp(z)=exp(−z)對率損失:losslog(z)=log(1+exp(−z))
這裏我們採用hinge損失,那麼我們上面的優化目標就變成如下形式:
min(w,b)21wTw+Ci=1∑Nmax(0,1−yi(wTxi+b))
但一般我們不寫成上面這種形式,我們先引入
ξi=1−yi(wTxi+b)。當
ξi大於0時,上面的max就取
ξi;當
ξi小於0時,上面的max取0,所以我們直接添加一個約束
ξi≥0,然後我們原始的問題就可以寫成如下形式:
⎩⎪⎨⎪⎧min(w,b,ξi)21wTw+C∑i=1Nξis.t.yi(wTxi+b)≥1−ξiξi≥0
其中
ξi也稱爲鬆弛變量。
現在我們就可以採取和硬間隔中一樣的辦法來求解:即先構造拉了朗日函數,然後利用對偶關係求解對偶問題,最後求導。
(不懂得可以翻看前一篇博客)
簡單走一下流程:
(1)構造拉格朗日函數:
L(w,b,λ,ξ,u)=21wTw+Ci=1∑Nξi+i=1∑Nλi(1−ξi−yi(wTxi+b))−i=1∑Nuiξi
其中,
λi≥0,ui≥0是拉格朗日乘子。
(2)然後我們的優化問題可以寫成如下形式(對
w,b,ξ無約束):
{min(w,b,ξ)max(λ,u)L(w,b,λ,ξ,u)s.t.λi≥0,ui≥0
(3)利用對偶關係求其對偶問題:
{max(λ,u)min(w,b,ξ)L(w,b,λ,ξ,u)s.t.λi≥0,ui≥0
然後通過對
w,b,ξ分別求偏導並令其爲0,來求解
min(w,b,ξ)L(w,b,λ,ξ,u)的最優解:
⎩⎪⎨⎪⎧δbδL=0⟺∑i=1Nλiyi=0δwδL=0⟺w=∑i=1NλiyixiδξiδL=0⟺C=λi+ui
(4)將上面對min求得的最優解代入我們的對偶問題中,可得:
⎩⎪⎨⎪⎧maxλ(−21∑i=1N∑j=1NλiλjyiyjxiTxj+∑i=1Nλi)s.t.0≤λi≤C∑i=1Nλiyi=0
可以看到這和我們硬間隔中得到最終優化問題唯一不同就是:軟間隔
0≤λi≤C,而硬間隔
0≤λi。
並且仍然滿足KKT條件:
⎩⎪⎪⎪⎨⎪⎪⎪⎧λi(1−yi(wTxi+b)−ξi)=0λi≥0,ui≥0yi(wTxi+b)≥1−ξiξi≥0,uiξi=0