拉格朗日乘子法是解决极值问题的方法。

  本方法是计算多元函数在约束条件下的极值问题的方法。

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 徒手系列 拉格朗日乘子法的更多相关文章

  1. Machine Learning系列--深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

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

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

  3. 【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

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

  4. 增强拉格朗日乘子法(Augmented Lagrange Method)

    增强拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t.: h(X)=0 其中,f:Rn->R; h:Rn->Rm 朴素拉格 ...

  5. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    [整理]   在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...

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

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

  7. 装载:深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式 ...

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

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

  9. 增广拉格朗日乘子法(Augmented Lagrange Method)

    转载自:增广拉格朗日乘子法(Augmented Lagrange Method) 增广拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t ...

随机推荐

  1. Home Server

    今天分享一个作品--HomeServer,一个基于云存储理念的集家庭数据存储.共享.管理及远程访问为一体的家用存储设备.通俗的讲,就是一个家庭数据银行,为家庭的数据提供专业.安全.便捷.持久.全天候的 ...

  2. 51nod1257 背包问题 V3

    分数规划经典.开始精度1e-3/1e-4都不行,1e-5就A了 #include<cstdio> #include<cstring> #include<cctype> ...

  3. (转)iOS动画Core Animation

    文章转载:http://blog.sina.com.cn/s/blog_7b9d64af0101b8nh.html 在iOS中动画实现技术主要是:Core Animation. Core Animat ...

  4. HDU 1018 Big Number (阶乘位数)

    题意: 给一个数n,返回该数的阶乘结果是一个多少位(十进制位)的整数. 思路: 用对数log来实现. 举个例子 一个三位数n 满足102 <= n < 103: 那么它的位数w 满足 w ...

  5. matlab中矩阵和向量的创建

    1.向量的创建 1)直接输入: 行向量:a=[1,2,3,4,5] 列向量:a=[1;2;3;4;5] 2)用“:”生成向量 a=J:K 生成的行向量是a=[J,J+1,…,K] a=J:D:K 生成 ...

  6. 【C#学习笔记】从粘贴板复制文本

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. ORA-10456:cannot open standby database;media recovery session may be in process

    http://neeraj-dba.blogspot.com/2011/10/ora-10456-cannot-open-standby-database.html   Once while star ...

  8. 批量生成sqlldr文件,高速卸载数据

    SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库.SQL*Loader支持传统路径模式以及直接路径这两种加载模式.关于SQL ...

  9. RAC 数据库的启动与关闭

    RAC数据库与单实例的差异主要表现在多个实例通过集群件来统一管理共享的资源.因此原有的单实例的管理方式,如数据库.监听器等的关闭启动等可以使用原有的方式进行,也可以通过集群管理工具,命令行来集中管理, ...

  10. SmartWeatherAPI_Lite_WebAPI C# 获取key加密

    中国气象局面向网络媒体.手机厂商.第三方气象服务机构等用户,通过 web 方式提供数据气象服务的官方载体. 在一周前已经申请到appid,但是苦于没有C#版的key 的算法,一直验证不通过,经过几天查 ...