机器学习中的数学——拉格朗日乘子法(二):不等式约束与KKT条件
分类目录:《算法设计与分析》总目录
相关文章:
·拉格朗日乘子法(一):等式约束的拉格朗日乘子法
·拉格朗日乘子法(二):不等式约束与KKT条件
现在接着《拉格朗日乘子法(一):等式约束的拉格朗日乘子法》的思路考虑不等式约束g(x)≤0g(x)\leq0g(x)≤0的情景。如下图所示,此时最优点x∗x^*x∗或在g(x)<0g(x)<0g(x)<0的区域中,或在边界g(x)=0g(x)=0g(x)=0上。
- g(x)<0g(x)<0g(x)<0的情况:约束g(x)≤0g(x)\leq0g(x)≤0不起作用,可直接通过条件∇f(x)=0\nabla f(x)=0∇f(x)=0来获得最优点。这等价于将λ\lambdaλ置零然后对∇xL(x,λ)\nabla_xL(x,\lambda)∇xL(x,λ)置零得到最优点。
- g(x)=0g(x)=0g(x)=0的情况:类似于《拉格朗日乘子法(一):等式约束的拉格朗日乘子法》中等式约束的分析,但需注意的是,此时梯度∇g(x∗)\nabla g(x^*)∇g(x∗)的方向和梯度∇f(x∗)\nabla f(x^*)∇f(x∗)的方向必须相反,即存在常数λ>0\lambda>0λ>0使得∇f(x∗)+λ∇g(x∗)=0\nabla f(x^*)+\lambda\nabla g(x^*)=0∇f(x∗)+λ∇g(x∗)=0。
整合这两种情形,必满足入λg(x)=0\lambda g(x)=0λg(x)=0。因此在约束g(x)≤0g(x)\leq0g(x)≤0下最小化f(x)f(x)f(x),可转化为在如下约束下最小化式的拉格朗日函数:
{g(x)≤0λ>0μjgj(x)=0\left\{ \begin{aligned} g(x)&\leq 0\\ \lambda&>0\\ \mu_jg_j(x)&=0 \end{aligned} \right.⎩⎪⎨⎪⎧g(x)λμjgj(x)≤0>0=0
上式称为Karush-Kuhn-Tucker(KKT)条件。上述做法可推广到多个约束。考虑具有mmm个等式约束和nnn个不等式约束:
minxf(x)s.t.hi(x)=0,i=1,2,⋯,mgj(x)≤0,j=1,2,⋯,n\begin{aligned} \min_x&\quad f(x)\\ \text{s.t.}&\quad h_i(x)=0\qquad ,i=1,2,\cdots,m\\ &\quad g_j(x)\leq0\qquad ,j=1,2,\cdots,n\\ \end{aligned}xmins.t.f(x)hi(x)=0,i=1,2,⋯,mgj(x)≤0,j=1,2,⋯,n
引入拉格朗日乘子λ=(λ1,λ2,⋯,λm)T\lambda=(\lambda_1, \lambda_2, \cdots, \lambda_m)^Tλ=(λ1,λ2,⋯,λm)T和μ=(μ1,μ2,⋯,μn)T\mu=(\mu_1, \mu_2, \cdots,\mu_n)^Tμ=(μ1,μ2,⋯,μn)T,相应的拉格朗日函数为:
L(x,λ,μ)=f(x)+∑i=1mλihi(x)+∑j=1nμjgj(x)L(x, \lambda, \mu)=f(x)+\sum_{i=1}^m\lambda_ih_i(x)+\sum_{j=1}^n\mu_jg_j(x)L(x,λ,μ)=f(x)+i=1∑mλihi(x)+j=1∑nμjgj(x)由不等式约束引入的KKT条件:
{∇XL(x,λ,μ)=∇f+λi∇hi+μj∇gj=0hi(x)=0gj(x)≤0μj≥0μjgj(x)=0\left\{ \begin{aligned} \nabla_X L(x,\lambda, \mu)&=\nabla f+\lambda_i\nabla h_i+\mu_j\nabla g_j=0\\ h_i(x)&=0\\ g_j(x)&\leq 0\\ \mu_j&\geq0\\ \mu_jg_j(x)&=0 \end{aligned} \right.⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∇XL(x,λ,μ)hi(x)gj(x)μjμjgj(x)=∇f+λi∇hi+μj∇gj=0=0≤0≥0=0
即可求解。
机器学习中的数学——拉格朗日乘子法(二):不等式约束与KKT条件相关推荐
- 机器学习中的数学——拉格朗日乘子法(一):等式约束的拉格朗日乘子法
分类目录:<机器学习中的数学>总目录 相关文章: ·拉格朗日乘子法(一):等式约束的拉格朗日乘子法 ·拉格朗日乘子法(二):不等式约束与KKT条件 拉格朗日乘子法是一种寻找多元函数在一组约 ...
- 【数学】拉格朗日乘子法(Lagrange Multiplier) 和KKT条件理解
转载 目录 动机 简介 一. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件 (a) 拉格朗日乘子法(Lagrange Multiplier) (b) KKT条件 二. 为什么 ...
- 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...
- 求解最优化问题的方法:拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
- 【精简推导】支持向量机(拉格朗日乘子法、对偶函数、KKT条件)
支持向量机,就是通过找出边际最大的决策边界,来对数据进行分类的分类器.因此,支持向量分类器又叫做最大边际分类器. (疯狂暗示:这是一个最优化问题啊~) 直接上目标求解函数: 这个式子是支持向量机基本形 ...
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件(转)
关于鞍点的定义可以参考论文 <鞍点定理在Lagrange乘数法上的应用> 下面这篇文章的重点是是提到了鞍点 在学习之前,先说一些题外话,由于博主学习模式识别没多久,所以可能对许多问题还没有 ...
- 拉格朗日乘子法(Lagrangian Multiplier Method)和KKT条件
设目标函数f(x),不等式约束约束为g(x),等式约束为h(x),那么可以将优化问题描述如下 minf(X)s.t.hj(X)=0j=1,2,...,pgk(X)≤0k=1,2,...q\begin ...
- 拉格朗日乘子法解决带约束的极值问题
拉格朗日乘子法解决带约束的极值问题 1. 拉格朗日乘子法简介 2. Python实现小栗子 2.1 小栗子1:等式约束下的拉格朗日方程求解 2.2 小栗子2:给定一个椭球,求其内接长方体的最大体积 2 ...
最新文章
- Spring Boot注解大全,一键收藏了!
- @ControllerAdvice注解(全局异常捕获)
- 2001年的FLTK设置教程
- Windows下部署最新版青龙、诺兰、傻妞入门保姆级教程
- AT24C0X I2C通信原理
- php调用python pkl_Python Pickle的任意代码执行漏洞实践和Payload构造
- 利用SQL05特性删除表中重复数据
- 内存经销商穷困潦倒 七元午饭都赊账
- 安装django库 指定2.0版本
- 吉日嘎拉DotNet.BusinessV4.2中的一处bug,及我的修复和扩展
- sql declare用法_SQL语句的优化分析
- 物联网卡就是流量卡 这说法正确吗
- 更改session bean的JNDI名称
- mbedtls基础及其应用
- Windows Installations
- 寒假集训难题(四)QWQ和神奇的传送器nefu1608
- 接口测试简介及用例设计思路
- 计算机二级c语言程序设计改错,2017年计算机二级C语言上机改错题考点总结
- SSAS 系列01- DAX公式常用公式
- 第一次使用acme.sh 手动生成证书(DNS手动模式)
热门文章
- [Photoshope]Photoshop修照片之面部光洁篇
- java获取程序编译时间戳_JAVA获取时间戳
- 综述:3D目标检测多模态融合算法
- NC65一些方法(一)
- 如何在离职前快速重置电脑?
- 作为主播应该如何挑选一款直播美颜SDK?
- between and 效率_Excel函数公式大全之逻辑函数中的and函数综合应用判断员工状况...
- 芯片、模组、开发板的区别与联系-结合ESP32浅谈
- 后缀数组 java实现_后缀数组模板 - java开发指南博客 【转载】 - ITeye博客
- MyBatis:缓存机制详解