1. 程式人生 > >支援向量機的公式推導(Support Vector Machine,SVM)

支援向量機的公式推導(Support Vector Machine,SVM)

轉:https://www.cnblogs.com/pursued-deer/p/7857306.html

1 認識向量機

支援向量機是處理資料分類問題,目的是學會一個二分類的函式模型,屬於監督式學習的方法,被廣泛應用於統計分類和迴歸分析。通過建立一個超平面對樣本資料進行分類,超平面涉及到凸優化及核函式的應用,而對於怎麼找到最優的超平面就是這部分要講的內容。

2 線性分類

假設資料樣本集是線性可分,即存在一個超平面將其分成兩類。以下推導的過程都是基於線性可分,非線性分類是線上性分類加上一個鬆弛因子,下面開始線性分類的推導。

2.1 線性分類的標號

在之前的Logistic 迴歸演算法中,我們是把資料分成 0 和 1 ,而這裡為了以後的推導式子的通用性,採用 -1 和 1 兩類。分類函式為 f (x) = ωTx + b ,其中 ω = (ω1 ,ω2 ,... , ωn),x = (x1, x2 , ... ,xn)。通俗的講支援向量機的解決的問題是找到最好的分類超平面,例如,在二維平面中其超平面就是一根直線,如下圖所示在能將兩類分開的直線中找到最佳的直線。評判直線的最佳的標準是:在能分類的情況下,樣本點與直線的距離越遠,說明直線就越佳。這就引出函式間隔和幾何間隔對選取的直線的評判。

2.2 函式間隔和幾何間隔

  一般而言,一個點距離超平面的遠近可以表示為分類預測的確信或準確程度。在超平面 wTx+b=0 確定的情況下,|wTx+b| 能夠相對的表示點x到距離超平面的遠近,而 wTx+b 的符號與類標記 y 的符號是否一致表示分類是否正確,所以,可以用量 y(wTx+b) 的正負性來判定或表示分類的正確性和確信度。即,y(wTx+b) > 0 時分類正確;y(wTx+b) < 0 時分類錯誤。

2.2.1 函式間隔

 超平面 f ( x ) 關於樣本點(x (i) , y (i))的函式間隔:

對於樣本集中的每個樣本點都與超平面有函式間隔,但只能選取最小值:

定義是為了最大化間隔,表示關於超平面與訓練集中樣本的函式間隔最小值,下面只要最大化即可。 注意到函式間隔實際上並不能表示點到超平面的距離,因為當超平面(ω,b)引數擴大相同的倍數後,如(2ω,2b),超平面的位置並沒有改變,但是函式間隔也變大了相同的倍數2γ^(i)。

 

 2.2.2 幾何間隔

 

如圖所示,樣本點A的座標為 x (i) ,A 到超平面的垂直距離為 γ(i) ,超平面的單位法向量是 ω / || ω || ,B點是超平面上一點且是A點的投影,則 B 點的座標 x(i) - γ(i) ω / || ω || ,將其帶入超平面方程 f (x) = ωT x + b =0 .

如果分類正確,則 y(i) 與 f( x(i)) 符號相同,幾何間隔是:

超平面與樣本集的幾何間隔是:

如上所述,函式間隔與幾何間隔的關係有: , 若|| ω || = 1,那麼函式間隔與幾何間隔相同。

2.3 間隔最大化

現在又進一步,由原來的求一個超平面到現在求超平面的最大間隔。通過函式間隔與幾何間隔的定義知利用幾何間隔衡量最佳的標準是合適的,因為幾何間隔是真正意義上的距離,如同我們求點到平面的距離一樣:

接下來再介紹一個概念:支援向量。如下圖所示,假設中間的紅線是超平面,那麼虛線上的樣本點就是支援向量。

這樣一來,我們就可以定義間隔最大化:

                                           max 

 

需要滿足的條件是:

 間隔的有效的樣本點是支援向量的點,即是符合函式間隔等於 1 的點。那麼就可以對間隔的最大化可以為:

其中,s.t.,即subject to的意思,它匯出的是約束條件。

2.4 向對偶問題轉化

 由上面的式子經過變化,得到凸優化問題,即 將max 1/ || ω || 轉化成求 min 1/2 || ω || 2 ,兩者是等價的。

轉化到這個形式後,我們的問題成為了一個凸優化問題,或者更具體的說,因為現在的目標函式是二次的,約束條件是線性的,所以它是一個凸二次規劃問題。這個問題可以用任何現成的QP的優化包進行求解,歸結為一句話即是:在一定的約束條件下,目標最優,損失最小。

除了用解決QP問題的常規方法之外,還可以通過求解對偶問題得到最優解,這就是線性可分條件下支援向量機的對偶演算法,這樣做的優點在於:一者對偶問題往往更容易求解;二者可以自然的引入核函式,進而推廣到非線性分類問題。

現在要對凸優化進行求解,現在給出的經驗求解方法是,通過求解對偶問題得到最優解。對偶問題是什麼?這就要引出拉格朗日函式,將約束條件融合到目標函式中,通過給每個約束條件加上一個拉格朗日乘子 α 。

然後令:

現在我們的目標函式變成了:

對這個公式的理解:在滿足約束條件(即樣本點為支援向量)下,最大的幾何間隔中取最小的值。max L(w,b,a) 是得到支援向量的樣本點,然後再這些樣本點中找到min 1/2 || w ||2 的最小值(最大間隔)。

注意了,對偶問題出來了(p* 是原來的問題,d* 是對偶問題),將最小最大的位置交換,得到下面的式子:

交換之後的問題就不等價了,有以下關係:d* <= p* 。但在滿足某些條件下(KKT條件),兩者是相等的。現在我們把對偶問題得出了,但怎麼對偶問題進行求解呢?繼續向下看,最終的目標式子就要出來了。

2.5 對偶問題的求解

 上述可知,原來問題與對偶問題的等價條件是滿足某些條件,條件就是KKT 。不知道KKT 條件沒關係,現在你只需要明白原來問題是滿足KKT條件,KKT 條件在核函式中講解。而求解這個對偶學習問題,分為3個步驟:1、讓L(ω, b,  α)關於 ω 和 b 的最小化;2、求 α 的極大;3、利用SMO演算法求解對偶因子(α)。這裡主要講1 和 2 ,步驟 3 在第二部分講。

步驟 1 : 固定 α ,然後L(ω, b,  α)對 ω 、b 求偏導,另其偏導數等於零。

把結果帶入L:

得到:

其中的推導過程如下:

步驟2 :對 α 求極大,通過步驟 1 已經把 變數 ω 、b  消去,函式只有 α。

如果我們把對偶因子求出,那麼我們就可以得到最佳的超平面 f (x) = ωT x + b ;

b 根據KKT條件 ,αi [ y(i)(ωTx(i) + b ) -1] =0, i =1, 2 ,..., m ,其中必然存在一個αj 不等於0 ,y(j)(ωTx(j) + b )=1 ,兩邊同乘以 y(j) 可得:

b = y(j) - Σi=1mαi y(i) x(i)x(j)  , 也可以對所有滿足條件的b加權平均。

到這裡我們把目標函式 f(x) 的求解轉化成對對偶因子的求解,正如 July 大神總結的一樣。下部分對SMO演算法求解過程的推導。