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

Posted

tags:

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

参考技术A

如何理解拉格朗日乘子法?

https://blog.csdn.net/lijil168/article/details/69395023
http://www.math.ubc.ca/~israel/m340/kkt2.pdf
http://www2.imm.dtu.dk/courses/02711/lecture3.pdf
http://www.onmyphd.com/?p=kkt.karush.kuhn.tucker

在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。 在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。
一般情况下,最优化问题会碰到一下三种情况:
(1)无约束条件
这是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点。将结果带回原函数进行验证即可。
(2)等式约束条件
使用拉格朗日乘子法。
当 个等式约束, 时,求 的最优解。——这就是原问题
等价表达式为:


——这就是原问题
其中, 表示最优化,可能是最小化min,或最大化max; 表示subject to ,“受限于”的意思; 为目标函数(不是原问题,不是原函数); 是约束项。写成约束的形式更专业,但是还是题目描述的好理解。

拉格朗日乘子法定义:对于目标函数 以及 个约束条件 ,拉格朗日乘子法为每个约束条件添加一个“乘子” :
(1)如果对目标函数求最小化即


那么得到拉格朗日函数:

其中

(2)如果对目标函数求最大化即


那么得到拉格朗日函数:

其中

上面两种情况是可以通过对 和 取负互相转换。下面只就第(1)种情况进行讨论。

上面两种情况用拉格朗日乘子法对偶问题来解释。
对于第一种情况,如果对目标函数求最小化即 是凹函数,那么对 求最小值等同于 ,而 可分为两部分,第一部分即目标函数 ,第二部分为带有“乘子” 的约束部分;容易看出第一部分不包含 ,所以 也可以分成两部分优化:

基于公式(1),可以用 来表示 ,那么拉格朗日函数 就变成了一个关于 的函数,记为: ——该函数就是拉格朗日函数的对偶函数。所谓对偶函数就是求拉格朗日函数的最优解 等价于求对偶函数的最优解 ,求得 之后基于公式(1),就可以求得 。

对对偶函数求最优解,也是对 求偏导,并令其为0:


...

最终我们可以得到对偶函数的 个最优解 ,进而得到拉格朗日函数的最优解 ,再将 带入目标函数 即可得到 的最优解。

由求带约束的目标函数的最优解 求拉格朗日函数的最优解 求拉格朗日函数的对偶函数的最优解,再将最优解回溯回去。

练一练:已知 ,求 的最大值?
上面的问题,可以写成

思路:基本不等式、三角换元都太麻烦。用拉格朗日乘子法(也叫拉格朗日乘数法)来解决。
将等式约束下的目标函数转化成拉格朗日函数:

这里只有一个约束项。
要求解 的最优解,即对 求偏导,并使结果为0:



可以求得
也就是说当 时,目标函数 取得最大值,即
利用GeoGebra 软件进行验证,如图所示:

(3)不等式约束条件
当 个不等式约束, 时,求 的最小值。
等价表达式为:


采用拉格朗日乘子法会为每一个不等式约束分配一个“乘子” ,于是有拉格朗日函数:

其中不等式约束的“乘子”” 。

KKT条件是说, 的最优解 一定同时满足如下条件:

要同时满足第6、7个条件,那么就是要么 ,要么 ,或 和 都为0——这就是KKT所带来的重要结论。

练一练:



1、将上面的约束项变形如下:


2、拉格朗日函数为:

最优化拉格朗日函数
对 求偏导:

那么
对 求偏导:

那么
将 带入到 中得到的是之关于 的函数 ,该函数是 的对偶函数。

(4)既有等式约束条件又有不等式约束条件
使用拉格朗日乘子法结合KKT条件。
当 个等式约束, ; 个不等式约束, 时,求 的最小值。
等价表达式为:



采用拉格朗日乘子法会为每一个等式约束分配一个“乘子” ,也为每一个不等式约束分配一个“乘子” ,于是有拉格朗日函数:

其中等式约束的“乘子”” ;不等式约束的“乘子” 。

KKT条件是说, 的最优解 一定满足如下条件:





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

03 SVM - KKT条件

拉格朗日对偶

SVM之KKT条件理解

04-拉格朗日对偶问题和KKT条件

拉格朗日对偶问题与 KKT 条件

对偶上升法到增广拉格朗日乘子法到ADMM