SVM

前兩章討論支持向量機時,假設了數據最終是能完全被分開,即數據在原始特徵空間或映射到高維特徵空間之後能夠完全正確分類。但是,這樣絕對的分類存在一個明顯的問題,如果模型中存在異常點,即使高維映射之後,能夠完全正確分類,也可能導致模型複雜度過高,模型過擬合。雖然訓練出來的模型能夠在訓練集上表現很好,但其泛化能力會很差
如下圖所示,明顯藍色框標記的兩個白色點和兩個紅色點都是異常點,如果通過硬間隔SVM我們會得到右上角的分類效果,而採用高斯核則會得到左下角的結果。這兩種分類器都能夠將訓練樣本完全正確分類,但是這與我們人眼所觀測到的分類器明顯存在差異,如果應用這兩個分類器在測試集上進行測試,有可能出現很大的誤差。我們認爲最恰當的應該還是類似於右下角的軟間隔分類器。
這裏寫圖片描述
也就是說,在某種情況下,訓練集數據存在一定的異常點,如果將這些異常點取出後,我們能夠得到更好的模型。那麼,如何將這些異常點去的影響去除呢?在SVM中我們通過引入鬆弛變量來解決這個問題。爲了更好地理解鬆弛變量的含義,我們在此類比邏輯迴歸的損失函數。

邏輯迴歸

之所以在這裏又引出logistic迴歸,一方面是爲了後面比較兩者的應用環境,更重要的則是通過損失函數對比,感性認識支持向量中目標函數的意義,方便更好的調試SVM模型中的各項參數。
首先我們回顧一下logistic迴歸中損失函數的定義:

J(θ)=1mi=1m[yiloghθ(x(i))(1yi)log(1hθ(x(i)))]+λ2mj=1Nθ2j

其中,原始的error項yiloghθ(x(i))(1yi)log(1hθ(x(i))) 如下圖所示,對於正樣本而言,θTx 越大,預測函數 hθ(x) 越接近1, 即與正樣本的差越小;同理,我們也可以這麼理解負樣本預測值的代價。
這裏寫圖片描述
通過上面的分析,我們可以重新定義原始的損失函數爲:
Eϵ(f(x)y)={0,|f(x)y|ϵ,|f(x)y|<ϵotherwise

因此,帶正則化的損失函數可以定義爲:
J(θ)=Cn=1mEϵ(f(x)y)+12||w||2

對比於初始的損失函數,其中Eϵ(f(x)y)是模型訓練誤差,即錯分樣本的代價;||w||2是正則化的代價。然後兩項去掉了分母m,訓練集的大小,是兩項共有常數,去掉不影響最終的優化效果;然後兩項同時除以λ,即 C=1λ,對於選定好的參數λ,也不會影響最終的優化效果。
通過對邏輯迴歸目標函數的變形,我們可以看到,代價函數可以分爲錯分樣本代價和模型複雜度代價兩部分。前面介紹的別的機器算法也與此類似,接下來我們再來看支持向量機軟間隔最大化的代價函數。

支持向量機

在軟間隔最大化中,我們引入鬆弛變量 ξi0,允許樣本錯分。具體來說,現在的約束條件就變爲了:

yi(wxi+b)1ξi

對於硬間隔SVM中的所有樣本點,他們到分割平面的函數間隔都大於等於1。如今通過引入鬆弛變量,卻允許他們函數間隔小於1了,即樣本可以錯分了。現在我們假設鬆弛變量 ξi 很大,則任意超平面都能滿足條件了,這樣顯然是不合理的。因此原來的目標函數由12||w||2 變成:
12||w||2+Ci=1Nξi

其中C>0 稱爲懲罰函數,是對錯分樣本的懲罰。C 很大時對錯分樣本的懲罰增大,C 很小時對錯分樣本的懲罰減小。(這樣我們也可以將原始硬間隔中的目標函數看做是軟間隔目標函數中C 無窮大的情況,即硬間隔的錯分代價無窮大,不允許錯分)。這樣,我們的學習問題就可以改寫爲:
minw,b,ξs.t12||w||2+Ci=1Nξiyi(wxi+b)1ξii=1,2,,Nξi0,i=1,2,,N

同樣,原始問題的拉格朗日函數爲:
L(w,b,ξ,α,μ)=12||w||2+Ci=1Nξii=1Nαi[yi(wTxi+b)1+ξi]i=1Nμiξi

原始問題是拉個朗日的極大極小問題,對偶問題是極小極大問題,我們可以先求L(w,b,ξ,α,μ)的極小值:
wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0w=i=1NαiyixibL(w,b,ξ,α,μ)=i=1Nαiyi=0i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiξi=0

將求導之後的極致條件帶回原始的拉格朗日函數可以得到和硬間隔SVM一樣的目標函數:
minw,b,ξL(w,b,ξ,α,μ)=i=1Nai12i=1Nj=1Nαiαjyiyj(xTixj)

但是整個函數的約束條件卻改變了,因此,對偶問題的優化問題爲:
maxas.t.i=1Nai12i=1Nj=1Nαiαjyiyj(xTixj)i=1Nαiyi=00αiC,i=1,2,,N

和前面硬間隔SVM的結果相比,就是限制條件中多了一個上限,即αiC。軟間隔SVM也可以用於非線性支持向量機,只需要將內積改爲的內核即可。軟間隔支持向量的代價函數既考慮了樣本分類誤差,又考慮了模型的複雜度,通過調節其中的參數C可以使函數既能夠兼顧訓練集上的分類精度,又控制模型複雜度,使模型泛化能力增加。因此,我們實際中所使用的SVM分類器基本上屬於這一類。

通過對比邏輯迴歸和支持向量機的代價函數的形式,我們就能很好理解支持向量機代價函數的組成和參數 CC=1λ 的含義,與正則化參數λ一樣,都是用於調節分類誤差和模型複雜度代價的權重,使模型在保證分類誤差最小的情況得到最大間隔超平面。

發佈了36 篇原創文章 · 獲贊 51 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章