分類(三):支持向量機SVM

    有些學習方法(如感知機)只須要找到任一線性分界面便可,而另外一些方法(如NB)則須要按照某個準則找到最優的線性分界面。對於SVM而言,它定義的準則是尋找一個離數據點最遠的決策面。
html


    SVM算法的數學原理相對比較複雜,可是思想比較簡單,就是經過某種核函數,將數據在高維空間裏尋找一個最優超平面,可以將兩類數據分開算法


一、支持向量

    從決策面到最近數據點的距離決定了分類器的間隔,這種構建方法意味着SVM的決策函數徹底由部分的數據子集所肯定,而且這些子集定義了分界面的位置。這些子集被稱爲支持向量(support vector)。
函數


二、目標函數

例子:學習

    要用一條直線,將下圖中黑色的點和白色的點分開,很顯然,圖上的這條直線就是咱們要求的直線之一(能夠有無數條這樣的直線)。優化

令黑色的點 類= -1, 白色的點 類 =  +1spa

sgn表示符號函數,當f(x) > 0的時候,sgn(f(x)) = +1, 當f(x) < 0的時候sgn(f(x)) = –1。htm

Classifier Boundary就是f(x),紅色和藍色的線(plus plane與minus plane)就是support vector所在的面,紅色、藍色線之間的間隙就是咱們要最大化的分類間的間隙。blog

當支持向量肯定下來的時候,分割函數就肯定下來了,兩個問題是等價的。獲得支持向量,還有一個做用是,讓支持向量後方那些點就不用參與計算了。get

給出咱們要優化求解的表達式:博客

min ||w||^2,這個式子可讓函數更平滑,之因此說更加平滑了,我認爲是由於平方的做用使得w表示的特徵更加明顯從而更易區分,因此SVM是一種不太容易over-fitting的方法。


原問題,加上一些限制條件:


後面的s.t. 限制條件有多個,對應着樣本的個數。


三、拉格朗日乘子法

    在求解上式最優解前,先來看看拉格朗日乘子法。

探討不等式約束的極值問題求法,問題以下:

定義1:通常化的拉格朗日公式:

這裏的α和β都是拉格朗日乘子,要求上式的最小值,先看看定義2.


定義2:

p表明primal原始的。

假設gi(w)>0或者hi(w)≠0,所以能夠經過調整α和β來使得Θp(w)有最大值爲無窮;而只有當知足約束gi(w)≤0 and hi(w)=0時,Θp(w)能夠f(w)。以下圖:

所以,咱們要求的min_w f(w) 能夠轉換爲 min_w Θp(w) 。

要求解min_w Θp(w),首先是有2個參數w和α,其次先求關於α的最大值,考慮到α也是不等式約束,而後再在w上求最小值,難度比較大。那先看看定義3


定義3:

D表明dual對偶,ΘD(w)將問題從原先的先求關於α的最大值再求關於w的最小值,轉變爲先求關於w的最小值再求關於α的最大值,

這個問題是原問題的對偶問題,相對於原問題只是更換了min和max的順序,並且通常更換順序的結果是

上式的相關證實,請參考:http://www.cnblogs.com/zhengyuhong/p/3590635.html 對該關係解釋的很詳細很清楚。

下面解釋下二者在什麼狀況下是等價的,也就是知足KKT(Karush-Kuhn-Tucker, KKT condition)條件。


四、KKT

該條件以下:

因此,若是w, α, β知足上述的幾個條件,那麼他們就是原問題和對偶問題的解。

其中,公式(5)這個條件能夠理解爲若是α>0,那麼gi(w)=0,也就是說w處於可行域(gi(w)≤0)的邊界上,也就是所說的支持向量;若是α=0,那麼gi(w)<0,也就是位於可行域的內部,也就不是所說的支持向量。


五、目標函數的變換

講了這麼多定義,回到SVM目標函數求最優解的問題上來。

原問題:

利用拉格朗日乘子法,轉換爲拉格朗日函數

下面按照對偶問題的求解步驟進行:

對上式,沒有β緣由是沒有等式約束條件,首先求解L(w, b, α)最小值,只和w、b有關係,所以對w和b分別求偏導,獲得:

第一個式子變換下獲得:

將其代回到拉格朗日函數,並將其化簡:

最後獲得:

因爲最後一項爲0,簡化爲:

拉格朗日函數如今只包含α變量,而咱們求出了α也就獲得了w和b。

接着,是極大化過程:

對於這個問題的求解,須要藉助SMO(序列最小優化算法)等算法。





本文參考的博客:

http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html

理解SVM的三層境界:

http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495537.html

http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495689.html   幫助挺大的,講的易懂

http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495788.html

拉格朗日乘子和KKT條件:

http://www.cnblogs.com/zhengyuhong/p/3590635.html

相關文章
相關標籤/搜索