参考:知乎回答 - 通过山头形象描述

参考:马同学 - 如何理解拉格朗日乘子法?

参考: 马同学 - 如何理解拉格朗日乘子法和KKT条件?

参考:拉格朗日乘数 - Wikipedia


自己总结的规律

  • 梯度为0, 其实就是说明里面每一个参数的偏导数都为0.
  • 拉格朗日乘子法是对于等式约束.
  • KKT条件是针对不等式约束条件.

拉格朗日乘子法结论

  如果有个约束等式:

  

  只需解如下方程组:

  

KKT条件

  求如下的极值:

  

  通过解下面这个方程组来得到答案:

  

  这个方程组也就是所谓的KKT条件。
  进一步解释下方程组的各个项:

说明:  最难理解的是$\mu_j h_j = 0$, 
  • 根据左图, 此时的最小值在$f$函数的最小值点取得, 因此 $\mu_j=0$, 此时$h_j ≤0$
  • 根据右图, 此时的最小值在两者相切的地方取得, 因此 $\mu_j≥0$, 此时$h_j =0$
  

参考: 马同学博客~


按照相应的相切概念会得到下面的式子,即两者具有等比例的剃度值。

$$\nabla f(x,y)+\lambda \nabla g(x,y)=0 \tag{1}$$

如何上面的式子转为拉格朗日乘子法的一般形式,即

$$\mathcal{L}(x,y,\lambda)=f(x,y)+\lambda \cdot g(x,y) \tag{2}$$

并且是对于三个变量的偏导数为0,下面我从(1)到(2)的理解.

由(1)可得

$\nabla_x f(x,y)+\lambda \nabla_x g(x,y)=0$

$\nabla_y f(x,y)+\lambda \nabla_y g(x,y)=0$

$\nabla_x (f(x,y)+\lambda\nabla_x g(x,y))=\nabla_x\mathcal{L}(x,y,\lambda)=0 \tag{a}$

$\nabla_y (f(x,y)+\lambda\nabla_y g(x,y))=\nabla_y\mathcal{L}(x,y,\lambda)=0 \tag{b}$

而下面的式子等于0则限制了$g(x,y)=0$

$\nabla_\lambda\mathcal{L}(x,y,\lambda)=g(x,y)=0 \tag{c}$

也就是说明,(2)式在(a)(b)(c)三个式子下可以达到(1)式的效果.此时存在下面的表达式,所以等价,两者有一样的极值.

$$\mathcal{L}(x,y,\lambda)=f(x,y)$$

【365】拉格朗日乘子法与KKT条件说明的更多相关文章

  1. 拉格朗日乘子法与KKT条件 && SVM中为什么要用对偶问题

    参考链接: 拉格朗日乘子法和KKT条件 SVM为什么要从原始问题变为对偶问题来求解 为什么要用对偶问题 写在SVM之前——凸优化与对偶问题 1. 拉格朗日乘子法与KKT条件 2. SVM 为什么要从原 ...

  2. 关于拉格朗日乘子法与KKT条件

    关于拉格朗日乘子法与KKT条件 关于拉格朗日乘子法与KKT条件   目录 拉格朗日乘子法的数学基础 共轭函数 拉格朗日函数 拉格朗日对偶函数 目标函数最优值的下界 拉格朗日对偶函数与共轭函数的联系 拉 ...

  3. 【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

    目录 1 将有约束问题转化为无约束问题 1.1 拉格朗日法 1.1.1 KKT条件 1.1.2 拉格朗日法更新方程 1.1.3 凸优化问题下的拉格朗日法 1.2 罚函数法 2 对梯度算法进行修改,使其 ...

  4. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  5. 装载:关于拉格朗日乘子法与KKT条件

    作者:@wzyer 拉格朗日乘子法无疑是最优化理论中最重要的一个方法.但是现在网上并没有很好的完整介绍整个方法的文章.我这里尝试详细介绍一下这方面的有关问题,插入自己的一些理解,希望能够对大家有帮助. ...

  6. 约束优化方法之拉格朗日乘子法与KKT条件

    引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值:对于含有不等式约束的优化问题,可以转化为在满足 KKT ...

  7. 拉格朗日乘子法以及KKT条件

    拉格朗日乘子法是一种优化算法,主要用来解决约束优化问题.他的主要思想是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有n+k个变量的无约束优化问题. 其中,利用拉格朗日乘子法 ...

  8. 拉格朗日乘子法与KKT条件

    拉格朗日乘子法 \[min \quad f = 2x_1^2+3x_2^2+7x_3^2 \\s.t. \quad 2x_1+x_2 = 1 \\ \quad \quad \quad 2x_2+3x_ ...

  9. 机器学习——最优化问题:拉格朗日乘子法、KKT条件以及对偶问题

    1 前言 拉格朗日乘子法(Lagrange Multiplier)  和 KKT(Karush-Kuhn-Tucker)  条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等 ...

随机推荐

  1. Version 版本定义规则

    Version 定义规则:2.3.1012 主版本号: 表示项目的重大架构变更此版本号: 表示较大范围的功能添加和变化增量版本号: 一般表示重大bug修复2.3.1012snapshot   快照al ...

  2. 代码整洁之道Clean Code 读后感After Reading

    1.有意义的命名 名副其实,避免误导 做有意义的区分,简单明了2.函数 短小,职责单一 别重复自己3.注释 用代码来阐述 可怕的废话4.格式 垂直格式,垂直距离,空范围 横向格式,水平对齐,缩进5.错 ...

  3. webpack、npm、nginx常用命令

    webpack命令:webpack --watch 监听变动并自动打包,简写-wwebpack -p --progress --color 压缩混淆脚本webpack -d  生成映射文件,告知那些模 ...

  4. 03 Linux的目录结构与常见文件管理

    Linux目录结构 根文件系统rootfs用来实现整个文件的管理: 而Linux下的所有文件都需要通过根文件系统才能访问: FHS:Filesystem Hierarchy Standard文件层次化 ...

  5. CS229 6.10 Neurons Networks implements of softmax regression

    softmax可以看做只有输入和输出的Neurons Networks,如下图: 其参数数量为k*(n+1) ,但在本实现中没有加入截距项,所以参数为k*n的矩阵. 对损失函数J(θ)的形式有: 算法 ...

  6. 《linux性能及调优指南》 3.4 硬盘瓶颈

    翻译:Hank (http://blog.csdn.net/fireroll)版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明.原文名称:<Linux Performance an ...

  7. Struts2学习:struts.xml引入自定义的xml文件

    随着项目代码的增多,用一个struts.xml来管理所有功能模块的Action未免显得臃肿且结构不清晰,因此可以根据实际的功能划分,将各模块的Action放在自定义的xml文件中,再引入struts. ...

  8. Session原理

    详情移步:https://www.jianshu.com/p/2b7c10291aad

  9. SQL Server通过外部程序集注册正则表达式函数(CLR函数) [转]

    转自:http://blog.csdn.net/binguo168/article/details/76598581 1.下载dll程序集(通过C#编写的支持正则的方法),百度网盘下载: 1.1如果只 ...

  10. 使用spacedesk实现两台笔记本的双屏显示

    转自:https://blog.csdn.net/qq_28106269/article/details/79297132 共屏软件:https://spacedesk.net/