拉格朗日乘子法及KKT条件数学理解

1.拉格朗日乘数法的基本思想

在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一种新的标量未知数,即拉格朗日乘数:约束方程的梯度(gradient)的线性组合里每个向量的系数。 [1] 此方法的证明牵涉到偏微分,全微分或链法,从而找到能让设出的隐函数的微分为零的未知数的值。

2.无约束条件下求解函数极值问题

这是最简单的一种情况,解决方法通常是对函数对变量求导,令求导函数等于0的点可能是极值点。必须把疑似极值点带回原函数验证

3.等式约束条件下的拉格朗日函数

比如这个例子

首先对于这种带有约束条件的极值问题,第一种方法可以使用消元法,将条件方程和所求方程进行消元,最后求得极值点。
这里注意必须将所求极值点带回原方程检验该点是否在所求平面或直线上
第二种方法:使用拉格朗日乘数法进行求解。
首先我们需要定义拉格朗日函数F(x)
然后我们需要对拉格朗日方程中的每个变量求偏导数,并解出偏导数方程

这里注意一点,上面的拉格朗日后面条件是一个向量函数,所以可以存在多个拉格朗日系数
回到题目后,我们将上面的朗格朗日函数写出来

并对每个变量求偏导数

通过前三个方程,我们可以解出bx=ay和az=cx的关系,并将这个关系带入第四个方程得到

最后我们求得最大体机为:

这里的解题思路,首先根据题意判断哪个是条件函数,哪个是求导函数。然后定义拉格朗日函数(这里拉格朗日函数中的+或者-都行)随后对拉格朗日函数的所有变量解偏导方程。最后便得到极值点。
以上是拉格朗日函数的基本解题形态。
下面从几何意义上解释等式约束条件下的拉格朗日乘数法
这里我们解释为什么需要定义拉格朗日函数及为什么解偏导方程能得到极值点
举个例子:求双曲线xy=3上离原点最近的点。
根据题意我们得到,条件函数是xy=3,求导函数是x2+y2-d**2=0(这里我们用的是欧式距离的平方,因为我们要求的是离原点最近的点,所以选择求距离的平方)
我们画出该函数的图像

通过图像可以知道,当双曲线和圆相切时到原点的距离最短。那么如果两个曲线相切,那么他们的切线相同,由此得知他们的法向量是互相平行的。
这里引入梯度的概念,由上面的结论可以得知两个曲线的梯度是共线的。于是我们可以得到这个方程▽f=λ▽g
根据这个方程,我们再对各个变量求偏导数
fx=λ
gx,
fy=λgy,再根据条件函数组成方程组xy=3
2x=λ
y,2y=λx,xy=3
通过解上述方程,我们可以得到λ,从而求出极值点。
所以我们可以理解朗格朗日函数的实质是▽f+λ
▽g=0
然后根据梯度求全微分来求的极值点

4.不等式约束条件下推导KKT条件及对偶问题解释

上面解释了等式约束条件下的拉格朗日函数求极值。那么当出现不等式约束条件时呢,此时的约束条件变得如下:

这是我们需要定义广义的拉格朗日函数L

这里需要说明一个条件,因为由上面的等式约束条件求拉格朗日函数,我们可以得知u和梯度有关。这里gk(x)<=0,根据梯度指向的是>=0的方向,所以uk>=0。(以此类推,当gk(x)>=0时,uk<=0)。
接下来主要介绍KKT条件,推导及应用。详细推导过程如下:


根据我个人理解解释下这个推导过程,首先根据我上面说的得到uk的条件,然后根据gk(x)我们可以得到
之后我们可以得知L(x,u)的最大值是当ug(x)=0时,即f(x)
所以我们要求minf(x)实际上是求minmaxL(x,u)
我们推出这个方程,这里先不解释什么是对偶方程

随后根据uk<=0和g(x)>=0及组成的ug(x)<=0这三个条件,我们得到了minug(x)存在两种情况:

根据第一种情况。我们推出了

当u或者g(x)=0时,minmaxL(x,u)=maxminL(x,u)这就是利用假设法反推了对偶问题
这里解释下,为什么不采用第二种情况,因为当g(x)<0时。这时的g(x)的最佳解在区域内部,这时最佳解称为内部解,不等书约束条件不生效
以下是KKT条件的详细解释及对偶问题的解释

拉格朗日乘数法及KKT条件-通俗理解相关推荐

  1. 从拉格朗日乘数法到KKT条件

    从拉格朗日乘数法到KKT条件 最近看论文遇到了Karush–Kuhn–Tucker (KKT)条件,想搞清楚这是个什么东东,因此就把这个东西认真学习一下并且分享出来,希望对大家有用.学习KKT就不得不 ...

  2. SVM支持向量机-手写笔记(超详细:拉格朗日乘数法、KKT条件、对偶性质、最优化、合页损失、核函数...)

    SVM支持向量机-手写笔记 作者:某丁 日期:2021.05.21 写完了,发现想要真正理解SVM还需要继续深入学习,以上所写只不过是冰山一角,我的管中窥豹而已. 参考 [1] 一文搞懂支持向量机(S ...

  3. 拉格朗日乘数法 和 KTT条件

    预备知识 令 \(X\) 表示一个变量组(向量) \((x_1, x_2, \cdots, x_n)\) 考虑一个处处可导的函数 \(f(X)\), 为了方便描述, 这里以二元函数为例 对于微分, 考 ...

  4. 内点惩罚函数法matlab_拉格朗日乘数法求解多元条件极值问题

    点击蓝字,关注废柴姐姐 拉格朗日乘数法 " 一种不直接依赖消元法而求解条件极值问题的有效方法 二元函数入手 我们从  皆为二元函数这一简单情况人手. 欲求函数 的极值,其中受条件 的限制. ...

  5. 拉格朗日乘数法 —— 通俗理解

    拉格朗日乘数法(Lagrange Multiplier Method)在数学最优问题中,是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法.记得以前大学高数.数模等课程多次提到过,在求解最有问 ...

  6. 拉格朗日乘数法的原理,我用10幅图把它讲清楚了

    机器学习是一个目标函数优化问题,给定目标函数f,约束条件会有一般包括以下三类: 仅含等式约束 仅含不等式约束 等式和不等式约束混合型 当然还有一类没有任何约束条件的最优化问题 关于最优化问题,大都令人 ...

  7. [Math Algorithm] 拉格朗日乘数法

    https://www.cnblogs.com/maybe2030/p/4946256.html 阅读目录 1. 拉格朗日乘数法的基本思想 2. 数学实例 3. 拉格朗日乘数法的基本形态 4. 拉格朗 ...

  8. 拉格朗日乘数法怎么判断极大极小_最优化方法:拉格朗日乘数法

    解决约束优化问题--拉格朗日乘数法 拉格朗日乘数法(Lagrange Multiplier Method)应用广泛,可以学习麻省理工学院的在线数学课程. 拉格朗日乘数法的基本思想 作为一种优化算法,拉 ...

  9. 最优化方法:拉格朗日乘数法

    http://blog.csdn.net/pipisorry/article/details/52135854 解决约束优化问题--拉格朗日乘数法 拉格朗日乘数法(Lagrange Multiplie ...

最新文章

  1. 10张 GIF 动图让你弄懂递归等概念
  2. 超全的数据库建表/SQL/索引规范,适合贴在工位上!
  3. 众多支持者助力BCH第二次硬分叉升级
  4. [C++] Lvalue and Rvalue Reference
  5. ARM嵌入式编程之STM32的命名方法 STM32F103VET6命名解释
  6. window10安装python2.7_Windows10-python2.7安
  7. python3 批量定义多个变量_Python 3.8 新功能大揭秘
  8. linux安装nvidia黑屏,GTX 550 Ti 安装Linux遇到的问题 黑屏 显示器休眠
  9. 第三章 选择结构
  10. paip.汉字简化大法总结
  11. 【全网最实用】最常用Windows快捷键和Windows命令整理
  12. 2007年9月c语言真题及答案,1997年9月二级C语言笔试真题及答案.doc
  13. 云计算安全知识CCSK V4 知多少
  14. 计算机的内存大小有何作用,电脑内存用处有多大?你可能想不到!
  15. 为什么说c语言是关键字,为什么说C语言既有高级语言又有低级语言的特点
  16. Codeforces Round #322 (Div. 2) B. Luxurious Houses 水题
  17. java xmx xms xmn_JVM调优 -Xms -Xmx -Xmn -Xss
  18. 叠氮功能化硫铟铜量子点CuInS Qds-N3|炔基修饰碲化镉/硫化硒量子点 CdTe/CdSe Qds-Alkyne科研试剂
  19. python的线程如何启用和结束_python线程进程
  20. 任正非一语中的,未来科技的发展核心靠他们!

热门文章

  1. C#中ManagementClass获取本机信息
  2. 可变悬挂与空气悬挂的区别_可变悬挂_什么是可变悬挂_太平洋汽车网百科
  3. Unity中的shadows(三)receive shadows
  4. Android 聊天界面背景图片不顶上去内容顶上去解决方法
  5. 思科 路由与交换基础 实验一
  6. 【Linux】Linux进程控制 --- 进程创建、终止、等待、替换、shell派生子进程的理解…
  7. $.getJSON 解决跨域问题
  8. java 高斯模糊_Java实现高斯模糊和图像的空间卷积
  9. 华为云初体验——感谢牛客网与华为云联合送福利
  10. 成都市 3D可视化 智能楼宇(智慧园区) H5 WebGL 开发总结