【直观详解】拉格朗日乘法和KKT条件
【内容简介】直观的解读了什么是拉格朗日乘子法,以及如何求解拉格朗日方程,并且给出几个直观的例子,针对不等式约束解读了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
欢迎关注公众号学习交流~
- KKT条件和拉格朗日乘子法详解
- 《SVM笔记系列之三》拉格朗日乘数法和KKT条件的直观解释
- c 语言中字符串详解以及条件运算符的特殊例子
- 【直观详解】支持向量机SVM
- 通过HTML条件注释判断IE版本的HTML语句详解<!--[if IE]> <![endif]-->
- 【excel】条件格式使得测试结果更直观
- python第11天:条件语句详解
- SVM的kkt条件和对偶问题。
- test命令_Linux test 命令用法详解:shell环境中测试条件表达式工具
- 拉格朗日乘子与KKT条件
- Python学习入门基础教程(learning Python)--3.3 分支语句的条件表达式详解 .
- SAP-MM 价格条件详解-01计算方案的确定及部分概念说明
- 详解React 的几种条件渲染以及选择
- Hibernate 中 Criteria 查询条件 Restrictions 限定条件参数详解
- Java编程中的条件判断之if语句的用法详解
- 深入理解拉格朗日乘子法和KKT条件的原理及运用
- linux 多线程详解(互斥、信号、条件cond、锁)
- 如何理解拉格朗日乘子法和KKT条件?
- IntelliJ IDEA怎么设置条件断点调试和断点调试详解
- 从头认识java-17.4 详解同步(1)-由竞争条件引发的问题