錯分問題與離羣點問題
之前的SVM(http://blog.csdn.net/ice110956/article/details/23436171)推導前提條件是樣本線性可分,或者至少在高維空間中線性可分。但是許多情況下,並不是高維可分的。先考慮如下面這種情況:
由於一個小的離羣點,整個分隔平面發生了很大的改變。於是我們尋求寬鬆的限制原則來改進之前的嚴格SVM,從而也能夠處理高維不可分情況。
考慮加入正則化項,如下:
其中,也就是不是所有的樣本的函數間隔都要大於1,這個條件弱化的離羣點的影響。
當時,函數間隔爲負,也就是樣本錯分。這樣也就是允許一定的錯分。
在目標函數中加入懲罰項
其給離羣的點,錯分的點一定懲罰。
根據之前的對偶規劃,我們也能得到:
對比之前的公式,兩者唯一的不同是KKT互補條件由變爲。
之前論述過,alfa !=0的項是少數的幾個支持向量。同樣的,我們有類似結論:
SMO算法
之前的推導到以alfa爲變量的最優化爲最後形式。下面討論如何解這個問題。
座標上升法
考慮解下面的最優化問題:
其中alfa爲m維的量。
我們直觀地用逐一求解的方法,求解i時,固定其他所有的未知量,依次迭代求解,步驟如下:
稱爲座標上升法,其二維上的求解圖如下:
比較其他常見的下降法,如最速下降,牛頓法等。一般的方法以alfa向量爲單位,根據矩陣求導的方法,每次更新整個向量。
相比而言,座標上升法迭代步驟更多,但是每次求解是都把問題化簡爲一維的最優化問題。也就是雖然步驟增加,但是每次都更簡單。這是座標上升法的優勢。接下來把這種方法運用到SVM的求解中。
SMO算法
考慮我們最後得到的SVM優化公式如下:
其中的最後一個約束項,使得我們不能簡單運用座標上升法。因爲如果固定其他alfa,求解alfa(i)那麼根據最後一個約束項
Alfa(i)也是不可改變的。
於是,我們一次改變兩個變量。
每次根據一定的策略,如順序,選擇兩個變量,固定其他變量,求解兩個變量的最優化,步驟如下:
假設現在選取alfa1,alfa2兩個變量,得到:
簡化表示如下:
其約束在二維空間上表示如下:
Alfa1用alfa2表示:
帶入原問題,得到:
上述可以化爲以alfa2爲變量的一元二次方程:
求解後,再考慮得到的解是否滿足上面的alfa2定義域,如果不滿足,則做一定的裁切,使得得到的結果在定義域內: