拉格朗日对偶性(Lagrance duality) 推导与简单理解
2018-01-24 16:34
281 查看
引言
在支持向量机和最大熵模型中都会用到拉格朗日对偶性,主要为解决约束最优化问题,通过将原始问题转换为对偶问题求解。为方便理解,遂记录下简单的概念的结论,有理解不当的地方望多提意见~1. 原始问题
先从最简单的求函数最小值开始说起:minx∈Rnf(x)
求f(x)的最小值时x的取值,f(x)在Rn上连续可微。这时候我们对f(x)求导令导数为0就能取到极值了。若此时加入约束如下:
minx∈Rnf(x)s.t.ci(x)≤0,i=1,2,⋯,khj(x)=0,j=1,2,⋯,l
其中f(x),ci(x),hj(x)在Rn上连续可微我们称此约束最优化为原始问题,也是拉格朗日对偶性需要解决的问题。
此时我们直接求导是无法解决了,要是可以将约束条件转换为未知变量或许就可以找到答案了。
2. 拉格朗日函数
为了求解原始问题,我们首先引入广义拉格朗日函数(generalized Lagrange function):L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
其中x=(x1,x2,⋯,xn)T∈Rn,αi和βj是拉格朗日乘子且αi≥0
拉格朗日函数虽然一眼看去十分复杂,但是其实它是将所有的限定条件加上新引入的变量(拉格朗日乘子)构成了一个新的函数,这样就将限定条件转换为了未知变量。
此时我们考虑 x 的函数:
θP(x)=maxα,β:αi≥0L(x,α,β)
下标P代表原始问题。
可以证明,如果 x满足原始问题中约束,那么θ(x)=f(x)如果 x不满足原始问题中的约束(ci(x)≤0;hj(x)=0),那么θ(x)=+∞,即:
θP(x)={f(x),+∞,x满足原始问题约束其他
证明:假设某个x不满足原始问题的约束条件,即存在某个i使得ci(x)>0或者存在某个j使得hj(x)=0那么就有:
θP(x)=maxα,β:αi≥0[f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)]=+∞
因为若某个i使约束ci(x)>0,则可令αi→+∞;
若某个j使hj(x)≠0,则可令βj使βjhj(x)→+∞,而将其余各αi,βj均取为 0
所以如果考虑极小化问题:
minxθP(x)=minxmaxα,β:αi≥0L(x,α,β)
就会发现它是与原始最优化问题等价的,即它们有相同的解。minxmaxα,β:αi≥0L(x,α,β)称为广义拉格朗日函数的极小极大问题。这样一来,就把原始最优化问题表示为广义拉格朗日函数的极小极大问题。我们定义原始问题最优解:
p∗=minxθP(x)
总结一下原始问题和拉格朗日函数:从原始问题开始,通过拉格朗日函数重新定义一个无约束问题,这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化。也就是将d个变量和k个约束条件的最优化问题转换为d+k个变量的最优化问题。到此我们还是无法求解,我们需要将原始问题转换成对偶问题来求解。
3. 对偶问题
我们再定义:θD(α,β)=minxL(x,α,β)
并极大化θD,即:
maxα,βθD(α,β)=maxα,βminxL(x,α,β)
maxα,βminxL(x,α,β)为广义拉格朗日函数的极大极小问题(上一节的是极小极大问题)。这样可以将广义拉格朗日函数的极大极小问题进一步表示为约束最优化问题:
maxα,βθD(α,β)=maxα,βminxL(x,α,β) s.t.αi≥0,i=1,2,⋯,k
我们将上面的问题称为原始问题的对偶问题。定义对偶问题的最优值
d∗=maxα,βθD(α,β)
对比原始问题,对偶问题是先固定α,β,求最优化x的解,在确定参数α,β;
原始问题是先固定x,求最优化α,β的解,再确定x。
4. 原始问题和对偶问题的关系
若原始问题和对偶问题都有最优值,那么d∗=maxα,βminxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗
证明:
对任意的x,α,β有
minxL(x,α,β)≤L(x,α,β)≤maxα,β:αi≥0L(x,α,β)
由于原始问题和对偶问题均有最优值,所以:
minxL(x,α,β)≤maxα,β:αi≥0L(x,α,β)
即
d∗=maxα,βminxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗
也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等,于是可以得出下面的推论:
设x∗和α∗,β∗分别是原始问题和对偶问题的可行解并且d∗=p∗则x∗和α∗,β∗分别是原始问题和对偶问题的最优解。
对偶问题跟原始问题可以看成本来是两个问题,因为优化的顺序不同而会得出两个不一定相关的值(但是 minxmaxyf(x,y)≥maxymaxxf(x,y) 还是成立的,直观理解的话高中经常用的二次函数就可以了)。
两者的差值就是duality gap,描述了我用另一种方式刻画问题的时候所造成的误差,强对偶的情况下最优值没有差别。
在最优点处将会满足KKT 条件,但是KKT条件本身并不需要问题满足强对偶。关于KKT条件什么时候不满足,有一种另外的理解是他要求各个函数的梯度张成足够大的空间(因为KKT的最后一条本质上是一个Ax=0的问题)。
所以,当原始问题和对偶问题的最优值相等:d∗=p∗时,可以用求解对偶问题来求解原始问题(当然是对偶问题求解比直接求解原始问题简单的情况下),但是到底满足什么样的条件才能使d∗=p∗呢,这就是下面要阐述的 KKT 条件。
5. KTT条件
对原始问题和对偶问题,假设函数f(x)和ci(x)是凸函数,hj(x)为仿射函数,并且不等式约束 ci(x)是严格可行的,则x∗和α∗,β∗分别是原始问题和对偶问题的解的充要条件是x∗,α∗,β∗满足下面的Karush-Kuhn-Tucker(KKT)条件:∇xL(x∗,α∗,β∗)=0
∇αL(x∗,α∗,β∗)=0
∇βL(x∗,α∗,β∗)=0
α∗ici(x∗)=0,i=1,2,⋯,k
ci(x∗)≤0,i=1,2,⋯,k
α∗i≥0,i=1,2,⋯,k
hj(x∗)=0,j=1,2,⋯,l
关于KKT 条件的理解:前面三个条件是对于各个变量的偏导数为0(这就解释了一开始为什么假设三个函数连续可微,如果不连续可微的话,这里的偏导数存不存在就不能保证),后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束。
仿射函数
f(x)=Ax+b
仿射函数就是一个线性函数,其输入是n维向量,参数 A可以是常数,也可以是m×n的矩阵,b可以是常数,也可以是m维的列向量,输出是一个m维的列向量。在几何上,仿射函数是一个线性空间到另一个线性空间的变换。
6. 总结
拉格朗日对偶性的求解分为两个步骤:把原始的约束问题通过拉格朗日函数转化为无约束问题。
在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易。
参考文献
李航,统计学习方法周志华,机器学习(西瓜书)
https://www.cnblogs.com/90zeng/p/Lagrange_duality.html
https://www.zhihu.com/question/58584814
https://zhuanlan.zhihu.com/p/26514613
相关文章推荐
- 关于拉格朗日对偶问题中对偶性的理解
- 关于拉格朗日对偶问题中对偶性的理解
- 关于拉格朗日对偶问题中对偶性的理解
- 由语法推导树理解确定短语、直接短语(简单短语)、句柄
- 拉格朗日对偶问题中对偶性的理解
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- 拉格朗日对偶(Lagrange duality)
- 比较简单和理解的下拉框联动实现
- 简单十步让你全面理解SQL
- 对Jena的简单理解和一个例子
- C#基础:对委托的简单理解
- C#基础:对委托的简单理解
- Java NIO 的简单读写 以及理解
- RunLoop的简单理解笔记
- Hadoop-- MapReduce简单理解
- Generative Adversarial Networks 生成对抗网络的简单理解
- 简单一点理解推挽输出与开漏输出(转)
- 简单的理解下有效地址的概念
- 【机器学习】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- Http协议与TCP协议简单理解后续