拉格朗日对偶问题与KKT条件
2017-03-01 15:08
369 查看
本篇是写在SVM之前的关于优化问题的一点知识,在SVM中会用到。考虑到SVM之复杂,将其中优化方面基础知识提出,单作此篇。所以,本文也不会涉及优化问题的许多深层问题,只是个人知识范围内所了解的SVM中涉及到的优化问题基础。
对于一个含约束的优化问题:
{minxf(x)s.t.x∈C
其中,f(x)
为一个凸函数,变量x
的可行域C
是一个凸集,那么这个优化问题称为一个凸优化问题。
将上面的约束条件的形式更加明确一点,一个凸优化问题可以写成:
⎧⎩⎨⎪⎪minxf(x)s.t.gi(x)≤0hi(x)=0
其中,f(x)
当然仍然为一个凸函数,但对约束条件有一定要求:gi(x)
是凸函数;hi(x)
为仿射函数。这样的要求当然是为了保证可行域是一个凸集。
不等式约束中gi(x)
为凸函数,而凸函数的水平截集{x|gi(x)≤α}
是一个凸集(凸函数的性质),这就使得不等式约束保证了可行域为凸集;
对于等式约束hi(x)=0
可以写成:
{hi(x)≤0hi(x)≥0
要使得满足条件的x
组成的集合为凸集,就要求hi(x)
既是一个凸函数,又是一个凹函数,这样hi(x)
便只能是仿射函数了。
以上便是凸优化问题的一般形式。常见的线性规划、二次规划、二次约束二次规划等优化问题都是凸优化问题。
一般的优化问题可以写成以下形式:
⎧⎩⎨⎪⎪minxf(x)s.t.gi(x)≤0hi(x)=0
当然,这里对f(x)
、gi(x)、hi(x)
都是没有要求的。
根据拉格朗日方法,对应的拉格朗日函数为:
L(x,α,β)=f(x)+∑iαigi(x)+∑iβihi(x)
其中α
、β为拉格朗日乘数(都是向量,其长度分别对应于不等式约束和等式约束的个数),且αi≥0、β
任意。
定义函数:
θP(x)=maxα,β:αi≥0L(x,α,β)
容易发现:
θP(x)={f(x)+∞gi(x)≤0&hi(x)=0gi(x)>0||hi(x)≠0
如果原来的约束条件都满足那么L(x,α,β)=f(x)+∑iαigi(x)+∑iβihi(x)
,最后一项为零,第二项要取得最大值,由于gi(x)≤0,所以只能取α=0⃗
,使其取得最大值0,这样
θP(x)=maxα,β:αi≥0L(x,α,β)=f(x)
如果违背了原来的约束条件,比如存在某一个约束gi(x)>0
,那么可以取αi
任意大,这样θP(x)=+∞。违反等式约束hi(x)=0
的情况是类似的。
所以可以认为θP(x)
是对原理优化问题中的约束条件进行了吸收,是原来的约束优化问题变为无约束优化问题(相对于原来变量x
无约束了),即原来的优化问题可以写成:
minxθP(x)=minxmaxα,β:αi≥0L(x,α,β)(1)
现在,称(1)为原问题,这和最初的有约束问题是等价的。
将(1)中min和max交换顺序得到对偶问题:
maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minxL(x,α,β)(2)
其中
θD(α,β)=minxL(x,α,β)
记p∗
为原问题的最优解,对应最优解的最优变量取值为x∗,则p∗=f(x∗)
;
记d∗
为对偶问题的最优解,对应最优解的最优变量取值为α∗、β∗,则d∗=θD(α∗,β∗)
。
下面来说明d∗≤p∗
。
对于任意α,β
(α≥0
):
θD(α,β)=minxL(x,α,β)≤L(x∗,α,β)=f(x∗)+∑iαigi(x∗)+∑iβihi(x∗)≤f(x∗)=p∗
第一个不等号成立是显然的,这是由minxL(x,α,β)
的定义直接得到的;第二个不等号成立是因为x∗
是一个可行解,所以约束条件gi(x)≤0
和hi(x)=0
都满足,所以∑iαigi(x∗)≤0
、∑iβihi(x∗)=0
。
由于以上推导过程中α
、β的任意性,所以d∗=θD(α∗,β∗)≤p∗
,所以求解对偶问题是在最大化原问题最优解的下界。
通常,对偶问题相对于原问题有比较好的形式(有看到“无论原问题形式如何,对偶问题都是一个凸优化问题”的说法,但没见过证明。),这样,当原问题不好求解时,可以转而求解对偶问题。问题是一般情况下有d∗≤p∗
,所以求解对偶问题只能得到原问题解的下界,不能保证d∗=p∗
。
当原问题满足一些条件时,可以保证d∗=p∗
。
Slater条件:存在x
,使得不等式约束gi(x)≤0严格成立,即gi(x)<0
。
当原问题为一凸优化问题,且满足Slater条件时,有d∗=p∗
,这样就原问题和对偶问题的解一致,求解对偶问题即可。显然,Slater是凸优化问题与其对偶问题等价的一个充分条件。
KKT条件是原问题与对偶问题等价的必要条件。考虑一般优化问题(不一定是凸优化),如果有d∗=p∗
,则:
d∗=θD(α∗,β∗)=minxL(x,α∗,β∗)≤L(x∗,α∗,β∗)=f(x∗)+∑iαi∗gi(x∗)+∑iβi∗hi(x∗)≤f(x∗)=p∗
由于d∗=p∗
,所以上面推导过程中所以的不等号“≤
”应该取到等号。第一个等号得到minxL(x,α∗,β∗)=L(x∗,α∗,β∗),这说明x∗
是L(x,α∗,β∗)的一个极值点,所以L(x,α∗,β∗)在x∗
处的偏导为零,∂L(x,α∗,β∗)∂x|x∗=0
;第二个等号得到f(x∗)+∑iαi∗gi(x∗)+∑iβi∗hi(x∗)=f(x∗),所以∑iβi∗hi(x∗)=0、∑iαi∗gi(x∗)=0。∑iβi∗hi(x∗)=0是显然的,因为根据约束条件本来就有hi(x∗)=0,重点是原本的∑iαi∗gi(x∗)≤0
现在取到了等号。
综合以上两点,在加上原来的约束,可以得到KKT条件:
⎧⎩⎨⎪⎪⎪⎪⎪⎪∂L(x,α∗,β∗)∂x|x∗=0∑iαi∗gi(x∗)=0αi∗≥0gi(x∗)≤0hi(x∗)=0
KKT条件是d∗=p∗
的必要条件,给出了当原问题和对偶问题等价时对应最优值点所满足的性质。
尽管KKT条件是d∗=p∗
的必要条件,但当原问题是凸优化问题时,它就升级为充要条件,也就是只要找到x∗,α∗,β∗
满足以上五个条件,那么原问题就和对偶问题就有相同的解,分别在x∗和(α∗,β∗)
处取得。
另外,根据KKT条件中的∑iαi∗gi(x∗)=0
可以得到,gi(x∗)<0⇒αi∗=0,反过来说,只有gi(x∗)=0,αi∗才有可能不为0,这是SVM中用到的一个重要性质。
一、凸优化问题
在优化问题中,凸优化问题由于具有优良的性质(局部最优解即是全局最优解),受到广泛研究。对于一个含约束的优化问题:
{minxf(x)s.t.x∈C
其中,f(x)
为一个凸函数,变量x
的可行域C
是一个凸集,那么这个优化问题称为一个凸优化问题。
将上面的约束条件的形式更加明确一点,一个凸优化问题可以写成:
⎧⎩⎨⎪⎪minxf(x)s.t.gi(x)≤0hi(x)=0
其中,f(x)
当然仍然为一个凸函数,但对约束条件有一定要求:gi(x)
是凸函数;hi(x)
为仿射函数。这样的要求当然是为了保证可行域是一个凸集。
不等式约束中gi(x)
为凸函数,而凸函数的水平截集{x|gi(x)≤α}
是一个凸集(凸函数的性质),这就使得不等式约束保证了可行域为凸集;
对于等式约束hi(x)=0
可以写成:
{hi(x)≤0hi(x)≥0
要使得满足条件的x
组成的集合为凸集,就要求hi(x)
既是一个凸函数,又是一个凹函数,这样hi(x)
便只能是仿射函数了。
以上便是凸优化问题的一般形式。常见的线性规划、二次规划、二次约束二次规划等优化问题都是凸优化问题。
二、拉格朗日对偶
抛开凸优化问题,回到一般的优化问题。一般的优化问题可以写成以下形式:
⎧⎩⎨⎪⎪minxf(x)s.t.gi(x)≤0hi(x)=0
当然,这里对f(x)
、gi(x)、hi(x)
都是没有要求的。
根据拉格朗日方法,对应的拉格朗日函数为:
L(x,α,β)=f(x)+∑iαigi(x)+∑iβihi(x)
其中α
、β为拉格朗日乘数(都是向量,其长度分别对应于不等式约束和等式约束的个数),且αi≥0、β
任意。
定义函数:
θP(x)=maxα,β:αi≥0L(x,α,β)
容易发现:
θP(x)={f(x)+∞gi(x)≤0&hi(x)=0gi(x)>0||hi(x)≠0
如果原来的约束条件都满足那么L(x,α,β)=f(x)+∑iαigi(x)+∑iβihi(x)
,最后一项为零,第二项要取得最大值,由于gi(x)≤0,所以只能取α=0⃗
,使其取得最大值0,这样
θP(x)=maxα,β:αi≥0L(x,α,β)=f(x)
如果违背了原来的约束条件,比如存在某一个约束gi(x)>0
,那么可以取αi
任意大,这样θP(x)=+∞。违反等式约束hi(x)=0
的情况是类似的。
所以可以认为θP(x)
是对原理优化问题中的约束条件进行了吸收,是原来的约束优化问题变为无约束优化问题(相对于原来变量x
无约束了),即原来的优化问题可以写成:
minxθP(x)=minxmaxα,β:αi≥0L(x,α,β)(1)
现在,称(1)为原问题,这和最初的有约束问题是等价的。
将(1)中min和max交换顺序得到对偶问题:
maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minxL(x,α,β)(2)
其中
θD(α,β)=minxL(x,α,β)
记p∗
为原问题的最优解,对应最优解的最优变量取值为x∗,则p∗=f(x∗)
;
记d∗
为对偶问题的最优解,对应最优解的最优变量取值为α∗、β∗,则d∗=θD(α∗,β∗)
。
下面来说明d∗≤p∗
。
对于任意α,β
(α≥0
):
θD(α,β)=minxL(x,α,β)≤L(x∗,α,β)=f(x∗)+∑iαigi(x∗)+∑iβihi(x∗)≤f(x∗)=p∗
第一个不等号成立是显然的,这是由minxL(x,α,β)
的定义直接得到的;第二个不等号成立是因为x∗
是一个可行解,所以约束条件gi(x)≤0
和hi(x)=0
都满足,所以∑iαigi(x∗)≤0
、∑iβihi(x∗)=0
。
由于以上推导过程中α
、β的任意性,所以d∗=θD(α∗,β∗)≤p∗
,所以求解对偶问题是在最大化原问题最优解的下界。
通常,对偶问题相对于原问题有比较好的形式(有看到“无论原问题形式如何,对偶问题都是一个凸优化问题”的说法,但没见过证明。),这样,当原问题不好求解时,可以转而求解对偶问题。问题是一般情况下有d∗≤p∗
,所以求解对偶问题只能得到原问题解的下界,不能保证d∗=p∗
。
当原问题满足一些条件时,可以保证d∗=p∗
。
Slater条件:存在x
,使得不等式约束gi(x)≤0严格成立,即gi(x)<0
。
当原问题为一凸优化问题,且满足Slater条件时,有d∗=p∗
,这样就原问题和对偶问题的解一致,求解对偶问题即可。显然,Slater是凸优化问题与其对偶问题等价的一个充分条件。
KKT条件是原问题与对偶问题等价的必要条件。考虑一般优化问题(不一定是凸优化),如果有d∗=p∗
,则:
d∗=θD(α∗,β∗)=minxL(x,α∗,β∗)≤L(x∗,α∗,β∗)=f(x∗)+∑iαi∗gi(x∗)+∑iβi∗hi(x∗)≤f(x∗)=p∗
由于d∗=p∗
,所以上面推导过程中所以的不等号“≤
”应该取到等号。第一个等号得到minxL(x,α∗,β∗)=L(x∗,α∗,β∗),这说明x∗
是L(x,α∗,β∗)的一个极值点,所以L(x,α∗,β∗)在x∗
处的偏导为零,∂L(x,α∗,β∗)∂x|x∗=0
;第二个等号得到f(x∗)+∑iαi∗gi(x∗)+∑iβi∗hi(x∗)=f(x∗),所以∑iβi∗hi(x∗)=0、∑iαi∗gi(x∗)=0。∑iβi∗hi(x∗)=0是显然的,因为根据约束条件本来就有hi(x∗)=0,重点是原本的∑iαi∗gi(x∗)≤0
现在取到了等号。
综合以上两点,在加上原来的约束,可以得到KKT条件:
⎧⎩⎨⎪⎪⎪⎪⎪⎪∂L(x,α∗,β∗)∂x|x∗=0∑iαi∗gi(x∗)=0αi∗≥0gi(x∗)≤0hi(x∗)=0
KKT条件是d∗=p∗
的必要条件,给出了当原问题和对偶问题等价时对应最优值点所满足的性质。
尽管KKT条件是d∗=p∗
的必要条件,但当原问题是凸优化问题时,它就升级为充要条件,也就是只要找到x∗,α∗,β∗
满足以上五个条件,那么原问题就和对偶问题就有相同的解,分别在x∗和(α∗,β∗)
处取得。
另外,根据KKT条件中的∑iαi∗gi(x∗)=0
可以得到,gi(x∗)<0⇒αi∗=0,反过来说,只有gi(x∗)=0,αi∗才有可能不为0,这是SVM中用到的一个重要性质。
相关文章推荐
- SVM的kkt条件和对偶问题。
- SVM中的对偶问题、KKT条件以及对拉格朗日乘子求值得SMO算法
- 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
- 从对偶问题到KKT条件
- 拉格朗日对偶和KKT条件(Karush-Kuhn-Tucker)
- 人工智能里的数学修炼 | 约束问题的优化求解:拉格朗日乘子法、KKT条件与对偶问题
- ML—拉格朗日对偶和KKT条件
- 关于拉格朗日对偶问题中对偶性的理解
- 关于拉格朗日对偶问题中对偶性的理解
- 拉格朗日对偶问题
- 拉格朗日对偶问题
- KKT条件--约束问题最优化方法
- SVM(二)拉格朗日对偶问题
- 带约束优化问题 拉格朗日 对偶问题 KKT条件
- SVM中对偶、凸优化与KTT条件问题
- 拉格朗日对偶问题中对偶性的理解
- SVM(二)拉格朗日对偶问题
- 优化问题与KKT条件
- SVM(二)拉格朗日对偶问题
- 拉格朗日对偶问题-支持向量机