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

标签(空格分隔): 机器学习

linbin 2018-05-10


Abstract

在SVM的推导中,最优化问题是其中的核心,这里我们简单介绍下最优化问题,特别是带有约束的最优化问题,并且引入拉格朗日乘数法和广义拉格朗日乘数法,介绍并且直观解释了KKT条件,用于解决带约束的最优化问题。

最优化问题

我们在高中,包括在高数中都会经常遇到求解一个函数的最小值,最大值之类的问题,这类问题就是属于最优化问题。比如给出下列一个不带有约束的最优化问题:
(1.1)
其中的

3x2+4x+5 3 x 2 + 4 x + 5

3{x^2}+4x+5我们称为目标函数(objective function)。这样的问题,直接利用罗尔定理(Rolle’s theorem)求出其鞍点,又因为其为凸函数而且可行域是整个R,求出的鞍点便是最值点,这个是对于无约束最优化问题的解题套路。
如果问题带有约束条件,那么就变得不一样了,如:
(1.2)

因为此时的约束条件是仿射函数(affine function),所以可以利用换元法将x表示为y的函数,从而将目标函数变为无约束的形式,然后利用罗尔定理便可以求出最值点了。
然而如果约束条件一般化为g(x,y)=c,那么x就不一定可以用其他变量表示出来了,这个时候就要利用拉格朗日乘数法(Lagrange multipliers )了。

拉格朗日乘数法(Lagrange multipliers)

我们先一般化一个二元最优化问题为(2.1)形式:

(2.1)

将目标函数f(x,y)和等式约束条件g(x,y)=c画出来就如下图所示:

其中的f(x,y)虚线为等高线,而红线为g(x,y)=c这个约束函数曲线与f(x,y)的交点的连线在x−y平面的映射。其中,假设有d3>d2>d1, d1点为最小值点(最优值点)。从直观上可以发现,在g(x,y)=c与f(x,y)的非最优化交点A,B,C,D上,其f(x,y)和g(x,y)的法线方向并不是共线的,注意,这个相当关键,因为如果不是共线的,说明g(x,y)=c与f(x,y)的交点中,还存在可以取得更小值的点存在。对于A点来说,B点就是更为小的存在。因此,我们从直觉上推论出只有当g(x,y)=c与f(x,y)的法线共线时,才是最小值点的候选点(鞍点)。推论到多元变量的问题的时候,法线便用梯度表示。于是,我们有原问题取得最优值的必要条件:

(2.2)其中的λ表示两个梯度共线。
可以简单的变形为

让我们去掉梯度算子,得出

这个时候λ取个负号也是不影响的,所以式子(2.4)通常写作:

看!我们得出了我们高数中经常见到的等式约束下的拉格朗日乘数函数的表示方法。

多约束的拉格朗日乘数法

以上,我们讨论的都是单约束的拉格朗日乘数法,当存在多个等式约束时(其实不等式约束也是一样的),我们进行一些推广。先一般化一个二元多约束最小化问题:

对于每个目标函数和约束配对,我们有:

将上式相加有:

定义多约束的拉格朗日函数为:

因为λi是常数,表示共线的含义而已,所以乘上一个常数

1N 1 N

\frac 1N也不会有任何影响,我们仍然用λ i表示,因此式子(2.8)变成:

这就是多约束拉格朗日乘数法的函数表达形式

一个计算例子

让我们举一个单约束的拉格朗日乘数法的计算例子,例子来源于引用3。
给出一个最大化任务:

图像如:

广义拉格朗日乘数法(Generalized Lagrange multipliers)



为了接下来的讨论方便,我们将N设为3,并且去掉等式约束,这样我们的最小化问题的广义拉格朗日函数就变成了:

绘制出来的示意图如下所示:

引用

  1. 拉格朗日乘子法如何理解? 知乎
  2. 《统计学习方法》 豆瓣
  3. 《【直观详解】拉格朗日乘法和KKT条件》 微信公众号
  4. 《解密SVM系列(一):关于拉格朗日乘子法和KKT条件》 CSDN
  5. Karush–Kuhn–Tucker conditions wikipedia
  6. 拉格朗日乘数法和KKT条件的直观解释

拉格朗日乘数法和KKT条件的直观解释相关推荐

  1. 对拉格朗日乘数法和KKT条件的简单理解(来自PRML的附录)

    说实在这东西困扰我很久了,但是看了PRML最后的附录之后感觉茅塞顿开,这里讲下我看了之后的理解. 首先我们来提一下拉格朗日乘数法: 假设有一个函数f(x1, x2), 其中函数的限制是g(x1, x2 ...

  2. 真正理解拉格朗日乘子法和KKT条件

    转载自:https://www.cnblogs.com/xinchen1111/p/8804858.html  这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容. 首先从无约束的优 ...

  3. 拉格朗日乘数和KTT条件

    拉格朗日乘数和KTT条件 通常来说最优化问题是指:对于给定的某一函数,求其在指定作用域上的全局最优解.在求解数学的最优化问题中,Lagrange Multiplier (拉格朗日乘子法)和 Karus ...

  4. 最优控制理论 六、拉格朗日乘子法和KKT条件

    拉格朗日乘子法和KKT条件 1. 等式约束最优化 2. 不等式约束最优化 2.1 1个不等式约束 2.2 KKT条件 2.3 二维不等式约束图解 3. MATLAB不等式约束优化 总结 4. 参考文献 ...

  5. 拉格朗日对偶原理与KKT条件的理解

    关于拉格朗日对偶和KKT条件的理解 关于这部分内容,我是在学习svm的时候碰到的,内容简单,但是确实要理解了才能理解svm的推导过程,故把参考的一些足够的文章放在下面咯!!! SVM(二)拉格朗日对偶 ...

  6. 如何用计算机解kkt条件,【直观详解】拉格朗日乘法和KKT条件

    [阅读时间]8min - 10mun [内容简介]直观的解读了什么是拉格朗日乘子法,以及如何求解拉格朗日方程,并且给出几个直观的例子,针对不等式约束解读了KKT条件的必要条件和充分条件 What &a ...

  7. 拉格朗日函数、拉格朗日对偶问题、KKT条件个人理解

    最近学习SVM的相关内容时,接触到了拉格朗日函数及其对偶问题,于是就学习了一些相关内容,在此整理总结一下.文章内容为个人理解,如有错误,欢迎指正! 文章目录 1. 引言 1.1 在约束条件下求函数的极 ...

  8. 一文理解拉格朗日对偶和KKT条件

    一. 最优化问题求解 1. 等式约束的极值求法 $$ \begin{gather*} \underset{t}{min} f(t) \; s.t.\; h_i(t)=0,i=1,\cdots,p \e ...

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

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

最新文章

  1. RF - 完整用例展示
  2. CriminalIntent项目的强大完善
  3. python爬虫实践 —— 一、入门篇
  4. Swagger 注解~用于模型
  5. 这可能是全中国最靠谱的星座指南
  6. spark1.6 maven java_Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】...
  7. git的使用学习(五)git的分支管理
  8. 由〈非你莫属〉想到与客户的沟通
  9. 服务器上使用 git 更新 wordpress 内核方案
  10. error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)[转]
  11. HttpComponents组件探究 - HttpClient篇
  12. dns修复工具一键修复_ps污点修复画笔工具怎么用?修复工具组(一)
  13. JDK8 有关集合部分常用的语法
  14. 学习ectouch之文件结构
  15. openg显示Bmp图片
  16. 【BFS】lydsy3161 孤舟蓑笠翁
  17. 启动redis出现闪退(已解决)
  18. cocos creator |《合成大西瓜》源码 解读
  19. 黑马程序员--OC之Foundation框架的使用
  20. http://wenku.baidu.com/view/f9b3b08a680203d8ce2f2452.html

热门文章

  1. binlog实时同步
  2. 期中复习——题型总结
  3. TabIndex 属性 Tabindex=-1 与Tabindex=0、任意数字
  4. 白光干涉仪压电陶瓷的大作用 | 科普篇
  5. 2021年全球和中国美妆个护现状分析,高端化趋势明显,国产品牌亟待发展「图」
  6. 实验一.Python安装与开发环境搭建
  7. 蓝桥试题 算法训练 天数计算 JAVA
  8. 推荐用户体验设计师必读的5本用户体验书籍
  9. 数据结构与算法——19. 散列函数设计方法
  10. 女友抵连!接站等待中。