1. 程式人生 > >機器學習十九:LinearSVM的軟間隔最大化模型

機器學習十九:LinearSVM的軟間隔最大化模型

AI

一 LinearSVM面臨的問題

有時候本來資料的確是可分的,也就是說可以用 線性分類SVM的學習方法來求解,但是卻因為混入了異常點,導致不能線性可分

比如下圖,本來資料是可以按下面的實線來做超平面分離的,可以由於一個橙色和一個藍色的異常點導致我們沒法按照線性支援向量機中的方法來分類。

0?wx_fmt=png

另外一種情況沒有這麼糟糕到不可分,但是會嚴重影響我們模型的泛化預測效果

比如下圖,本來如果我們不考慮異常點,SVM的超平面應該是下圖中的紅色線所示,但是由於有一個藍色的異常點,導致我們學習到的超平面是下圖中的粗虛線所示,這樣會嚴重影響我們的分類模型預測效果

0?wx_fmt=png

如何解決這些問題呢?SVM引入了軟間隔最大化的方法來解決。

二 LinearSVM的軟間隔最大化

所謂的軟間隔,是相對於硬間隔說的,我們可以認為上一篇線性分類SVM的學習方法屬於硬間隔最大化。

回顧下硬間隔最大化的條件:

0?wx_fmt=png

接著我們再看如何可以軟間隔最大化呢?

SVM對訓練集裡面的每個樣本 (xi,yi) 引入了一個鬆弛變數:

0?wx_fmt=png

這使函式間隔加上鬆弛變數大於等於1,也就是說:

0?wx_fmt=png

對比硬間隔最大化,可以看到我們對樣本到超平面的函式距離的要求放鬆了,之前是一定要大於等於1,現在只需要加上一個大於等於0的鬆弛變數能大於等於1就可以了

當然,鬆弛變數不能白加,這是有成本的,每一個鬆弛變數ξi, 對應了一個代價ξi,這個就得到了我們的軟間隔最大化的SVM學習條件如下:

0?wx_fmt=png

這裡,C>0為懲罰引數,可以理解為我們一般迴歸和分類問題正則化時候的引數

C越大,對誤分類的懲罰越大,C越小,對誤分類的懲罰越小

也就是說,我們希望

0?wx_fmt=png

儘量小,誤分類的點儘可能的少

C是協調兩者關係的正則化懲罰係數。在實際應用中,需要調參來選擇。

三  目標函式的優化

和線性可分SVM的優化方式類似,我們首先將軟間隔最大化的約束問題用拉格朗日函式轉化為無約束問題如下:

0?wx_fmt=png

其中  μi≥0,αi≥0,均為拉格朗日系數

也就是說,我們現在要優化的目標函式是:

0?wx_fmt=png

這個優化目標也滿足KKT條件,也就是說,我們可以通過拉格朗日對偶將我們的優化問題轉化為等價的對偶問題來求解如下:

0?wx_fmt=png

我們可以先求優化函式對於w,b,ξ的極小值, 接著再求拉格朗日乘子α和 μ的極大值

首先我們來求優化函式對於w,b,ξ的極小值,這個可以通過求偏導數求得:

0?wx_fmt=png

好了,我們可以利用上面的三個式子去消除w和b了:

0?wx_fmt=png

其中

(1)式到(2)式用到了

0?wx_fmt=png

(2)式到(3)式合併了同類項

(3)式到(4)式用到了範數的定義

0?wx_fmt=png

(4)式到(5)式用到了上面的

0?wx_fmt=png

 (5)式到(6)式把和樣本無關的wT提前

(6)式到(7)式合併了同類項

(7)式到(8)式把和樣本無關的b提前

(8)式到(9)式繼續用到

0?wx_fmt=png

(9)式到(10)式用到了向量的轉置。由於常量的轉置是其本身,所有隻有向量xi被轉置,

(10)式到(11)式用到了上面的

0?wx_fmt=png

(11)式到(12)式使用了

0?wx_fmt=png

的乘法運演算法則

(12)式到(13)式僅僅是位置的調整

現在我們看看我們的優化目標的數學形式:

0?wx_fmt=png

對於

0?wx_fmt=png

這3個式子,我們可以消去μi,只留下αi,也就是說 0≤αi≤C 同時將優化目標函式變號,求極小值,如下:

0?wx_fmt=png

和我們上一篇LinearSVM 的式子進行對比;

0?wx_fmt=png

仔細觀察可以發現,這個式子和我們上一篇線性可分SVM的一樣,唯一不一樣的是約束條件

僅僅是多了一個約束條件

0?wx_fmt=png

我們依然可以通過SMO演算法來求上式極小化時對應的α向量就可以求出和w和b了

四 軟間隔最大化時的支援向量

在硬間隔最大化時,支援向量比較簡單,就是滿足函式間隔 γ′>1(舉例取1,你也可以選擇其他數值)

而函式間隔定義如下:

0?wx_fmt=png

根據KKT條件中的對偶互補條件:

0?wx_fmt=png

如果

0?wx_fmt=png

則有

0?wx_fmt=png

 即點在支援向量上,否則如果

0?wx_fmt=png

則有

0?wx_fmt=png

即樣本在支援向量上或者已經被正確分類

在軟間隔最大化時,則稍微複雜一些,因為我們對每個樣本 (xi,yi) 引入了鬆弛變數 ξi

我們從下圖來研究軟間隔最大化時支援向量的情況,第i個點到對應類別支援向量的距離為

0?wx_fmt=png

根據軟間隔最大化時KKT條件中的對偶互補條件

0?wx_fmt=png

     a) 如果α=0,那麼yi(wTxi+b)−1≥0,即樣本在支援向量上或者已經被正確分類。如圖中所有遠離支援向量的點

  b) 如果0≤α≤C,那麼ξi=0,yi(wTxi+b)−1=0,即點在支援向量上。如圖中在虛線支援向量上的點

  c) 如果α=C,說明這是一個可能比較異常的點,需要檢查此時ξi

                     i)如果0≤ξi≤1,那麼點被正確分類,但是卻在超平面和自己類別的支援向量之間。如圖中的樣本2和4.

     ii)如果ξi=1,那麼點在分離超平面上,無法被正確分類。

     iii)如果ξi>1,那麼點在超平面的另一側,也就是說,這個點不能被正常分類。如圖中的樣本1和3.

0?wx_fmt=jpeg

LinearSVM的演算法過程總結

這裡我們對軟間隔最大化時的線性可分SVM的演算法過程做一個總結

輸入是線性可分的m個樣本

0?wx_fmt=png

其中x為n維特徵向量。y為二元輸出,值為1,或者-1

輸出是分離超平面的引數和w∗和b∗和分類決策函式。

演算法過程如下:

            1)選擇一個懲罰係數C>0, 構造約束優化問題

0?wx_fmt=png

            2)用SMO演算法求出上式最小時對應的α向量的值α∗向量

            3) 計算

0?wx_fmt=png

        4) 找出所有的S個支援向量,即滿足

0?wx_fmt=png

對應的樣本(xs,ys),通過 

0?wx_fmt=png

計算出每個支援向量(xx,ys)對應的bs∗,計算出這些

0?wx_fmt=png

 所有的bs∗對應的平均值即為最終的

0?wx_fmt=png

這樣最終的分類超平面為:w∗∙x+b∗=0,最終的分類決策函式為:

AI

這裡的模板都是通過設定佈局背景來組合搭配的,需要調出佈局設定來更換背景圖片,使用定位功能可以改變大小

0?wx_fmt=jpeg

不失初心,不忘初衷

0?wx_fmt=jpeg

AI玩轉智慧