• 最优化:拉格朗日乘子法


    作者:桂。

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

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

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


     【读书笔记06】

    前言

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

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

      2)拉格朗日对偶方法;

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

     

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

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

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

    实函数$fleft( {f{w}} ight)$是参数向量${f{w}}$的二次函数,约束条件是:

    ${{{f{w}}^H}{f{s}} = g}$

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

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

    $hleft( {f{w}} ight) = fleft( {f{w}} ight) + {lambda _1}{mathop{ m Re} olimits} left[ {cleft( {f{w}} ight)} ight] + {lambda _2}{mathop{ m Im} olimits} left[ {cleft( {f{w}} ight)} ight]$

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

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

    $h({f{w}})$改写为:

    $hleft( {f{w}} ight) = fleft( {f{w}} ight) + {mathop{ m Re} olimits} left[ {{lambda ^*}cleft( {f{w}} ight)} ight]$

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

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

    实函数$fleft( {f{w}} ight)$是参数向量${f{w}}$的二次函数,约束条件是:

    ${{{f{w}}^H}{f{s_k}} = g_k}$

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

    $frac{{partial f}}{{partial {{f{w}}^*}}} + sumlimits_{k = 1}^K {frac{partial }{{partial {{f{w}}^*}}}left( {{mathop{ m Re} olimits} left[ {lambda _k^*{c_k}left( {f{w}} ight)} ight]} ight)}  = {f{0}}$

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

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

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

      A-原始问题

    给出约束优化问题模型:

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

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

    $min ;;Lleft( {x,lambda ,v} ight) = {f_0}left( x ight) + sumlimits_{i = 1}^m {{lambda _i}{f_i}left( x ight) + sumlimits_{i = 1}^q {{v_i}{h_i}left( x ight)} } $

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

    $Lleft( {x,lambda ,v} ight) le {f_0}left( x ight)$

     为了逼近$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} ight)$是$x$的凹函数,即使$f_0(x)$不是凸函数(凹函数同理,本文仅以凸为例).此时任何一个局部极值点都是一个全局极值点。至此:原约束极小化问题转化为对偶目标函数的无约束极大化算法设计,这一方法就是:拉格朗日对偶法

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

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

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

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

    证明

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

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

    证明与上同。

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

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

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

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

    可以看出$mathop {min ;}limits_x Lleft( {x,lambda ,v} ight)$是$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并不限于凸优化问题。

    参考:

     

  • 相关阅读:
    解决跨域问题
    封装树形结构数据
    使用脚手架搭建vue项目
    Vue入门之HelloWorld
    element-ui 格式化树形数组在table组件中展示(单元格合并)
    js导出excel,时间格式问题
    webpack代理设置
    null和undefined的区别?
    js Number和parseInt 的区别
    js数据类型
  • 原文地址:https://www.cnblogs.com/xingshansi/p/6628785.html
Copyright © 2020-2023  润新知