KKT(Karush-Kuhn-Tucher)条件

在优化理论中,KKT条件是非线性规划(nonlinear programming)最佳解的必要条件。KKT条件将lagrange乘数法(Lagrange multipliers)中的等式约束优化问题推广至不等式约束。本文从Lagrange乘数法推导KKT条件。

给定一个目标函数 f:Rn→R f:\mathbb{R}^{n}\rightarrow \mathbb{R},我们希望找到 x∈Rn x\in \mathbb{R}^{n} ,在满足约束条件 g(x)=0 g\left ( x \right )=0的前提下,使得 f(x) f\left(x\right)有最小值。这个约束优化问题如下:

minimize f(x) f\left(x\right)
subject to g(x)=0 g\left ( x \right )=0

为方便分析,假设 f f对gg是连续可导函数。Lagrange乘数法是含等式约束条件优化问题的典型解法。定义Lagrangian函数

L(x,λ)=f(x)+λg(x) L\left ( x,\lambda \right )=f\left ( x \right )+\lambda g\left ( x \right )

其中 λ \lambda为Lagrange乘数。Lagrange乘数法将原来的约束优化问题转化成等价的非约束问题

minimize x,λL(x,λ) \textrm{minimize }_{x,\lambda }L\left ( x,\lambda \right )

优化必要条件:

▽xL=∂L∂x=▽f+λg(x)=0 \bigtriangledown _{x}L=\frac{\partial L}{\partial x}=\bigtriangledown{f}+\lambda g\left ( x \right )=0
▽λL=∂L∂λ=g(x)=0 \bigtriangledown _{\lambda }L=\frac{\partial L}{\partial \lambda }=g\left ( x \right )=0

其中第一个为stationary equation,第二个为约束条件。通过求解上述方程,可得 L(x,λ) L\left ( x,\lambda \right )的驻点(stationary point) x∗ x^{\ast }以及 λ \lambda的值(正负数皆可能)。

接下来我们将约束等式 g(x)=0 g\left ( x \right )=0推广为 g(x)⩽0 g\left ( x \right )\leqslant 0。优化问题如下:

minimize f(x) f\left(x\right)
subject to g(x)⩽0 g\left ( x \right )\leqslant0

约束不等式 g(x)⩽0 g\left ( x \right )\leqslant 0称为primal feasibility, 由此定义可行域(feasible region) K={x∈Rn∣g(x)⩽0} K=\left \{ x\in \mathbb{R}^{n}\mid g\left ( x \right ) \leqslant 0\right \}。假设 x∗ x^{\ast }为满足约束条件的最佳解,分两种情况讨论:(1) g(x∗)⩽0 g\left ( x ^{\ast }\right )\leqslant 0,最佳解位于 K K的内部,称为interior solution,这时约束条件是无效的;(2)g(x∗)=0g\left ( x ^{\ast }\right )= 0,最佳解落在 K K的边界,称为boundary solution,此时约束条件是有效的。这两种情况的最佳解具有不同的必要条件。

  • 内部解:在约束条件无效的情形下, g(x)g\left ( x \right )不起作用,约束优化问题退化为无约束优化问题,因此驻点 x∗ x^{\ast }满足 ▽f=0 \bigtriangledown{f}=0且 λ=0 \lambda =0。

    • 边界解:在约束条件有效的情形下,约束不等式变成等式 g(x)=0 g\left ( x \right )=0,这与前面Lagrange乘数法的情况相同。我们可以证明驻点 x∗ x^{\ast }发生在 ▽f∈span{▽g} \bigtriangledown{f}\in span \left \{\bigtriangledown g \right \},换句话说,存在 λ \lambda 使得 ▽f=−λg(x) \bigtriangledown{f} =- \lambda g\left ( x \right ),但这里 λ \lambda 的正负号是尤其意义的。因为我们希望最小化 f f,梯度▽f\bigtriangledown{f} 应该指向可行域 K K的内部,但▽g\bigtriangledown{g} 指向可行域 K K的外部(即g(x)>0 g\left ( x \right )>0的区域),因此 λ⩾0 \lambda \geqslant 0称为对偶可行性
    • 更直观的图解来自https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions 及 http://blog.csdn.net/johnnyconstantine/article/details/46335763:

    • 不论是内部解还是边界解, λg(x)=0 \lambda g\left ( x \right )=0恒成立,称为complementary slckness。综上,最佳解的必要条件包括lagrangian函数 L(x,λ) L\left ( x,\lambda \right )的定常方程式原始可行性对偶可行性,以及complementary slckness

      ▽xL=▽f+λg(x)=0 \bigtriangledown _{x}L=\bigtriangledown{f}+\lambda g\left ( x \right )=0
      g(x)⩽0 g\left ( x \right )\leqslant 0
      λ⩾0 \lambda \geqslant 0
      λg(x)=0 \lambda g\left ( x \right )=0

      以上就是KKT条件。如果我们要做大化 f(x) f\left ( x \right )且受限于 g(x)⩽0 g\left ( x \right )\leqslant 0,那么对偶可行性要改成 λ⩽0 \lambda \leqslant 0

      考虑标准约束优化问题

      minimize f(x) f\left(x\right)
      subject to g(x)=0 g\left ( x \right )=0, j=1,...,m j=1,...,m
            hk(x)⩽0 h_{k}\left ( x \right )\leqslant0, k=1,...,p k=1,...,p

      定义拉格朗日函数

      L(x,{λj},{μk})=f(x)+∑mj=1λjgj(x)+∑pk=1μkhk(x) L\left ( x,\left \{ \lambda _{j} \right \},\left \{ \mu _ {k}\right \} \right )=f\left ( x \right )+\sum_{j=1}^{m}\lambda _{j}g_{j}\left ( x \right )+\sum_{k=1}^{p}\mu _{k}h_{k}\left ( x \right )

      其中 λj \lambda _{j}是对应 gj(x)=0 g_{j}\left ( x \right )=0的拉格朗日乘数, μk \mu _{k}是对应 hk(x)⩽0 h_{k}\left ( x \right )\leqslant 0的拉格朗日乘数,KKT条件

      ▽xL=0 \bigtriangledown _{x}L=0
      gj=0,j=1,...,m g_{j}=0, j=1,...,m
      hk(x)⩽0 h_{k}\left ( x \right )\leqslant 0
      μk⩾0 \mu _{k}\geqslant 0
      μkhk(x)=0,k=1,...,p \mu _{k}h_{k}\left ( x \right )=0, k=1,...,p

      **感谢**johnnyconstantine,ccjou

KKT(Karush-Kuhn-Tucher)条件相关推荐

  1. KKT条件(Karush–Kuhn–Tucker conditions)

    在约束最优化问题中,常常利用有条件的拉格朗日乘子法,进而一步步推导KKT条件. 1.最优化条件和下降搜索 给定一个多变量可微函数 ,是的局部最小值,这时有 如果,就存在使得 (对这边做个解释:因为是局 ...

  2. KKT condition --- Karush–Kuhn–Tucker conditions

    有关KKT条件,一直都看的云里雾里,但是还是很好奇其内在的逻辑,最后花时间整理了一下,有不足之处请指正. 有关原问题和对偶问题的转化知乎回答解释的更详细. 正文开始之前,介绍一些概念 Duality, ...

  3. 从拉格朗日乘子法到SVM

    前言 本文主要是讲了如何构建SVM的模型,并利用KKT条件构造其对偶型,从而求解问题,并讲述了SVM的硬间隔,软间隔和核函数三个境界.主要参考了周志华的<机器学习>,并在其中补充了自己的想 ...

  4. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

  5. 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)

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

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

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

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

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

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

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

  9. 拉格朗日乘数法和KKT条件的直观解释

    拉格朗日乘数法和KKT条件的直观解释 标签(空格分隔): 机器学习 linbin 2018-05-10 Abstract 在SVM的推导中,最优化问题是其中的核心,这里我们简单介绍下最优化问题,特别是 ...

  10. 拉格朗日乘子法、KKT条件、拉格朗日对偶性

    拉格朗日乘子法.KKT条件.拉格朗日对偶性 转载于http://blog.csdn.net/sinat_17496535/article/details/52103852 笔记主要来源于维基百科和&l ...

最新文章

  1. vue面向切面_vue:在路由跳转中使用拦截器
  2. angularjs html 缓存,如何删除使用AngularJS的HTML中的浏览器缓存?
  3. WPF Image Source 设置相对路径图片
  4. 最狠的钉子户手机!最后一款已战斗5年,还能继续...
  5. Linux kernel kfifo分析【转】
  6. JavaScript浏览器对象(BOM)中有关设备、浏览器屏幕高度和宽度的API介绍
  7. SpringBoot系列(7):SpringBoot启动流程源码分析()
  8. EGE绘图之四 Gif动图播放
  9. 球体积公式推导(积分)
  10. TEMPO ESTIMATION近几年文章总结
  11. 自学习策略和Lévy飞行的正弦余弦优化算法
  12. 一只喵的西行记-9 喵林英雄虹猫梦
  13. magicmatch java_签名图片一键批量生成 使用Java的Webmagic爬虫实现
  14. PTA 6 家庭土地管理 分数 10
  15. java 图片 rgb_简单的java图片处理——如何用Java读出一张图片的RGB值?
  16. 论文笔记_Optimal Brain Damage
  17. expdp导出时候遇到的ORA-39373问题
  18. Failed to connect to github.com port 443 after 21035 ms: Timed out
  19. Android进入本地文件管理器及不同文件查看
  20. Goland Unresolved dependency问题解决

热门文章

  1. 什么是响应式设计?如何实现?
  2. PostgreSQL 二进制安装
  3. 【JAVA】 多态-上溯造型
  4. ts中any 、unKnown的区别
  5. 工作中你应该知道的常识(深度好文)
  6. html的img标签repeat,border-image-repeat属性怎么用
  7. 如何把删除的文件复原?恢复数据其实也不难
  8. 字节跳动二号人物——山西人张利东
  9. Leetcode 977.有序数组的平方
  10. 鹿鼎记 / Royal Tramp (1992)