最优化:拉格朗日乘子法

最优化:拉格朗日乘子法

作者:桂。

时间: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)=wHsg=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,方法同单个约束情况相同,求解伴随方程:

fw+k=1Kw(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)

该模型为对偶问题。约束λi0λ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)的任何局部极小点xx∗都是该函数的一个全局极小点;

性质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-对偶目标函数与原目标函数关系

首先写出原最优值与对偶最优值的关系:

字面理解:瘦子里的胖子,体重不会超过胖子里的瘦子。分析其理论:

对于极值点xx∗,恒有:

可以看出minxL(x,λ,v)minx⁡L(x,λ,v)pp∗的下界,而dd∗自然是下界中最大的那个(最接近原始最优解):

事实上对任何一个非负实值函数f(x,y)f(x,y),总有:

既然是下界,就必然有差距,定义pdp∗−d∗为对偶间隙(duality gap).我们称pdp∗≥d∗弱对偶性(weak duality).

  D-Slater定理

首先给出凸优化定义:

形式:

其中hi(x)hi(x)是形如hi(x)=aTix=bihi(x)=aiTx=bi的仿射函数。相对上面讨论的优化问题,凸优化问题有三个附加要求:

  • 目标函数必须是凸的;
  • 不等式函数约束必须是凸的;
  • 等式约束必须是仿射的;

凹凸可以转化:对于凹函数fff−f即为凸函数。

 与weak duality对应的是strong duality(强对偶性):p=dp∗=d∗,给出Slater定理:

如果原不等式优化问题为凸优化问题,且满足Slater条件:

  • fi(x)<0fi(x)<0i=1,2,...,mi=1,2,...,m
  • hi(x)=0hi(x)=0i=1,2,...,qi=1,2,...,q

p=dp∗=d∗

  E-KKT条件

 首先给出KKT(Karush-Kuth-Tucker,KKT)条件:

1)、2)、3)都容易理解,对于4)主要是防止fi(x)>0fi(x)>0的出现,从而设置一个障碍;5)因为xx∗是最优值,只要偏导存在,该式成立——平稳点存在。

可以得出:

对于一般性优化问题

  • KKT是原问题转化为对偶优化问题的必要条件(局部极小解一阶必要条件);
  • 如果约束条件满足凸优化定义,仅仅f0(x)f0(x)为一般函数,则 原问题准则函数 和 对偶准则函数 的极值点通常不一致。

对于凸优化问题

  • 满足KKT条件的店,那么它们分别是 原问题准则函数 和 对偶准则函数 的极值点并且 strong duality 成立。

证明可以参考:pluskid大神的文章

总结一下:

  1. 对偶问题可以将准则函数转化为凸函数;
  2. KKT为凸优化判定提供了依据;
  3. 对偶转化、KKT以及Slater并不限于凸优化问题。

参考:

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值