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 ...
随机推荐
- UVa (二分) 11627 Slalom
题意: 有宽度相同的水平的n个旗门,水平(纵坐标严格递增)滑行的最大速度为Vh(水平速度可以任意调节).然后还有S双滑雪板,每双滑雪板的垂直速度一定. 然后求能通过的滑板鞋的最大速度. 分析: 显然, ...
- CocoStudio UI 编辑器的使用
详细教程:http://www.cocoachina.com/bbs/read.php?tid=161567 Table of Contents 1 游戏中的 UI 1.1 基于 Cocos2d-x ...
- 浅析extendedLayout, automaticallyAdjustsScrollViewInsets, extendedLayoutIncludesOpaqueBars
参考文章: http://stackoverflow.com/questions/18798792/explaining-difference-between-automaticallyadjusts ...
- 【J2EE性能分析篇】JVM参数对J2EE性能优化的影响
一切J2EE应用都是基于JVM的,那么对于JVM的设置和监控,成为J2EE应用程序性能分析和性能优化的必然手段.今天Sincky和大家交流该话题.这里以Tomcat环境为例,其它WEB服务器如Jbos ...
- erl0007 - erlang 远程节点连接的两种方式
启动连接:erl -setcookie abc -name xxx@192.168.x.x -remsh xxx@192.168.x.y 退出:ctrl + g,q 参考:http://www.cnb ...
- 并行编译 Xoreax IncrediBuild
好东西... http://pan.baidu.com/s/1BtZ4s
- HDU 小明A+B 2096
解题思路:So easy,练手速的,这种题很快1A,但是没有任何成就感. 转念一想,反正水题也就那几题,所以很快就会刷完. #include<cstdio> int main() { ...
- in 和 exist 区别
select * from Awhere id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B ...
- poj 1472(递归模拟)
题意:就是让你求出时间复杂度. 分析:由于指数最多为10次方,所以可以想到用一个数组保存各个指数的系数,具体看代码实现吧! 代码实现: #include<cstdio> #include& ...
- [转] C# 绘制报表,使用Graphics.DrawString 方法
原文 Graphics.DrawString 方法 在指定位置并且用指定的 Brush 和Font 对象绘制指定的文本字符串. public void DrawString( string s, Fo ...