1. 程式人生 > >SVM從入門到精通(三)

SVM從入門到精通(三)

前面,對於線性可分的資料,我們採用硬間隔最大化的策略,來訓練線性可分支援向量機。回憶一下,之前的最優化問題的表示為:

min
ω , b 1 2 ω 2 s .
t . y i ( ω x i + b ) 1
0 , i = 1 , 2 , , N
我們可以將其稱為原始問題。通過拉格朗日對偶性,通過求解對偶問題(dual problem)來得到原始問題(primal problem)的最優解。這就是線性可分支援向量機的對偶演算法。
引入對偶問題的主要目的就是讓問題更容易求解。還有一點就是自然引入核函式,從而將SVM推廣到非線性分類問題中。

拉格朗日函式

原始問題

我們說利用拉格朗日對偶性去簡化問題,那拉格朗日對偶性是啥呢?(大學微積分裡好像學過···) 接下來進行簡單介紹。
首先,拉格朗日對偶性主要是用來求解約束最優化問題的。那問題的表現形式是什麼呢?也就是原始問題:假設 f ( x ) , c i ( x ) , h j ( x ) 是定義在 R n 上的連續可微函式,考慮約束最優化問題:

min x R n f ( x ) ( 1 ) s . t . c i ( x ) 0 , h j ( x ) = 0 ( 2 )
那麼拉格朗日對偶性怎麼用到這個問題上呢?
首先,我們引入拉格朗日函式 L ( x , α , β ) = f ( x ) + i = 1 k α i c i ( x ) + j = 1 l β j h j ( x ) 這裡 α i , β j 就是拉格朗日乘子, α i 0 .
由上面的(2)式,我們知道 h j ( x ) 是都為0的,所以和也應該是0的; c i ( x ) 0 ,而它的拉格朗日系數 α i 優勢大於等於0的,所以二者的乘積和是小於等於0的。我們的優化目的是使 f ( x ) 最小,那麼三者相加,也就是我們的拉格朗日函式L = 待求最小+非正數+0,如果f(x)最小的話,那麼就需要拉格朗日函式 L ( x , α , β ) 最大,並且最大為f(x)。也就是,我們的原始問題可以變成以下的描述形式: θ p ( x ) = max α , β ; α i 0 L ( x , α , β ) 這裡的下標p表示primal,原始問題。
我們假設,給定某個x違反了原始問題的約束條件,那麼 θ p ( x ) = max α , β ; α i 0 [ f ( x ) + i = 1 k α i c i ( x ) + j = 1 l β j h j ( x ) ] = + ,相反的,如果x滿足條件,就會像剛才我們分析的那樣, θ p ( x ) = f ( x ) .所以,