分类目录:《算法设计与分析》总目录
相关文章:
·拉格朗日乘子法(一):等式约束的拉格朗日乘子法
·拉格朗日乘子法(二):不等式约束与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)∇x​L(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)λμj​gj​(x)​≤0>0=0​
    上式称为Karush-Kuhn-Tucker(KKT)条件。上述做法可推广到多个约束。考虑具有mmm个等式约束和nnn个不等式约束:
    min⁡xf(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}xmin​s.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​λi​hi​(x)+j=1∑n​μj​gj​(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.⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​∇X​L(x,λ,μ)hi​(x)gj​(x)μj​μj​gj​(x)​=∇f+λi​∇hi​+μj​∇gj​=0=0≤0≥0=0​

即可求解。

机器学习中的数学——拉格朗日乘子法(二):不等式约束与KKT条件相关推荐

  1. 机器学习中的数学——拉格朗日乘子法(一):等式约束的拉格朗日乘子法

    分类目录:<机器学习中的数学>总目录 相关文章: ·拉格朗日乘子法(一):等式约束的拉格朗日乘子法 ·拉格朗日乘子法(二):不等式约束与KKT条件 拉格朗日乘子法是一种寻找多元函数在一组约 ...

  2. 【数学】拉格朗日乘子法(Lagrange Multiplier) 和KKT条件理解

    转载 目录 动机 简介 一. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件 (a) 拉格朗日乘子法(Lagrange Multiplier) (b) KKT条件 二. 为什么 ...

  3. 拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

  4. 求解最优化问题的方法:拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

  5. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

  6. 【精简推导】支持向量机(拉格朗日乘子法、对偶函数、KKT条件)

    支持向量机,就是通过找出边际最大的决策边界,来对数据进行分类的分类器.因此,支持向量分类器又叫做最大边际分类器. (疯狂暗示:这是一个最优化问题啊~) 直接上目标求解函数: 这个式子是支持向量机基本形 ...

  7. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件(转)

    关于鞍点的定义可以参考论文 <鞍点定理在Lagrange乘数法上的应用> 下面这篇文章的重点是是提到了鞍点 在学习之前,先说一些题外话,由于博主学习模式识别没多久,所以可能对许多问题还没有 ...

  8. 拉格朗日乘子法(Lagrangian Multiplier Method)和KKT条件

    设目标函数f(x),不等式约束约束为g(x),等式约束为h(x),那么可以将优化问题描述如下 min⁡f(X)s.t.hj(X)=0j=1,2,...,pgk(X)≤0k=1,2,...q\begin ...

  9. 拉格朗日乘子法解决带约束的极值问题

    拉格朗日乘子法解决带约束的极值问题 1. 拉格朗日乘子法简介 2. Python实现小栗子 2.1 小栗子1:等式约束下的拉格朗日方程求解 2.2 小栗子2:给定一个椭球,求其内接长方体的最大体积 2 ...

最新文章

  1. Spring Boot注解大全,一键收藏了!
  2. @ControllerAdvice注解(全局异常捕获)
  3. 2001年的FLTK设置教程
  4. Windows下部署最新版青龙、诺兰、傻妞入门保姆级教程
  5. AT24C0X I2C通信原理
  6. php调用python pkl_Python Pickle的任意代码执行漏洞实践和Payload构造
  7. 利用SQL05特性删除表中重复数据
  8. 内存经销商穷困潦倒 七元午饭都赊账
  9. 安装django库 指定2.0版本
  10. 吉日嘎拉DotNet.BusinessV4.2中的一处bug,及我的修复和扩展
  11. sql declare用法_SQL语句的优化分析
  12. 物联网卡就是流量卡 这说法正确吗
  13. 更改session bean的JNDI名称
  14. mbedtls基础及其应用
  15. Windows Installations
  16. 寒假集训难题(四)QWQ和神奇的传送器nefu1608
  17. 接口测试简介及用例设计思路
  18. 计算机二级c语言程序设计改错,2017年计算机二级C语言上机改错题考点总结
  19. SSAS 系列01- DAX公式常用公式
  20. 第一次使用acme.sh 手动生成证书(DNS手动模式)

热门文章

  1. [Photoshope]Photoshop修照片之面部光洁篇
  2. java获取程序编译时间戳_JAVA获取时间戳
  3. 综述:3D目标检测多模态融合算法
  4. NC65一些方法(一)
  5. 如何在离职前快速重置电脑?
  6. 作为主播应该如何挑选一款直播美颜SDK?
  7. between and 效率_Excel函数公式大全之逻辑函数中的and函数综合应用判断员工状况...
  8. 芯片、模组、开发板的区别与联系-结合ESP32浅谈
  9. 后缀数组 java实现_后缀数组模板 - java开发指南博客 【转载】 - ITeye博客
  10. MyBatis:缓存机制详解