支持向量機(SVM)公式推導

假設一堆訓練數據的正負樣本標記爲 

假設有一個超平面H ,可以通過此線性方程劃分,同時存在兩個平行於H的超平面H1H2

超平面H能夠正確分類,也就是滿足如下約束:

即:

            1

H最近的正負樣本剛好分別落在H1H2上使等號成立,它們就是支持向量。

而超平面H1H2的距離可知爲(注:線到線的距離公式求得):

  

 

SVM目標找到具有「最大間隔」的劃分超平面。即找到滿足(1)的約束條件的參數w,b,使得r最大。顯然,最大化間隔r,也就是最小化。於是可以構造如下的條件極值問題

                         2

這就是基本向量機的基本型

對於不等式約束的條件極值問題,可以用拉格朗日方法求解。拉格朗日方程的構造規則是:用約束方程乘以非負的拉格朗日系數,然後再從目標函數中減去。得到拉格朗日方程如下:

                                        3

其中:

                                                                  4

那麼處理的規劃問題就變爲:

                     5

上式纔是嚴格的不等式約束的拉格朗日條件極值的表達式。下面將詳細地一步步推導。

 5)式是一個凸優化問題,其意義是先對α求偏導,令其等於0消掉α,然後再對wbL的最小值。要直接求解(5)式是有難度的,通過消去拉格朗日系數來化簡方程,對我們的問題無濟於事。但可以通過拉格朗日對偶問題來解決,爲此我們把(5)式做一個等價變換,即爲對偶變換:

 

從而凸規劃問題轉換成了對偶問題:

                                  6

 

其意義是:原凸優化問題可以轉化爲先對wb求偏導,令其等於0消掉wb,然後再對α求L的最大值。下面求解(6)式,先計算wb的偏導數。由(3)式有:

                                                    7

 

Lwb上取到最小值,令(7)式的兩個偏導數分別爲0,得到:

                                                     8

 

將(8)代回(3)式,可得:

 

                            

                          

                                                                                                               9

 再把(9)代入(6)式有:

             10

考慮到(8)式,我們的對偶問題就變爲:

               11

上式這個規劃問題可以直接從數值方法計算求解

 

需要指出的一點是,(2)式的條件極值問題能夠轉化爲(5)式的凸規劃問題,其中隱含着一個約束,即:

 12

 

12)推理:如果(2)和(5)等效,則必有:

                           

 

 

3)式代入上式中,得到:

 

                         

 

化簡得到:

                                            13

 

又因爲約束(1)式和(4)式,有:

所以要使(13)式成立,只有令:,由此得到(12)式的約束。(12)式的約束的意義是:如果一個樣本是支持向量,則其對應的拉格朗日系數非零;如果一個樣本不是支持向量,則其對應的拉格朗日系數一定爲0。由此可知大多數拉格朗日系數都是0

其中,式(1)、(4)、(12)即KKT條件。

一旦我們從(11)式求解出所有拉格朗日系數,就可以通過(8)式的

計算得到最優分割面H的法向量w。而分割閾值b也可以通過(12)式的約束用支持向量計算出來。找到最優的H1H2,即訓練出的SVM

 

機器學習-周志華

http://blog.sina.com.cn/s/blog_4298002e010144k8.html