ML 徒手系列 拉格朗日乘子法
拉格朗日乘子法是解决极值问题的方法。
本方法是计算多元函数在约束条件下的极值问题的方法。
1、多元函数与约束问题
如下图所示,f(x,y)为多元函数,g(x,y)=c为约束条件。目的是计算在约束条件下多元函数的极值。
虚线为f(x,y)=d d取不同的值时,将原始图像投影到xy平面时的等高线,在等高线上的f函数值相等;
淡蓝色实线为g(x,y)为xy平面的曲线,对应于不同的(x,y)。比如g(x,y)=x+y=1,即x+y=1为约束条件。

那么怎样去寻找极值点?
思路:沿着g(x,y)曲线不断前进,找到与g(x,y)与等高线的交点,所有的交点中的极值,即为需要求得的极值。如上图红色圈所示。
此时极值点满足的条件:g(x,y)与极值点所在的等高线是相切的。所以满足

根据以上原理,构建拉格朗日函数:(此时用g(x,y)代替[g(x,y)-c])

L对x,y,λ分别求偏导,并且偏导其偏导满足:

偏导分别满足:

根据得到的偏导等式,求得x,y的值,即可得到f(x,y)的极值。
同样当g(x,y)<0时,等高线与约束函数的图像变成了等高线与某一块区域的集合。此时求极值时,直接求f(x,y)对x,y的偏导数,得到极值。
等价于将λ置为0时,求L对x,y求偏导。上述是拉格朗日乘子法的来源。
2、约束条件的扩展
第一部分讲解了一个约束条件,而实际中通常会用到多个约束条件。当引入下列约束条件时:


即要求f0(x)的极值,其约束条件为fi(x) hi(x).此时的拉格朗日函数为:


其中ª ß为拉格朗日乘子。并且ª>0,满足第一部分所阐述的λ的条件。
上述条件表述为KKT条件:

固定变量x,求L关于ª ß的最大值:

并且有:

对θp求极小值可得:

此时,求θp极小值与原始问题即求f(x)的极小值等价。
定义原始问题的最优:

引入对偶问题:

可以证明:

对偶问题证明:

使用上述条件:
1、对L取关于变量x的偏导
2、通过偏导式子求出x关于ª ß的表达式
3、将ª ß的表达式代入L
4、得到max(L)关于ª ß的表达式
5、通过其他约束条件求出最终的极值点
举例:
SVM
对偶问题满足等号的条件:
KKT条件中的约束不等式为凸函数,等式为仿射函数,且可行域存在严格满足约束条件的点。
ML 徒手系列 拉格朗日乘子法的更多相关文章
- Machine Learning系列--深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...
- 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析
SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...
- 【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
- 增强拉格朗日乘子法(Augmented Lagrange Method)
增强拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t.: h(X)=0 其中,f:Rn->R; h:Rn->Rm 朴素拉格 ...
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
[整理] 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...
- 装载:关于拉格朗日乘子法与KKT条件
作者:@wzyer 拉格朗日乘子法无疑是最优化理论中最重要的一个方法.但是现在网上并没有很好的完整介绍整个方法的文章.我这里尝试详细介绍一下这方面的有关问题,插入自己的一些理解,希望能够对大家有帮助. ...
- 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...
- 约束优化方法之拉格朗日乘子法与KKT条件
引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值:对于含有不等式约束的优化问题,可以转化为在满足 KKT ...
- 增广拉格朗日乘子法(Augmented Lagrange Method)
转载自:增广拉格朗日乘子法(Augmented Lagrange Method) 增广拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t ...
随机推荐
- Android利用Http下载文件
Android利用Http下载文件 一.场景 下载存文本文件和下载如mp3等大容量的文件 界面 二.代码编写 1.AndroidMainfest.xml中配置 主要是解决网络权限和写SDCard的权限 ...
- HDU 1525 (博弈) Euclid's Game
感觉这道题用PN大法好像不顶用了,可耻地看了题解. 考虑一下简单的必胜状态,某一个数是另一个数的倍数的时候是必胜状态. 从这个角度考虑一下:游戏进行了奇数步还是偶数步决定了哪一方赢. 如果b > ...
- erl0008 - unicode 和 utf-8之间的关系
转载:http://blog.jobbole.com/84903/ 原文出处: 卢钧轶 欢迎分享原创到伯乐头条 本文将简述字符集,字符编码的概念.以及在遭遇乱码时的一些常用诊断技巧. 背景:字符集 ...
- js二级下拉被flash档住的解决办法
在<object></object>及以内的代码加入到<script>标签对内 <script language="javascript" ...
- (六) 6.2 Neurons Networks Backpropagation Algorithm
今天得主题是BP算法.大规模的神经网络可以使用batch gradient descent算法求解,也可以使用 stochastic gradient descent 算法,求解的关键问题在于求得每层 ...
- 【英语】Bingo口语笔记(75) - 元音辅音的辨读
- Android 程序员必须掌握的三种自动化测试方法
在日常的开发中,尤其是app开发,因为不像web端那样 出错以后可以热更新,所以app开发 一般对软件质量有更高的要求(你可以想一下 一个发出去的版本如果有重大缺陷 需要强制更新新客户端是多么蛋疼的事 ...
- 将UE添加到右键菜单
1.新建UE.reg文件,将如下代码拷贝进去.注意UE安装路径 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*shell] [HK ...
- php5.2转向 PHP 5.3 的 PHP 开发
PHP 5.3 开始,为了更好的向 PHP 的未来版本(PHP6) 过渡,将未来不再支持的函数标记为 DEPRECATED.在代码中使用这些函数,将毫不留情的在页面中显示警告信息:“使用了过时的函数… ...
- OFBIZ文章
0. OFBIZ Tutorials 1. A Tour of OFBiz 2. Entities and Services - Data Models and Business Logic in O ...