最优化:拉格朗日乘子法

作者:桂。

时间:2017-03-27 20:26:17

链接:http://www.cnblogs.com/xingshansi/p/6628785.html 

声明:欢迎被转载,不过记得注明出处哦~


 【读书笔记06】

前言

看到西蒙.赫金的《自适应滤波器原理》第四版第四章:最速下降算法。最速下降法、拟牛顿法等都是求解准则函数(即无约束优化问题)的算法,这就需要有一个前提:怎样得到无约束准则函数?联想到之前看维纳滤波:无约束维纳滤波约束维纳滤波,提到了拉格朗日乘子,将有限制条件的优化问题转化为无限制的优化问题,可见拉格朗日乘子搭建了一个桥梁:将有限制的准则函数,转化为无限制准则函数,进而借助最速下降法、拟牛顿法等求参算法进行求解,在这里汇总一下拉格朗日乘子法是有必要的,全文包括:

  1)含有等式约束的拉格朗日乘子法;

  2)拉格朗日对偶方法;

内容为自己的学习记录,其中多有参考他人,最后一并给出链接。

 

一、含有等式约束拉格朗日乘子法

对于含有约束的优化问题,可以在约束域内对准则函数搜索最优解,但如果约束较为复杂搜索起来显然不那么容易,如果借助某种方式将约束问题转化为无约束问题,求解则更为方便一些,这也是拉格朗日乘子法的魅力所在。本段内容为维纳滤波一文的开头部分。

  A-只含一个等式约束的最优化

实函数$f\left( {\bf{w}} \right)$是参数向量${\bf{w}}$的二次函数,约束条件是:

${{{\bf{w}}^H}{\bf{s}} = g}$

其中$\bf{s}$是已知向量,$g$是复常数。例如在波束形成应用中${\bf{w}}$表示各传感器输出的一组复数权值,$\bf{s}$是一个旋转向量。假设该问题是一个最小化问题,令$c\left( {\bf{w}} \right) = {{\bf{w}}^H}{\bf{s}} - g = 0 + j0$可以描述为:

所谓拉格朗日乘子法,就是引入拉格朗日乘子:将上述约束最小化问题转化为无约束问题,定义一个新的实函数:

$h\left( {\bf{w}} \right) = f\left( {\bf{w}} \right) + {\lambda _1}{\mathop{\rm Re}\nolimits} \left[ {c\left( {\bf{w}} \right)} \right] + {\lambda _2}{\mathop{\rm Im}\nolimits} \left[ {c\left( {\bf{w}} \right)} \right]$

现在定义一个复拉格朗日乘子:

$\lambda  = {\lambda _1} + {\lambda _2}$

$h({\bf{w}})$改写为:

$h\left( {\bf{w}} \right) = f\left( {\bf{w}} \right) + {\mathop{\rm Re}\nolimits} \left[ {{\lambda ^*}c\left( {\bf{w}} \right)} \right]$

至此,无约束优化问题转化完成,利用偏导求参即可,其实这是一个简化的形式,分别求解$\lambda _1$、$\lambda _2$也是一样的。

  B-包含多个等式约束的最优化

实函数$f\left( {\bf{w}} \right)$是参数向量${\bf{w}}$的二次函数,约束条件是:

${{{\bf{w}}^H}{\bf{s_k}} = g_k}$

其中$k = 1,2...K$,方法同单个约束情况相同,求解伴随方程:

$\frac{{\partial f}}{{\partial {{\bf{w}}^*}}} + \sum\limits_{k = 1}^K {\frac{\partial }{{\partial {{\bf{w}}^*}}}\left( {{\mathop{\rm Re}\nolimits} \left[ {\lambda _k^*{c_k}\left( {\bf{w}} \right)} \right]} \right)}  = {\bf{0}}$

此时与多个等式约束联合成方程组,这个方程组定义了${\bf{w}}$和拉格朗日乘子${\lambda _1}$、${\lambda _2}$...${\lambda _K}$的解。

如果含有不等式约束,或者说既有等式约束、又有不等式约束呢?

 

二、拉格朗日对偶问题(Lagrange duality)

  A-原始问题

给出约束优化问题模型:

其中${h_i}\left( x \right) = 0,\;i = 1,...q$也可写成矩阵形式:${\bf{Ax}} = {\bf{b}}$.该模型为原始问题

该模型利用拉格朗日乘子可以松弛为无约束优化问题:

$\min \;\;L\left( {x,\lambda ,v} \right) = {f_0}\left( x \right) + \sum\limits_{i = 1}^m {{\lambda _i}{f_i}\left( x \right) + \sum\limits_{i = 1}^q {{v_i}{h_i}\left( x \right)} } $

该模型为对偶问题。约束${{\lambda _i}} \ge 0$,则$\sum\limits_{i = 1}^m {{\lambda _i}{f_i}\left( x \right)}  \le 0$,即:

$L\left( {x,\lambda ,v} \right) \le {f_0}\left( x \right)$

 为了逼近$f_0(x)$,首先针对${\lambda ,v}$对其最大化:

但由于该问题只是对${\lambda ,v}$的约束,无法避免违反约束$f_i(x)>0$,从而导致$J_1(x)$无穷大:

可以看出将$J_1(x)$极小化即可得解:

这是原始约束极小化问题变成无约束极小化问题后的代价函数,简称原始代价函数。定义原始约束极小化问题的最优解:

这就是原始最优解(Optimal primal value).

给出两点凸函数性质:

性质1:无约束凸函数$f(x)$的任何局部极小点$x^*$都是该函数的一个全局极小点;

性质2:如果$f(x)$是强凸函数,则极小化问题$\min f(x)$可解,且其解$x$唯一。

但这里存在一个问题:如果$f_0(x)$不是凸函数(也非凹),便没有性质1、性质2,即使设计了优化算法,可以得到某个局部极值点,但不能保证它是一个全局极值点。

如果可以:将非凸目标函数的极小化转换成凹目标函数的极大化,局部极值点便是全局极值点。实现转换的手段便是——对偶方法。

  B-对偶方法

考虑构造另一个目标函数:

这个模型是原问题的对偶问题,根据上式:

得到对偶目标函数:

由此可见:${J_D}\left( {\lambda ,v} \right)$是$x$的凹函数,即使$f_0(x)$不是凸函数(凹函数同理,本文仅以凸为例).此时任何一个局部极值点都是一个全局极值点。至此:原约束极小化问题转化为对偶目标函数的无约束极大化算法设计,这一方法就是:拉格朗日对偶法

记对偶目标函数最优值(简称对偶最优值)为:

${d^*} = {J_D}\left( {{\lambda ^*},{v^*}} \right)$

给出两点性质:$\max$为凸函数,$\min$为凹函数,与$f(.)$内部形式无关。

性质1:函数$f\left( x \right) = \max$ { ${x_1},{x_2},...,{x_n}$} 在${{\bf{R}}^n}$上是凸函数。

证明

对任意$0 \le \theta \le 1$,函数$f(x) = \max_i x_i$满足:

性质2:函数$f\left( x \right) = \min$ { ${x_1},{x_2},...,{x_n}$} 在${{\bf{R}}^n}$上是凹函数。

证明与上同。

  C-对偶目标函数与原目标函数关系

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

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

对于极值点$x^*$,恒有:

可以看出$\mathop {\min \;}\limits_x L\left( {x,\lambda ,v} \right)$是$p^*$的下界,而$d^*$自然是下界中最大的那个(最接近原始最优解):

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

既然是下界,就必然有差距,定义$p^*-d^*$为对偶间隙(duality gap).我们称${p^*} \ge {d^*}$为弱对偶性(weak duality).

  D-Slater定理

首先给出凸优化定义:

形式:

其中$h_i(x)$是形如$h_i(x) = a^{T}_ix = b_i$的仿射函数。相对上面讨论的优化问题,凸优化问题有三个附加要求:

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

凹凸可以转化:对于凹函数$f$,$-f$即为凸函数。

 与weak duality对应的是strong duality(强对偶性):${p^*} = {d^*}$,给出Slater定理:

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

  • $f_i(x) < 0$,$i=1,2,...,m$;
  • $h_i(x) = 0$,$i=1,2,...,q$;

则${p^*} = {d^*}$。

  E-KKT条件

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

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

可以得出:

对于一般性优化问题

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

对于凸优化问题

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

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

总结一下:

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

参考:

 

posted @ 2017-03-29 07:40  LeeLIn。  阅读(24285)  评论(1编辑  收藏  举报