目录

  • 约束有否有效的问题
  • 求解
  • KKT条件

约束有否有效的问题

  • 在KKT条件的诸多大佬的解释中,都有一个关于约束是否有效的讨论,然而大多数人都没有讲清楚,什么是所谓的约束是否有效,下面我想先针对这个问题进行一个解释。
  • 首先给出不等式约束条件,以及目标。
  • 我们称符合g(x)<=0的区域为约束域,称f(x)的取值区域为目标域
  • 然后下图中,左图是约束无效,右图是约束有效的两种情况,红色的是约束域,蓝色等高线是目标域

    先看左图,当目标域最小值点(即某点使得f(x)取到最小值,注意,不是极小值,而是局部最小值)落到红色约束域中的时候就意味着红色约束域的约束效果是无效的。 为什么,因为即便不存在你这个红色约束域的约束条件,我仅仅对f(x)函数求最小也同样是得到左图中蓝色的目标域最小值点 且天然地符合了约束条件,那你的约束条件还有什么用呢?那请问,当什么时候约束条件有用呢?
  • 举个例子,

    请看上图,一个人拉着一只狗,假设人不动,人站的位置就是上图红色约束域的中心位置。而你就是那条被拴着的狗,你被一根狗绳约束着,你只能取得半径假设为5米内的食物,而食物的坐标位置就是目标域局部最小值点(切记!是最小值,不是极小值)倘若食物距离你5米以内,你觉得这个绳子还有约束力嘛? 显然没有,这种情况就是左图的情况。那假如食物距离你10米,这条狗也就是你肯定会沿着直线方向去尽可能的接近食物,但即便如此,也够不到食物,只能使得自己与食物的距离尽可能的小,而f(x)代表是就是你这条狗与食物的距离,你想啊,本来没有狗绳的话,你就能直接吃到食物了(即到达目标域局部最小值点,此时f(x)很完美,达到了最小值0),然而有了狗绳,你只能望食兴叹(此时,你到达目标域某点,此点是f(x)尽可能小的位置,称为f(x)在这个约束下取到的最小值点,是另一种意义上的极小值点,想象一下你被约束的样子,使劲狗刨也无法接近目标半步,是这种意义上的极小值点),这种情况对应右图。
  • 上面的解释足够清楚了吧!现在你发现什么问题呢?当约束无效的时候,你没有被狗绳约束到,你在半径5m的约束域的内部,而约束无有效的时候,你尽力挣扎,不停狗刨,所以你在半径5m的约束域的边界。见下图:

    换句话说,取到f(x)的局部最小值时若g(x)<0,则表示约束无效,反之若g(x)=0,则约束有效,正是因为这两种情况同时存在,所以才有了KKT条件。

求解

  • 现在我们不妨将问题进一步拓展,同时包含等式约束和不等式约束:
  • 然后是对应的拉格朗日:

    解释公式:
    前半部分是等式约束的拉格朗日公式,不用解释,我们重点看一下后面那个β∗g(x)β*g(x)β∗g(x),看到上面后半部分公式同时联系我上一篇文章对于拉格朗日乘数法的解释的话,你应该能得到下面的公式:
    ▽(f(x)+αh(x))=0▽(f(x)+αh(x))=0▽(f(x)+αh(x))=0和▽(f(x)+βg(x))=0▽(f(x)+βg(x))=0▽(f(x)+βg(x))=0,其中α取非负数,因为等式约束下,梯度的方向可以同向可以反向,只要在一条直线上就好,只要平行就好。所以α仅仅是一个伸缩量。
    β就不同了!,请看下图!

    你能标出约束域和目标域在目标函数f(x)取到局部最小值的那个点的梯度方向嘛,如果不能,赶紧去补一补梯度的知识!!!!附上链接:https://blog.csdn.net/whu_student/article/details/77918020
    我给你标出来吧!

    如图,黑色点是目标函数f(x)取到局部最小值的那个点,也就是你被狗绳拴住的时候尽可能靠近深蓝色食物的地方,红色箭头是约束函数g(x)在该点的梯度,蓝色箭头则是目标函数f(x)在该点的梯度,不懂梯度方向怎么标记的要看上面的链接哦~。
    由此我们得出−▽f(x)=β▽g(x)且β>0-▽f(x)=β▽g(x)且β>0−▽f(x)=β▽g(x)且β>0,对吧!此时是g(x)=0的时候,狗吃不到食物哦,β肯定是>=0的,否则梯度方向就不对了!~
    那有人可能会说了,β此时取0可以吗,我感觉也可以,但是,这种情况不是上面的任何一种情况,因为倘若此时β取0,则意味着▽f(x)=0,也就是说,是对应这么一种情况,我手绘一下:

    这种情况也是存在的,不过你想啊,上面这种情况对应β=0,同时你感觉一下, 是不是还是约束无效的情况?是的!所以其实可以和左图的情况认为是一种情况,只不过这是一种特殊的左图情况。我们不把这种情况纳入讨论,所以依然认为在右图的情况下β>0,不过我们要清楚有这么一种情况,这是对于数学严谨性的尊重。
    同时,我还想解释一下▽f(x)=0的情况,限于个人绘图能力,请大家想象一下一个xyz坐标系,f(x)是纵轴,x和y是变量,然后f(x)的形状是一个平底锅,而g(x)假如就是一个倒三角锥吧,然后最底部最尖端正好与平底锅中间某点重合,这个点的▽f(x)是0,而且满足在g(x)边界,即g(x)=0。这就是上面的情况。
    好了这不是重点(g(x)=0时β=0的情况不是重点讲解的内容,我上面忍不住提了一嘴),我们继续往下进行,既然有了−▽f(x)=β▽g(x)且β>0-▽f(x)=β▽g(x)且β>0−▽f(x)=β▽g(x)且β>0这个式子,我们就合并公式吧。其实你也可以看出来,当g(x)=0的时候,其实就变成了等式约束的情况,所以为何不能和h(x)一起用拉格朗日乘数法呢?所以合并公式!
    将它们合并到一起,就是▽(2∗f(x)+αh(x)+βg(x))=0▽(2*f(x)+αh(x)+βg(x))=0▽(2∗f(x)+αh(x)+βg(x))=0,方程两边同除以2,不会影响α和β的符号。所以得到下面公式:
    ▽(f(x)+αh(x)+βg(x))=0▽(f(x)+αh(x)+βg(x))=0▽(f(x)+αh(x)+βg(x))=0,所以得到:

KKT条件

  • 下面是KKT条件,我先列出来,然后一一解释:

    (1)不用解释了吧,偏导数=0,这是拉格朗日乘数法的标准操作,这个例子中只有x一个变量,如果有多个变量的话也要一起偏导数=0哦!
    (3、4)原始约束条件,不用多说。
    (2、5)这两个我要放到一起解释,记得嘛,g(x)=0的时候,由于梯度方向的约束以及f(x)的梯度此时不=0,所以β>0,此时2、5条件同时满足;那假如是约束无效的情况,即g(x)<0呢,此时,由于约束彻底无效了,就不要管这个g(x)了,它不配在拉格朗日乘数法对应的公式中占有一席之地了,所以此时对应β=0!此时你发现,2、5条件依然同时满足。这就是其精妙之处!因为你不知道问题的g(x)约束到底有没有效果,所以你要包含两种情况,而2、5公式就将其巧妙的包含在了一起。
    太妙了,又是被数学折服的一天~

SVM(二):KKT条件最直白的解释相关推荐

  1. SVM中KKT条件介绍

    KKT条件介绍 最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础.于是翻了很多大神的博客把容易理解的内容记载到这篇博客中.因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多 ...

  2. kkt条件的matlab仿真,请教关于SVM中KKT条件的推导

    KKT条件第一项是说最优点必须满足所有等式及不等式限制条件,也就是说最优点必须是一个可行解,这一点自然是毋庸置疑的.第二项表明在最优点 x*, ∇f 必須是 ∇hj 和 ∇gk 的线性組合,和都叫作拉 ...

  3. SVM中拉格朗日乘子法、KKT条件、对偶问题详解

    SVM中拉格朗日乘子法.KKT条件.对偶问题详解 创作目的 1.SVM回顾 2.拉格朗日乘子法 3.KKT条件 4.对偶问题 强对偶性证明 总结 创作目的 我是机器学习初学者,目前正在上机器学习课,老 ...

  4. 个人总结 :SVM 与 拉格朗日函数、对偶问题 和 KKT条件 以及 SMO算法

    提到SVM,可能首先想到的是令人头大的公式推导,通过确定思想,公式等式转化,拉格朗日函数,求梯度,约束变换,KKT.SMO...最后终于得到我们的最优解.而在这其中,不免作为核心的就是拉格朗日函数以及 ...

  5. SVM支持向量机-手写笔记(超详细:拉格朗日乘数法、KKT条件、对偶性质、最优化、合页损失、核函数...)

    SVM支持向量机-手写笔记 作者:某丁 日期:2021.05.21 写完了,发现想要真正理解SVM还需要继续深入学习,以上所写只不过是冰山一角,我的管中窥豹而已. 参考 [1] 一文搞懂支持向量机(S ...

  6. 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件

    推荐阅读:对偶问题,KKT条件 关键词:最大间隔:支持向量:对偶问题:KKT条件:SMO算法 6.1 间隔与支持向量 关键词:最大间隔:支持向量. 支持向量机(Support Vector Machi ...

  7. 约束优化问题的一阶条件(KKT条件)、互补松弛条件、拉格朗日对偶问题、SVM

    简要概述 考虑约束优化问题时,可将等式拆解转化为不等式,方便求解,一阶时为KKT条件 KKT条件应用在SVM中 详细 ------ 链接: https://zhuanlan.zhihu.com/p/5 ...

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

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

  9. SVM——(三)对偶性和KKT条件(Lagrange duality and KKT condition)

    之前说到过拉格朗日乘数法以及推导过程,那么今天要说的就是拉格朗日对偶性以及KKT条件 1.Lagrange multipliers 一句话说,拉格朗日乘数法就是用来解决条件极值的一个方法,且约束条件都 ...

最新文章

  1. Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
  2. ROS学习(八):ROS URDF-transmission
  3. Mysq表的创建和l数据类型
  4. python绘制dotplot
  5. [Winodows Phone 7控件详解]控件拾遗
  6. EditPlus 3编译运行设置
  7. 基于SSM框架的学生学籍管理系统(源码及具体讲解)
  8. 那人立在侧边 水浒传
  9. java得到某时间前2小时的时间
  10. 阿里又上美国“售假黑名单” 是被故意抹黑了吗
  11. 分销小程序功能有哪些?如何使用分销小程序实现裂变卖货?
  12. CSS 样式属性大全
  13. IDEA如何多次启动同一个程序
  14. 解决更新页面数据回显时时间不匹配问题:The specified value “Fri Nov 05 08:00:00 CST 2021“ does not conform to the requir
  15. 社团课Day2-数据解析:Xpath、BeautifulSoup、re正则表达
  16. python 3.8安装pillow包报错
  17. 移动端调试神器——vconsole
  18. zeromq源代码分析2------线/进程间通信方式
  19. RYU+mininet——mininet
  20. Unity运行中修改物体的颜色

热门文章

  1. oppor17刷鸿蒙系统,大家好,oppor17手机好吗?
  2. HTTP改为HTTPS操作指南
  3. 基于SpringBoot的体育场馆运营管理系统的设计与实现
  4. 荣耀v40轻奢版鸿蒙系统,荣耀V40轻奢版:另一种“性价比”
  5. python 学习方向和相关知识点
  6. java prepend和append_jQuery 追加元素的方法如append、prepend和队列方法如push,unshift
  7. MYSQL常用命令大全(导入导出、创建、单多表查询(超详细)、授权)
  8. 微信的“老化”,陌生交友小程序带来的“第二春”......
  9. 美容院如何设计管理会员卡?
  10. 5月6阴阳师服务器维护,阴阳师6.23维护到几点?6月23日更新维护内容一览