假設一堆訓練數據的正負樣本標記爲
假設有一個超平面H: ,可以通過此線性方程劃分,同時存在兩個平行於H的超平面H1和H2:
超平面H能夠正確分類,也就是滿足如下約束:
即:
(1)
離H最近的正負樣本剛好分別落在H1和H2上使等號成立,它們就是支持向量。
而超平面H1和H2的距離可知爲(注:線到線的距離公式求得):
SVM目標找到具有「最大間隔」的劃分超平面。即找到滿足(1)的約束條件的參數w,b,使得r最大。顯然,最大化間隔r,也就是最小化。於是可以構造如下的條件極值問題:
(2)
這就是基本向量機的基本型。
對於不等式約束的條件極值問題,可以用拉格朗日方法求解。拉格朗日方程的構造規則是:用約束方程乘以非負的拉格朗日系數,然後再從目標函數中減去。得到拉格朗日方程如下:
(3)
其中:
(4)
那麼處理的規劃問題就變爲:
(5)
上式纔是嚴格的不等式約束的拉格朗日條件極值的表達式。下面將詳細地一步步推導。
(5)式是一個凸優化問題,其意義是先對α求偏導,令其等於0消掉α,然後再對w和b求L的最小值。要直接求解(5)式是有難度的,通過消去拉格朗日系數來化簡方程,對我們的問題無濟於事。但可以通過拉格朗日對偶問題來解決,爲此我們把(5)式做一個等價變換,即爲對偶變換:
從而凸規劃問題轉換成了對偶問題:
(6)
其意義是:原凸優化問題可以轉化爲先對w和b求偏導,令其等於0消掉w和b,然後再對α求L的最大值。下面求解(6)式,先計算w和b的偏導數。由(3)式有:
(7)
讓L在w和b上取到最小值,令(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)式的約束用支持向量計算出來。找到最優的H1和H2,即訓練出的SVM。
機器學習-周志華