拉格朗日乘子法

Posted yijuncheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拉格朗日乘子法相关的知识,希望对你有一定的参考价值。

拉格朗日乘子法 (Lagrange multipliers)是→种寻找多元函数在一组约束下的极值的方法.通过引入拉格朗日乘子,可将有 d 个变量与 k 个约束条件的最优化问题转化为具有 d + k 个变量的无约束优化问题求解。
我们先以包含一个变量的简单优化问题为例,

求在满足$x le -1$ 或者 $x ge -1$的约束条件$g(x)$下,求${x^2} + 4x - 1$目标函数$f(x) $的最小值,如图所示,

[egin{array}{*{20}{l}}
{mathop {min }limits_x f(x) = {x^2} + 4x - 1}\\
egin{array}{l}
s.t.{ m{ }}x + 1 le 0\\
(s.t.{ m{ - }}x - 1 le 0)
end{array}
end{array}]

技术分享图片

 

当没有约束的时候,我们可以直接令目标函数的导数为0,求最小值。

可现在有约束,那怎么在求目标函数最小值的时候,考虑约束呢。最直观的办法我们把约束放进目标函数里面,由于本例中只有一个约束,所以引入一个朗格朗日乘子$lambda$,构造一个新的函数$h(x)$,

[h(x) = f(x) + lambda g(x) ]

求解最优的过程可以根据约束分为两种情况,

当$g(x) <0$时,也就是不等式约束满足的时候,约束对求目标函数最小值不起作用,这等价于$lambda = 0$,直接通过条件$ abla f(x*) = 0$, 也就是约束为$g(x)=x +1 le 0$的情况。

当$g(x) =0$时,不等式约束转换为等式约束$g(x)=0$,也就是在$lambda>0$的情况下,使得$ abla f(x*) + lambda abla g(x*)=0$,也就是约束为$g(x)=-x -1 ge 0$的情况。

整合这两种情况,必须满足$lambda g(x)=0$

因此在约束$g(x)$,最小化$f(x)$,可转化为在如下约束下,最小化拉格朗日函数

[left{ {egin{array}{*{20}{c}}
{g(x) le 0}\\
{lambda ge 0}\\
{lambda g(x) ge 0}
end{array}} ight.]

上述约束条件成为KKT条件。

该KKT条件可扩展到多个等式约束和不等式约束的优化问题。

 












以上是关于拉格朗日乘子法的主要内容,如果未能解决你的问题,请参考以下文章

拉格朗日乘子法及其对偶问题和KKT条件

拉格朗日乘子法

拉格朗日乘子法

拉格朗日乘子法

深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

机器学习笔记——拉格朗日乘子法和KKT条件