十大算法--支持向量機

一、拉格朗日對偶性

在學習SVM之前,首先要理解什麼是拉格朗日對偶性,
1.原始問題
假設f(x),ci(x),hj(x)是定義在Rn上的連續可微函數,考慮yue束優化問題
這裏寫圖片描述
稱此問題爲原始問題。

2.由原始問題引入的拉格朗日函數
這裏寫圖片描述
這裏x=(x(1),x(2),…x(n))屬於Rn,ai,βi是拉個朗日乘子,ai>=0。另外,考慮以下問題:
這裏寫圖片描述
顯然,L(x,ai,βi)的第三個多項式爲0,若是上述問題求得最大值,只有當ai取0值的情況下可以得到.當上述問題取得最大值時,則θp(x)=f(x).因此,有如下關係式:
這裏寫圖片描述
如果此時再考慮最小化問題
這裏寫圖片描述
這個問題與原始問題是等價的,他們有相同的解.因此可以把原始問題當作廣義拉格朗日函數的極大極少問題.

3.對偶問題
我們稱以下問題爲上述C.8問題的對偶問題
這裏寫圖片描述

4.原始問題和對偶問題的關係:
根據數學家的推導,在滿足kkt條件的情況下,原始問題和對偶問題具有相同的解,即原始問題的最小值等於對偶問題的最大值,並且兩者有着相同的最優解.一下是kkt條件:
這裏寫圖片描述
這裏寫圖片描述

有了這個基礎之後,再去看看支持向量機就容易多了。

二、支持向量機

支持向量機分爲線性可分,近似線性可分,線性不可分3中情況。先介紹最簡單的線性可分的情況。假設給定特徵空間上的訓練數據集T={(x1,y1),(x2,y2),…(xn,yn)}.其中,xi爲第i個特徵向量,yi爲xi的類標記。當yi=+1,稱xi爲正例,當yi=-1,成xi爲負例。線性目標是找出一個超平面,將實例分成不同的類別,分離超平面對應的方程是w.x+b=0.相應的決策函數是f(x)=sign(w.x+b).支持向量機學習的基本想法是求解能夠正確分類劃分數據集合並且使得幾何間隔最大的分離超平面。這就意味不僅要將正負實例點分開,並且要一足夠大的確信度將他們分開。
根據一些文獻資料,可以得出如下線性可分支持向量機學習的最優化問題:
這裏寫圖片描述
約束條件中的yi是類標籤,而(w.xi+b)是估計出來值,當估計正確,則兩者的乘積爲一個正數。可以把這個約束條件理解爲把所有的點都分類正確。
然後講上述線性可分支持向量機的最優化問題構建一個拉格朗日函數如下:
這裏寫圖片描述
根據上面闡述的知識,這個函數在一定的條件下可以等價於原始問題。同時,我們可以利用如下的對偶問題求出這個拉格朗日函數的最優解,也就是原始問題的最優解。
以下是該拉格朗日函數的對偶問題:
這裏寫圖片描述
求得最優解:
這裏寫圖片描述
然後得出:
這裏寫圖片描述
選擇其中的aj>0,計算
這裏寫圖片描述
最後得出決策平面:
這裏寫圖片描述

三、線性不可分的支持向量機

我對這個的理解比較膚淺。當樣本在低維空間中線性不可分時,經過高維變換之後,將樣本投影到高維的空間,然後達到可分的效果。
以高斯核函數爲例:
這裏寫圖片描述
該核函數對應的支持向量機手機高斯徑向基函數分類器,在此情況下,分類決策函數爲:
這裏寫圖片描述
其實,在所有實現的代碼過程中,只需要將x和xi做內積的部分用K(x,xi)核函數替換就好。

四、序列最小化最優化算法

假如通過標題二中的方法求解的話,當訓練樣本很大的時候,運算量就會變得很大。所以platt提出了SMO算法。SMO算法的思路是,當所有的變量的解都滿足最優化問題的KKT條件,那麼這個解就是該最優化問題的最優解。否則,選擇兩個變量,固定其他變量,針對這兩個變量構建一個二次規劃子問題,這個二次規劃子問題會更接近原始二次規劃問題的解,因爲這會使得目標函數的值變得更小。假設選擇兩個變量a1,a2.其他變量爲ai(i=1,2,..N)是固定的。則SMO的子問題可以寫成:
這裏寫圖片描述
其中約束條件:
這裏寫圖片描述
分析約束條件,用二維空間中的圖像表示約束條件:
這裏寫圖片描述
設最優值a2new取值範圍要滿足條件:
這裏寫圖片描述
當y1不等於y2,如上左圖所示,則
這裏寫圖片描述
若y1等於y2,則
這裏寫圖片描述
上面是a2new的邊界值。當a2在邊界內時,計算方式如下:
這裏寫圖片描述
這裏寫圖片描述
綜合上述,a2new的解是
這裏寫圖片描述
而a1new的解是
這裏寫圖片描述
每次完成兩個變量的優化後,要重新計算b。當a1和a2都是大於0小於c,根據kkt條件,那麼
這裏寫圖片描述
這裏寫圖片描述
此時b1=b2.
如果a1,a2是0或者c,根據kkt條件,選擇b1和b2的重點作爲新的b。

一直迭代上述過程,知道所有的變量都符合KKt條件,得出來的解就是最優解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章