拉格朗日乘子库恩塔克条件

article/2025/9/14 0:52:35

拉格朗日乘子法的证明

在学习支持向量机的时候,计算对偶问题时用到了拉格朗日乘子法((Lagrange multiplier method)),回想起高中时使用拉格朗日乘子法求不等式约束条件下的最优化问题时的困惑,虽然一直知道用,但是却不知道为什么拉格朗日乘子法能够用。知其然更应知其所以然,本文就来扒一扒“拉格朗日乘子法”的来龙去脉。

等式约束下的最优化问题

给定一个不等式约束条件下的最优化问题,

minxf(x)s.t.g(x)=0(1)

此处假定 f(x) 为凸函数,需要找到的是在约束条件 g(x)=0 的条件下,使得目标函数 f(x) 最小的 x 值(注:x为一个n维向量)。一般情况下,对于一个凸函数的极值问题,我们只需要找到令目标函数的梯度 x=0 的点 x 即可。然而,由于此处存在的等式约束条件,使得目标函数梯度等于0的点不一定能够满足约束条件。

从几何的角度看,这个问题的目标是在由方程g(x)=0所确定的 d1 维曲面上,找到能使得目标函数 f(x) 最小化的 d 维点。我们以下图中二维空间为例:求函数f(x,y)在约束条件 g(x,y)=0 下的最小值。我们想象 f(x,y) 是一座“山”, x y分别是其经纬度, f(x,y) 为其海拔,图中的椭圆为这座”山”的等高线;约束条件 g(x,y)=0 为海拔为0的平面上的一条曲线。我们在这座”山”上乱逛,想要找到一个最高的点(最大与最小问题是相对的),但是我们的经纬度必须满足 g(x)=0 ,即投影到海拔为0的平面上的话必须与图中红色曲线一致。

显然,如果我们找到了一个最高点,必然有最高点所在的等高线 f(x,y)=d1 与约束曲线 g(x)=0 是相切的。否则,我必然还可以沿着红色的约束曲线继续走,找到一个更高的点(例如:图中红色曲线与登高线 f(x,y)=d2 相交)。用数学语言描述相切便意味着,在极值点,有: f(x)=λg(x) ,即两个函数在极值点的梯度向量是平行的。

这个时候我们引入拉格朗日函数: L(x,λ)=f(x)+λg(x) , 其中, λ 就是拉格朗日乘子,为一个未知常数。 在求该函数关于 x,λ 极值问题时有:

1oxL(x,λ)=f(x)λg(x)=02oλL(x,λ)=g(x)=0(2)

这意味着: 无约束条件下最小化拉格朗日函数 L(x,λ) 与有约束条件 g(x)=0 下原目标函数 f(x) 最小化的问题是一致的。求出令拉格朗日函数 L(x,λ) 最小的 (x,λ) 的值,便解出了原优化问题 (1) 的解,即我们将原优化问题 (1) 转换成了优化问题 (2)

minx,λL(x,λ)=f(x)+λg(x)(3)

只要解除了 (2) 中线性方程组的解,那么便能够得到原目标函数的极值了。

不等式约束条件下的最优化问题

等式约束下的最优化的问题只是热热身,真正麻烦却也重要的,是不等式约束下的最优化问题。考虑将 (1) 中的问题进行推广,对最优化问题加上不等式约束:

minxf(x)s.t.h(x)=0   g(x)0(4)

仍然考虑向量 x 为二维空间中的点的场景,图中阴影部分为g(x)<0区域,椭圆线为”盆地”的登高线, 不等式约束意味着我们只能在阴影区域找”盆地”的最低点。此时可能存在两种情况:

  1. “盆地“的中心在阴影部分区域,此时我们可以不用理会约束条件,直接求 f(x) 的极小值就行;
  2. “盆地”的中心在阴影部分外面,此时在我们所能找到的极值点,必然有 g(x)=0 曲线与极值点的登高线相切,否则必然能够往阴影区域继续找到一个海拔更低的点。并且该极小值点关于约束函数的梯度 g(x) 与关于目标函数的梯度 f(x) 方向必定是相反的(不相反却相切的情况,只能是第一种,但那种情况的切点并不是极小值) 。

总结上面的情况,给出不等式约束条件下的库恩-塔克条件为:

1oxL(x)=f(x)+λg(x)+uh(x)=0...2ouL(x)=h(x)=03oλL(x)=g(x)04oλ05oug(x)=0....g(x)=0,g(x),λ=0

对偶问题


http://chatgpt.dhexx.cn/article/djKbFOpt.shtml

相关文章

库恩塔克条件

KKT条件主要涉及凸优化问题&#xff0c;学习SVM的时候求解拉格朗日函数的对偶问题时&#xff0c;需要使用KKT条件来得到最终的。 1、对于无约束问题(unconstrained minimization): 1) 一阶必要条件为&#xff1a; 2) 二阶必要条件为&#xff1a; 即Hessian半正定 2、等式约束问…

卡罗需-库恩-塔克条件

卡罗需&#xff0d;库恩&#xff0d;塔克条件 维基百科&#xff0c;自由的百科全书 在数学中&#xff0c;卡罗需-库恩-塔克条件&#xff08;英文原名: Karush-Kuhn-Tucker Conditions常见别名: Kuhn-Tucker&#xff0c;KKT条件&#xff0c;Karush-Kuhn-Tucker最优化条件&#x…

直观理解KKT条件

直观理解KKT条件 等高线 从等高线讲起。如果我们要优化 f ( x , y ) x 2 y f(x,y)x^2y f(x,y)x2y这个函数&#xff0c;给定约束为&#xff0c; x 2 y 2 1 x^2y^21 x2y21&#xff0c;我们希望在满足约束的情况下使得f最大。也就是说&#xff0c;我们希望找到一个最“上方”…

机器学习中的数学基础 5

优化问题简介 最优化定义 最优化&#xff0c;是应用数学的一个分支。主要研究在特定情况下最大化或最小化某一特定函数或变量。 数学表示&#xff1a; Y Y Y 是 随机变量 X X X 的函数&#xff0c;求 y ^ f θ ( X ) \widehat{y} f_{\theta}(X) y ​fθ​(X) &#xff0…

微信小程序真机测试 Provisional headers are shown 问题解决办法

微信开发工具请求正常&#xff0c;真机调试出现 Provisional headers are shown 图片源自&#xff1a;https://blog.csdn.net/xyphf/article/details/90045286 网上大部分原因为ssl证书问题&#xff0c;使用以下2个ssl证书检测工具 1.https://www.myssl.cn/tools/check-serve…

JS提示框效果

提示框 js事件 //提示确认删除 <a href"javascript:if(confirm(确实要删除该内容吗?))locationhttp://www.google.com">弹出窗口</a> function tusi(txt, fun) {   $(.tusi).remove();    var div $(<div style"background: url(/images/…

图图片

示例图片啊

Sturts

Sturts是什么&#xff1f; Sturts是JSP模式2(MVC)基础上突出实现的一个框架&#xff0c;是使用JSPServlet组成&#xff1b; Sturts框架提供&#xff1a; 标记库&#xff1a;也没黑色记者可以控制&#xff1b;支持国际化处理如:JSP显示为中文&#xff0c;可以转换为英文等...;…

tupian

转载于:https://www.cnblogs.com/yanyiyi/p/8295315.html

Gwallet小百科 | 一文透析腾讯区块链技术

作为后互联网时代下的新产物,区块链技术有着巨大想象空间,依托可溯源、不可篡改、去中心化等特性,构建起技术与应用场景融合的新生态体系。 自2015年起,腾讯便开始关注区块链技术并进行自主研发,腾讯FIT的TrustSQL聚焦于底层开发平台的研发和定制化的区块链应用落地;腾讯…

Gerrit常见命令及最佳实践

概述 本文记录了笔者在使用Gerrit&#xff08;一种免费、开放源代码的代码审查软件&#xff09;过程中的一些微小的经验&#xff0c;在这里做个简单的分享。 克隆工程 git clone ssh://tusixx.xx.cn:29428/project-name 如果使用了Git代理&#xff0c;请将xx.xx.cn:29428换成代…

quart定时任务

在SSM项目里面使用quart实现定时任务每10秒插入一条数据,使用xml配置方式实现。 1.创建定时任务类 package com.tencent.tusi.test.quartzTest;import com.tencent.tusi.business.entity.TSystemUsers; import com.tencent.tusi.business.service.TSystemUsersService; impor…

腾讯安全携手北京方正公证处开启智慧司法之路,全面保护电子数据存证安全

4 月17 日,腾讯安全联合北京市方正公证处举办了网络战略合作暨领御区块链-北京方正公证取证平台上线发布会,宣布在“区块链+司法”领域建立合作,应用区块链技术深化电子数据存证服务。北京市方正公证处副主任杨和平、腾讯领御总经理申子熹、腾讯TUSI区块链安全实验室专家王强…

tutos

2010-10-08 这个软件有一个不好的感觉就是菜单比较灵活&#xff0c;对于刚使用的人来说就会感觉有些乱。 而且ui不够友好&#xff1b;图标比较少&#xff0c;不够直观。所以准备试一下dotproject&#xff0c;用了后发现dotproject在我当前使用的php5.3上根本不能启动&#xff0…

quart定时任务从数据库获取定时时间

在ssm项目里面实现定时任务从数据库获取定时时间 1.创建定时时间表 2.创建定时任务类 package com.tencent.tusi.test.quartzTest;import com.tencent.tusi.business.entity.TSystemUsers; import com.tencent.tusi.business.service.TSystemUsersService; import org.spring…