1. 程式人生 > >機器學習之支持向量機(一):支持向量機的公式推導

機器學習之支持向量機(一):支持向量機的公式推導

根據 監督式 art 通用 利用 哪些 這就是 在線 方法

註:關於支持向量機系列文章是借鑒大神的神作,加以自己的理解寫成的;若對原作者有損請告知,我會及時處理。轉載請標明來源。

序:

我在支持向量機系列中主要講支持向量機的公式推導,第一部分講到推出拉格朗日對偶函數的對偶因子α;第二部分是SMO算法對於對偶因子的求解;第三部分是核函數的原理與應用,講核函數的推理及常用的核函數有哪些;第四部分是支持向量機的應用,按照機器學習實戰的代碼詳細解讀。

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)參數擴大相同的倍數後,如(,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算法求解過程的推導。

技術分享圖片

參考:

支持向量機通俗導論(理解SVM的三層境界)http://blog.csdn.net/macyang/article/details/38782399/

【機器學習詳解】SVM解二分類,多分類,及後驗概率輸出 http://blog.csdn.net/luoshixian099/article/details/51073885

機器學習之支持向量機(一):支持向量機的公式推導