您的位置:首页 > 其它

【直观详解】拉格朗日乘法和KKT条件

2020-11-24 17:18 911 查看

【内容简介】直观的解读了什么是拉格朗日乘子法,以及如何求解拉格朗日方程,并且给出几个直观的例子,针对不等式约束解读了KKT条件的必要条件和充分条件

1

What & Why

拉格朗日乘法(Lagrange multiplier)是一种在最优化的问题中寻找多元函数在其变量受到一个或多个条件的相等约束时的求局部极值的方法。这种方法可以将一个有 n 个变量和 k 个约束条件的最优化问题转换为一个解有 n+k 个变量的方程组的解的问题

考虑一个最优化问题

2

How

那么如何求这个极值点呢?

单约束

例子1

设一个具体的例子,我们需要求下列问题


根据几个不同的解带入f(x,y)得到,2,-2,0,也就是我们需要的最大值,最小值,对应的直观图像解释如下图所示(非常直观的展现约束和等高线的含义)

例子2


多约束

既然可以解决单约束,继续思考一下多约束情况的直观表现,假设我们的约束是两条线,如下图所示

和单约束的解决方法类似,我们画出等高线图,目的就是在约束线上找到一个点可以和等高线相切,所得的值实在约束范围内的最大值或者最小值,直观表示如下图

解算方法是讲单约束的扩展到多约束的情况,较为类似,可举一反三

3

KKT条件

已经解决的在等式约束条件下的求函数极值的问题,那不等式约束条件下,应该如何解决呢?

这就需要引出KKT条件(Karush-Kuhn-Tucker Conditions),它是在满足一些有规则的条件下,一个非线性规划问题能有最优化解法的一个必要和充分条件

考虑以下非线性最优化问题,含有m个不等式约束,l个等式约束

必要条件

充分条件

4

总结

总的来说,拉格朗日乘子法是一个工具(手段或方法),来解决在有约束情况的求函数极值的问题

原文地址:https://charlesliuyx.github.io

更多博文欢迎访问原文链接

推荐阅读:

精选干货|近半年干货目录汇总
留给人类的时间不多了?现在不学机器学习更待何时!
【直观详解】什么是PCA、SVD

欢迎关注公众号学习交流~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: