支持向量机SVM(四)
9 規則化和不可分情況處理(Regularization and the non-separable case)
我們之前討論的情況都是建立在樣例線性可分的假設上,當樣例線性不可分時,我們可以嘗試使用核函數來將特征映射到高維,這樣很可能就可分了。然而,映射后我們也不能100%保證可分。那怎么辦呢,我們需要將模型進行調整,以保證在不可分的情況下,也能夠盡可能地找出分隔超平面。
看下面兩張圖:
可以看到一個離群點(可能是噪聲)可以造成超平面的移動,間隔縮小,可見以前的模型對噪聲非常敏感。再有甚者,如果離群點在另外一個類中,那么這時候就是線性不可分了。
這時候我們應該允許一些點游離并在在模型中違背限制條件(函數間隔大于1)。我們設計得到新的模型如下(也稱軟間隔):
引入非負參數后(稱為松弛變量),就允許某些樣本點的函數間隔小于1,即在最大間隔區間里面,或者函數間隔是負數,即樣本點在對方的區域中。而放松限制條件后,我們需要重新調整目標函數,以對離群點進行處罰,目標函數后面加上的就表示離群點越多,目標函數值越大,而我們要求的是盡可能小的目標函數值。這里的C是離群點的權重,C越大表明離群點對目標函數影響越大,也就是越不希望看到離群點。我們看到,目標函數控制了離群點的數目和程度,使大部分樣本點仍然遵守限制條件。
模型修改后,拉格朗日公式也要修改如下:
這里的和都是拉格朗日乘子,回想我們在拉格朗日對偶中提到的求法,先寫出拉格朗日公式(如上),然后將其看作是變量w和b的函數,分別對其求偏導,得到w和b的表達式。然后代入公式中,求帶入后公式的極大值。整個推導過程類似以前的模型,這里只寫出最后結果如下:
此時,我們發現沒有了參數,與之前模型唯一不同在于又多了的限制條件。需要提醒的是,b的求值公式也發生了改變,改變結果在SMO算法里面介紹。先看看KKT條件的變化:
第一個式子表明在兩條間隔線外的樣本點前面的系數為0,離群樣本點前面的系數為C,而支持向量(也就是在超平面兩邊的最大間隔線上)的樣本點前面系數在(0,C)上。通過KKT條件可知,某些在最大間隔線上的樣本點也不是支持向量,相反也可能是離群點。
10 坐標上升法(Coordinate ascent)
在最后討論的求解之前,我們先看看坐標上升法的基本原理。假設要求解下面的優化問題:
這里W是向量的函數。之前我們在回歸中提到過兩種求最優解的方法,一種是梯度下降法,另外一種是牛頓法。現在我們再講一種方法稱為坐標上升法(求解最小值問題時,稱作坐標下降法,原理一樣)。
方法過程:
最里面語句的意思是固定除之外的所有,這時W可看作只是關于的函數,那么直接對求導優化即可。這里我們進行最大化求導的順序i是從1到m,可以通過更改優化順序來使W能夠更快地增加并收斂。如果W在內循環中能夠很快地達到最優,那么坐標上升法會是一個很高效的求極值方法。
下面通過一張圖來展示:
橢圓代表了二次函數的各個等高線,變量數為2,起始坐標是(2,-2)。圖中的直線式迭代優化的路徑,可以看到每一步都會向最優值前進一步,而且前進路線是平行于坐標軸的,因為每一步只優化一個變量。
出處:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988415.html
總結
以上是生活随笔為你收集整理的支持向量机SVM(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支持向量机(三)核函数
- 下一篇: 支持向量机SVM(五)SMO算法