1. 程式人生 > >詳解SVM系列(二):拉格朗日對偶性

詳解SVM系列(二):拉格朗日對偶性

拉格朗日函式有什麼用?
在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉換為對偶問題,通過解對偶問題而得到原始問題的解。
原始問題:
假設 f ( x ) , C i

( x ) , h j ( x )
f(x),C_i(x),h_j(x) 是定義在 R n R^n 上的連續可微函式,考慮約束最優化問題:
m
i n f ( x ) x R n minf(x),x∈R^n

s . t . c i ( x ) 0 , i = 1 , 2 k s.t.c_i(x)≤0,i=1,2……k
h j ( x ) = 0 , j = 1 , 2 l h_j(x)=0,j=1,2……l
稱為約束最優化問題的原始問題。

現在如果不考慮約束條件,原始問題就是: m i n f ( x ) x R n minf(x),x∈R^n 因為 f ( x ) f(x) 是連續可微分的,對 f ( x ) f(x) 求導數,然後令 f ( x ) = 0 f'(x)=0 ,就可以求出最優解。

但是現在是有約束的,求解 f ( x ) = 0 f'(x)=0 的解有可能是不在定義域的,所以需要想辦法將有約束優化問題轉換為無約束最優化問題。

廣義的拉格朗日函式可以將有約束最優化轉換為無約束最優化問題。
廣義的拉格朗日函式:
L ( x , α , β ) = f ( x ) + i = 0 k α i c i ( x ) + j = 1 l β j h j ( x ) L(x,α,β)=f(x)+\displaystyle\sum_{i=0}^{k}α_ic_i(x)+\displaystyle\sum_{j=1}^{l}β_jh_j(x)
其中 x = ( x ( 1 ) x ( 2 ) x ( n ) ) , α i , β j x=(x^{(1)},x^{(2)},……x^{(n)}),α_i,β_j 是拉格朗日乘子,特別要求 α i 0 α_i≥0

考慮x的函式: θ p ( x ) = m a x L ( x , α , β ) , α , β α i 0 θ_p(x)=maxL(x,α,β),α,β且α_i≥0 ,p表示原始問題。

這個式子可以這樣理解:首先,把 L ( x , α , β ) L(x,α,β) 看做是α,β的函式,優化就是確定α,β的值使得 L ( x , α , β ) L(x,α,β) 取得最大值(此過程中把x看做常量),確定了α,β的值,就可以得到 L ( x , α , β ) L(x,α,β) 的最大值,因為α,β已經確定,顯然 θ p ( x ) = m a x L ( x , α , β ) θ_p(x)=maxL(x,α,β) 就只是和x有關的函式。

接下來看看 θ p ( x ) = m a x L ( x , α , β ) , α , β α i 0 θ_p(x)=maxL(x,α,β),α,β且α_i≥0 ,p表示原始問題。是不是與上面的原始問題等價?

假設給定的某個x,如果x違反原始問題的約束條件,即存在某個i使得 c i ( x ) > 0 c_i(x)>0 或者存在某個j使得 h j ( x ) 0 h_j(x)≠0 那麼就有:
θ p ( x ) = m a x L ( x , α , β ) = f ( x ) + i = 0 k α i c i ( x ) + j = 1 l β j h j ( x ) = + θ_p(x)=maxL(x,α,β)=f(x)+\displaystyle\sum_{i=0}^{k}α_ic_i(x)+\displaystyle\sum_{j=1}^{l}β_jh_j(x)=+∞