详解SVM系列(二):拉格朗日对偶性

拉格朗日函数有什么用?
在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转换为对偶问题,通过解对偶问题而得到原始问题的解。
原始问题:
假设 f ( x ) , C i ( x ) , h j ( x ) f(x),C_i(x),h_j(x) f(x),Ci(x),hj(x)是定义在 R n R^n Rn上的连续可微函数,考虑约束最优化问题:
m i n f ( x ) , x ∈ R n minf(x),x∈R^n minf(x)xRn
s . t . c i ( x ) ≤ 0 , i = 1 , 2 … … k s.t.c_i(x)≤0,i=1,2……k s.t.ci(x)0,i=1,2k
h j ( x ) = 0 , j = 1 , 2 … … l h_j(x)=0,j=1,2……l hj(x)=0,j=1,2l
称为约束最优化问题的原始问题。

现在如果不考虑约束条件,原始问题就是: m i n f ( x ) , x ∈ R n minf(x),x∈R^n minf(x)xRn因为 f ( x ) f(x) f(x)是连续可微分的,对 f ( x ) f(x) f(x)求导数,然后令 f ′ ( x ) = 0 f'(x)=0 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) L(x,α,β)=f(x)+i=0kαici(x)+j=1lβjhj(x)
其中 x = ( x ( 1 ) , x ( 2 ) , … … x ( n ) ) , α i , β j x=(x^{(1)},x^{(2)},……x^{(n)}),α_i,β_j x=(x(1)x(2)x(n)),αi,βj是拉格朗日乘子,特别要求 α i ≥ 0 α_i≥0 αi0

考虑x的函数: θ p ( x ) = m a x L ( x , α , β ) , α , β 且 α i ≥ 0 θ_p(x)=maxL(x,α,β),α,β且α_i≥0 θp(x)=maxL(x,α,β),α,βαi0,p表示原始问题。

这个式子可以这样理解:首先,把 L ( x , α , β ) L(x,α,β) L(x,α,β)看做是α,β的函数,优化就是确定α,β的值使得 L ( x , α , β ) L(x,α,β) L(x,α,β)取得最大值(此过程中把x看做常量),确定了α,β的值,就可以得到 L ( x , α , β ) L(x,α,β) L(x,α,β)的最大值,因为α,β已经确定,显然 θ p ( x ) = m a x L ( x , α , β ) θ_p(x)=maxL(x,α,β) θp(x)=maxL(x,α,β)就只是和x有关的函数。

接下来看看 θ p ( x ) = m a x L ( x , α , β ) , α , β 且 α i ≥ 0 θ_p(x)=maxL(x,α,β),α,β且α_i≥0 θp(x)=maxL(x,α,β),α,βαi0,p表示原始问题。是不是与上面的原始问题等价?

假设给定的某个x,如果x违反原始问题的约束条件,即存在某个i使得 c i ( x ) > 0 c_i(x)>0 ci(x)>0或者存在某个j使得 h j ( x ) ≠ 0 h_j(x)≠0 hj(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)=+∞ θp(x)=maxL(x,α,β)=f(x)+i=0kαici(x)+j=1lβjhj(x)=+
因为若某个i使得约束 c i ( x ) > 0 c_i(x)>0 ci(x)>0,则可令 α i → + ∞ α_i→+∞ αi+,若某个j使得 h j ( x ) ≠ 0 h_j(x)≠0 hj(x)̸=0,则可令 β j β_j βj使得
β j h j ( x ) = + ∞ β_jh_j(x)=+∞ βjhj(x)=+,而将其他各 α i β j α_iβ_j αiβj均取为0

相反的,如果x满足约束条件,则易知
θ p ( x ) = m a x L ( x , α , β ) = f ( x ) + ∑ i = 0 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) = f ( x ) θ_p(x)=maxL(x,α,β)=f(x)+\displaystyle\sum_{i=0}^{k}α_ic_i(x)+\displaystyle\sum_{j=1}^{l}β_jh_j(x)=f(x) θp(x)=maxL(x,α,β)=f(x)+i=0kαici(x)+j=1lβjhj(x)=f(x)

综合以上两点分析可知:

θ p ( x ) = f ( x ) . 当 x 满 足 原 始 问 题 约 束 θ_p(x)=f(x).当x满足原始问题约束 θp(x)=f(x).x
θ p ( x ) = + ∞ , 其 他 情 况 θ_p(x)=+∞,其他情况 θp(x)=+,

所以考虑极小化问题:
m i n θ p ( x ) = m i n m a x L ( x , α , β ) minθ_p(x)=minmaxL(x,α,β) minθp(x)=minmaxL(x,α,β)(式1)

它与原始最优化问题式等价的,即他们有相同的解.式1称为广义拉格朗提函数的极小极大问题。
这样,就把原始最优化问题表示为广义拉格朗日函数的极小极大问题,为了方便,定义原始问题的最优解为 p ∗ = m i n θ p ( x ) p^*=minθ_p(x) p=minθp(x)

引入广义拉格朗日函数就是为了将有约束优化问题转换为无约束优化问题。

对偶性有什么用?

介绍完了拉格朗日函数以后,接着了解下对偶性以及它的作用

定义关于α,β的函数: θ D ( α , β ) = m i n L ( x , α , β ) θ_D(α,β)=minL(x,α,β) θD(α,β)=minL(x,α,β)
注意等式右边是关于x的函数的最小化,确定x以后,最小值只与α,β有关,所以这是一个关于α,β的函数。

考虑极大化 θ D ( α , β ) = m i n L ( x , α , β ) θ_D(α,β)=minL(x,α,β) θD(α,β)=minL(x,α,β)即:
m a x θ D ( α , β ) = m a x m i n L ( x , α , β ) maxθ_D(α,β)=maxminL(x,α,β) maxθD(α,β)=maxminL(x,α,β)(式2)
式2是广义拉格朗日函数的极大极小问题。与式1进行比较
m i n θ p ( x ) = m i n m a x L ( x , α , β ) minθ_p(x)=minmaxL(x,α,β) minθp(x)=minmaxL(x,α,β)(式1)

形式上可以看出非常对称,只不过原始问题先固定 L ( x , α , β ) L(x,α,β) L(x,α,β)中的x,优化出参数α,β,再优化x,而对偶问题式先固定α,β,优化出最优的x,然后再确定参数α,β

定义对偶问题的最优解 d ∗ = m a x θ D ( α , β ) d^*=maxθ_D(α,β) d=maxθD(α,β)

原始问题与对偶问题的关系

若原始问题和对偶问题都有最优值,则
d ∗ = m a x θ D ( α , β ) = m a x m i n L ( x , α , β ) ≤ m i n m a x L ( x , α , β ) = p ∗ d^*=maxθ_D(α,β)=maxminL(x,α,β)≤minmaxL(x,α,β)=p^* d=maxθD(α,β)=maxminL(x,α,β)minmaxL(x,α,β)=p

因为: θ D ( α , β ) = m i n L ( x , α , β ) ≤ L ( x , α , β ) ≤ m a x L ( x , α , β ) = θ p ( x ) θ_D(α,β)=minL(x,α,β)≤L(x,α,β)≤maxL(x,α,β)=θ_p(x) θD(α,β)=minL(x,α,β)L(x,α,β)maxL(x,α,β)=θp(x)

θ D ( α , β ) ≤ θ p ( x ) θ_D(α,β)≤θ_p(x) θD(α,β)θp(x)
因为原始问题与对偶问题都有最优解,所以
m a x θ D ( α , β ) ≤ m i n θ p ( x ) maxθ_D(α,β)≤minθ_p(x) maxθD(α,β)minθp(x)
d ∗ = m a x θ D ( α , β ) = m a x m i n L ( x , α , β ) ≤ m i n m a x L ( x , α , β ) = p ∗ d^*=maxθ_D(α,β)=maxminL(x,α,β)≤minmaxL(x,α,β)=p^* d=maxθD(α,β)=maxminL(x,α,β)minmaxL(x,α,β)=p

也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等

在某些条件下,原始问题和对偶问题的最优值相等,即 d ∗ = p ∗ d^*=p^* d=p,这时可以用解对偶问题代替求解原始问题。

但是到底满足什么样的条件才能使得 d ∗ = p ∗ d^*=p^* d=p呢,这就需要下面的KKT条件。

KKT条件

定理:对于原始问题和对偶问题,假设函数 f ( x ) 和 c i ( x ) 是 凸 函 数 , h i ( x ) 是 仿 射 函 数 f(x)和c_i(x)是凸函数,h_i(x)是仿射函数 f(x)ci(x)hi(x)仿,并且假设不等式约束 c i ( x ) c_i(x) ci(x)是严格可行的,即存在x,对所有的i有 c i ( x ) < 0 c_i(x)<0 ci(x)<0,则 x ∗ 和 α ∗ , β ∗ x^*和α^*,β^* xα,β分别是原始问题和对偶问题的最优解的充分必要条件是:
x ∗ 和 α ∗ , β ∗ x^*和α^*,β^* xα,β满足下面的KKT条件:
详解SVM系列(二):拉格朗日对偶性_第1张图片

你可能感兴趣的:(机器学习)