作者:桂。
时间:2017-03-27 20:26:17
链接:http://www.cnblogs.com/xingshansi/p/6628785.html
声明:欢迎被转载,不过记得注明出处哦~
【读书笔记06】
前言
看到西蒙.赫金的《自适应滤波器原理》第四版第四章:最速下降算法。最速下降法、拟牛顿法等都是求解准则函数(即无约束优化问题)的算法,这就需要有一个前提:怎样得到无约束准则函数?联想到之前看维纳滤波:无约束维纳滤波、约束维纳滤波,提到了拉格朗日乘子,将有限制条件的优化问题转化为无限制的优化问题,可见拉格朗日乘子搭建了一个桥梁:将有限制的准则函数,转化为无限制准则函数,进而借助最速下降法、拟牛顿法等求参算法进行求解,在这里汇总一下拉格朗日乘子法是有必要的,全文包括:
1)含有等式约束的拉格朗日乘子法;
2)拉格朗日对偶方法;
内容为自己的学习记录,其中多有参考他人,最后一并给出链接。
一、含有等式约束拉格朗日乘子法
对于含有约束的优化问题,可以在约束域内对准则函数搜索最优解,但如果约束较为复杂搜索起来显然不那么容易,如果借助某种方式将约束问题转化为无约束问题,求解则更为方便一些,这也是拉格朗日乘子法的魅力所在。本段内容为维纳滤波一文的开头部分。
A-只含一个等式约束的最优化
实函数f(w)f(w)是参数向量ww的二次函数,约束条件是:
wHs=gwHs=g
其中ss是已知向量,gg是复常数。例如在波束形成应用中ww表示各传感器输出的一组复数权值,ss是一个旋转向量。假设该问题是一个最小化问题,令c(w)=wHs−g=0+j0c(w)=wHs−g=0+j0可以描述为:
所谓拉格朗日乘子法,就是引入拉格朗日乘子:将上述约束最小化问题转化为无约束问题,定义一个新的实函数:
h(w)=f(w)+λ1Re[c(w)]+λ2Im[c(w)]h(w)=f(w)+λ1Re[c(w)]+λ2Im[c(w)]
现在定义一个复拉格朗日乘子:
λ=λ1+λ2λ=λ1+λ2
h(w)h(w)改写为:
h(w)=f(w)+Re[λ∗c(w)]h(w)=f(w)+Re[λ∗c(w)]
至此,无约束优化问题转化完成,利用偏导求参即可,其实这是一个简化的形式,分别求解λ1λ1、λ2λ2也是一样的。
B-包含多个等式约束的最优化
实函数f(w)f(w)是参数向量ww的二次函数,约束条件是:
wHsk=gkwHsk=gk
其中k=1,2...Kk=1,2...K,方法同单个约束情况相同,求解伴随方程:
∂f∂w∗+∑k=1K∂∂w∗(Re[λ∗kck(w)])=0∂f∂w∗+∑k=1K∂∂w∗(Re[λk∗ck(w)])=0
此时与多个等式约束联合成方程组,这个方程组定义了ww和拉格朗日乘子λ1λ1、λ2λ2...λKλK的解。
如果含有不等式约束,或者说既有等式约束、又有不等式约束呢?
二、拉格朗日对偶问题(Lagrange duality)
A-原始问题
给出约束优化问题模型:
其中hi(x)=0,i=1,...qhi(x)=0,i=1,...q也可写成矩阵形式:Ax=bAx=b.该模型为原始问题。
该模型利用拉格朗日乘子可以松弛为无约束优化问题:
minL(x,λ,v)=f0(x)+∑i=1mλifi(x)+∑i=1qvihi(x)minL(x,λ,v)=f0(x)+∑i=1mλifi(x)+∑i=1qvihi(x)
该模型为对偶问题。约束λi≥0λi≥0,则∑i=1mλifi(x)≤0∑i=1mλifi(x)≤0,即:
L(x,λ,v)≤f0(x)L(x,λ,v)≤f0(x)
为了逼近f0(x)f0(x),首先针对λ,vλ,v对其最大化:
但由于该问题只是对λ,vλ,v的约束,无法避免违反约束fi(x)>0fi(x)>0,从而导致J1(x)J1(x)无穷大:
可以看出将J1(x)J1(x)极小化即可得解:
这是原始约束极小化问题变成无约束极小化问题后的代价函数,简称原始代价函数。定义原始约束极小化问题的最优解:
这就是原始最优解(Optimal primal value).
给出两点凸函数性质:
性质1:无约束凸函数f(x)f(x)的任何局部极小点x∗x∗都是该函数的一个全局极小点;
性质2:如果f(x)f(x)是强凸函数,则极小化问题minf(x)minf(x)可解,且其解xx唯一。
但这里存在一个问题:如果f0(x)f0(x)不是凸函数(也非凹),便没有性质1、性质2,即使设计了优化算法,可以得到某个局部极值点,但不能保证它是一个全局极值点。
如果可以:将非凸目标函数的极小化转换成凹目标函数的极大化,局部极值点便是全局极值点。实现转换的手段便是——对偶方法。
B-对偶方法
考虑构造另一个目标函数:
这个模型是原问题的对偶问题,根据上式:
得到对偶目标函数:
由此可见:JD(λ,v)JD(λ,v)是xx的凹函数,即使f0(x)f0(x)不是凸函数(凹函数同理,本文仅以凸为例).此时任何一个局部极值点都是一个全局极值点。至此:原约束极小化问题转化为对偶目标函数的无约束极大化算法设计,这一方法就是:拉格朗日对偶法。
记对偶目标函数最优值(简称对偶最优值)为:
d∗=JD(λ∗,v∗)d∗=JD(λ∗,v∗)
给出两点性质:maxmax为凸函数,minmin为凹函数,与f(.)f(.)内部形式无关。
性质1:函数f(x)=maxf(x)=max { x1,x2,...,xnx1,x2,...,xn} 在RnRn上是凸函数。
证明:
对任意0≤θ≤10≤θ≤1,函数f(x)=maxixif(x)=maxixi满足:
性质2:函数f(x)=minf(x)=min { x1,x2,...,xnx1,x2,...,xn} 在RnRn上是凹函数。
证明与上同。
C-对偶目标函数与原目标函数关系
首先写出原最优值与对偶最优值的关系:
字面理解:瘦子里的胖子,体重不会超过胖子里的瘦子。分析其理论:
对于极值点x∗x∗,恒有:
可以看出minxL(x,λ,v)minxL(x,λ,v)是p∗p∗的下界,而d∗d∗自然是下界中最大的那个(最接近原始最优解):
事实上对任何一个非负实值函数f(x,y)f(x,y),总有:
既然是下界,就必然有差距,定义p∗−d∗p∗−d∗为对偶间隙(duality gap).我们称p∗≥d∗p∗≥d∗为弱对偶性(weak duality).
D-Slater定理
首先给出凸优化定义:
形式:
其中hi(x)hi(x)是形如hi(x)=aTix=bihi(x)=aiTx=bi的仿射函数。相对上面讨论的优化问题,凸优化问题有三个附加要求:
- 目标函数必须是凸的;
- 不等式函数约束必须是凸的;
- 等式约束必须是仿射的;
凹凸可以转化:对于凹函数ff,−f−f即为凸函数。
与weak duality对应的是strong duality(强对偶性):p∗=d∗p∗=d∗,给出Slater定理:
如果原不等式优化问题为凸优化问题,且满足Slater条件:
- fi(x)<0fi(x)<0,i=1,2,...,mi=1,2,...,m;
- hi(x)=0hi(x)=0,i=1,2,...,qi=1,2,...,q;
则p∗=d∗p∗=d∗。
E-KKT条件
首先给出KKT(Karush-Kuth-Tucker,KKT)条件:
1)、2)、3)都容易理解,对于4)主要是防止fi(x)>0fi(x)>0的出现,从而设置一个障碍;5)因为x∗x∗是最优值,只要偏导存在,该式成立——平稳点存在。
可以得出:
对于一般性优化问题:
- KKT是原问题转化为对偶优化问题的必要条件(局部极小解一阶必要条件);
- 如果约束条件满足凸优化定义,仅仅f0(x)f0(x)为一般函数,则 原问题准则函数 和 对偶准则函数 的极值点通常不一致。
对于凸优化问题:
- 满足KKT条件的店,那么它们分别是 原问题准则函数 和 对偶准则函数 的极值点并且 strong duality 成立。
证明可以参考:pluskid大神的文章。
总结一下:
- 对偶问题可以将准则函数转化为凸函数;
- KKT为凸优化判定提供了依据;
- 对偶转化、KKT以及Slater并不限于凸优化问题。
参考:
- 张贤达:矩阵分析与应用