[转载]拉格朗日乘子法如何理解?
@[转载]拉格朗日乘子法如何理解?
链接:https://www.zhihu.com/question/38586401/answer/105273125
拉格朗日乘数法(Lagrange multiplier)有很直观的几何意义。举个2维的例子来说明:假设有自变量x和yx和yx和y,给定约束条件g(x,y)=g(x,y)=g(x,y)=c,要求f(x,y)f(x,y)f(x,y)在约束ggg下的极值。我们可以画出fff的等高线图,如下图。此时,约束g=cg=cg=c由于只有一个自由度,因此也是图中的一条曲线(红色曲线所示)。显然地,当约束曲线g=cg=cg=c与某一条等高线f=d1f=d1f=d1相切时,函数fff取得极值。两曲线相切等价于两曲线在切点处拥有共线的法向量。因此可得函数f(x,y)f(x,y)f(x,y)与g(x,y)g(x,y)g(x,y)在切点处的梯度(gradient)成正比。于是我们便可以列出方程组求解切点的坐标(x,y)(x,y)(x,y),进而得到函数fff的极值。
1 与原点的最短距离
假如有方程: x2y=3x^2y=3x2y=3
图像是这个样子滴:
现在我们想求其上的点与原点的最短距离:
这里介绍一种解题思路。首先,与原点距离为a 的点全部在半径为a 的圆上:
那么,我们逐渐扩大圆的半径:
显然,第一次与x2y=3x^2y=3x2y=3 相交的点就是距离原点最近的点:
此时,圆和曲线相切,也就是在该点切线相同:
至此,我们分析出了:
在极值点,圆与曲线相切在极值点,圆与曲线相切在极值点,圆与曲线相切
2 等高线
为了继续解题,需要引入等高线。这些同心圆:
可以看作函数f(x,y)=x2+y2f(x,y)=x^2 + y^2f(x,y)=x2+y2 的等高线:
根据梯度的性质(关于梯度可以查看如何通俗地理解梯度?),梯度向量:
是等高线的法线:
另外一个函数g(x,y)=x2yg(x,y)=x^2yg(x,y)=x2y 的等高线为:
之前的曲线x2y=3x^2y=3x2y=3 就是其中值为3的等高线:
因此,梯度向量:
也垂直于等高线x2y=3x^2y=3x2y=3 :
3 拉格朗日乘子法
3.1 求解
根据之前的两个分析:
综合可知,在相切点,圆的梯度向量和曲线的梯度向量平行:
也就是梯度向量平行,用数学符号表示为:
还必须引入x2y=3x^2y=3x2y=3 这个条件,否则这么多等高线,不知道指的是哪一根:
因此联立方程:
求一下试试:
这就是拉格朗日乘子法。
3.2 定义
要求函数f 在g 约束下的极值这种问题可以表示为:
s.t.s.t.s.t. 意思是subject to,服从于,约束于的意思。
可以列出方程组进行求解:
用这个定义来翻译下刚才的例子,要求:
令:
求:
联立方程进行求解:
3.3 变形
这个定义还有种变形也比较常见,要求:
定义:
求解下面方程组即可得到答案:
把等式左边的偏导算出来就和上面的定义是一样的了。
3.4 多个约束条件
如果增加一个约束条件呢?比如说:
求:
从图上看约束条件是这样的:
很显然所求的距离是这样的:
那这三者的法线又有什么关系呢?x2+y2x^2 + y^2x2+y2的法线是x2y−3x^2y-3x2y−3 和x−y−3x-y-3x−y−3 的法线的线性组合:
假设:
那么线性组合就表示为:
联立方程:
即可求解。
往更高纬度走的话,多约束条件的情况下,问题变为了g1,g2g_1,g_2g1,g2 围成的曲线 C 和f 相切,直观上看∇f\nabla f∇f 必然在∇g1,∇g2\nabla g_1,\nabla g_2∇g1,∇g2 张成的空间中:
这点的严格性这里就不证明了。
两条曲线相切,意味着他们在这点的法线平行,也就是法向量只差一个任意的常数乘子(取为−λ):∇f(x,y)=−λ∇g(x,y)-\lambda):\nabla f(x,y)=-\lambda \nabla g(x,y)−λ):∇f(x,y)=−λ∇g(x,y), 我们把这个式子的右边移到左边,并把常数移进微分算子,就得到∇(f(x,y)+λg(x,y))=0\nabla (f(x,y)+\lambda g(x,y))=0∇(f(x,y)+λg(x,y))=0。
把这个式子重新解释一下,这个就是函数f(x,y)+λg(x,y)f(x,y)+\lambda g(x,y)f(x,y)+λg(x,y)无约束情况下极值点的充分条件。
[转载]拉格朗日乘子法如何理解?相关推荐
- 拉格朗日乘子法:写得很通俗的文章
拉格朗日乘子法 最近在学习 SVM 的过程中,遇到关于优化理论中拉格朗日乘子法的知识,本文是根据几篇文章总结得来的笔记.由于是刚刚接触,难免存在错误,还望指出?.另外,本文不会聊 ...
- 【数学】拉格朗日乘子法(Lagrange Multiplier) 和KKT条件理解
转载 目录 动机 简介 一. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件 (a) 拉格朗日乘子法(Lagrange Multiplier) (b) KKT条件 二. 为什么 ...
- 转 机器学习系列 08:深入理解拉格朗日乘子法、KKT 条件和拉格朗日对偶性
深度理解拉格朗日乘子法.KKT条件与线性规划对偶理论的微妙关系 https://blog.csdn.net/benzhujie1245com/article/details/85270058?utm_ ...
- 拉格朗日乘子法学习[转载]
转自:https://wenku.baidu.com/view/3815adfdfad6195f302ba6c0.html 1.约束条件下多变量的优化方法 2.等式约束下的拉格朗日乘子法 2.1等式约 ...
- 拉格朗日乘子法的通俗理解
拉格朗日乘子法的通俗理解 1. 举例 2. 求偏导 3. 拉格朗日乘子法 4. 乘子 1. 举例 这里举个简单的例子吧 在家里做蛋糕,假如只计算鸡蛋和牛奶的价格 其中鸡蛋的价格为4.5¥/斤,牛奶为1 ...
- SVM-支持向量机理解(拉格朗日乘子法(Lagrange multiplier))
关于支持向量机里的拉格朗日乘子法有很多文章,作为学习笔记这里就不详细描述了,只记录一些一般文章里跳过的难以理解部分 Support Vector Machine wiki : https://en.w ...
- 如何理解拉格朗日乘子法?
1 与原点的最短距离 假如有方程: 图像是这个样子滴: 现在我们想求其上的点与原点的最短距离: 这里介绍一种解题思路.首先,与原点距离为 的点全部在半径为 的圆上: 那么,我们逐渐扩大圆的半径: 显然 ...
- 对拉格朗日乘子法与KKT的理解
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
最新文章
- java typeof_js中typeof的用法汇总
- arm linux内核调试,kgdb在ARM开发板上调试kernel成功
- jsbridge实现及原理_如何实现一个优雅的jsBridge
- 微软公有云Azure落地中国,全面大规模商用
- MATLAB数值计算与符号运算
- flutter TextField 限制只允许输入数字 小数点
- 第八章:在Spark集群上掌握比较重要的图操作之Property Operators(1)
- 关于url传参中文乱码问题
- Java中迭代Map的方法
- SQLServer中替换某字段的部分内容
- mysql配置文件路径
- smtp邮件服务器的作用,smtp服务器是什么意思(smtp服务器作用及使用指南)
- Windows 11 配置JDK 环境变量
- emacs下使用google-cpplint
- 如何使用OBS Virtualcam 和 Live2DViewEX 在视频会议中成为最靓的仔
- BPM与OA的简单了解
- linux下查看系统内存使用情况的几个命令
- 苹果与华为领衔 全球科技巨头进军AI手机领域
- IOS内购IAP(IN-APP-PURCACHE)收据
- Spotify敏捷模式详解三部曲第三篇:工程文化
热门文章
- VNC Viewer连接成功后闪退的解决办法
- day2 java的数据转换与强制转换
- 11_less中的条件判断
- Java中的变量Variable
- 机器视觉用c还是python_机器视觉_opencv-python环境搭建
- easyexcel和poi是否有版本冲突_easyexcel--解决poi大文件发生OOM问题
- pythondjango教程_Python 中Django安装和使用教程详解
- linux redis-trib.rb,linux 关于redis-trib.rb构建redis集群
- python安装anaconda ubuntu_Ubuntu 16.4 安装anaconda 详细教程
- jinja2模板注入_Flask jinja2 模板注入思路总结