拉格朗日乘子法、KKT条件、拉格朗日对偶性
转载于http://blog.csdn.net/sinat_17496535/article/details/52103852

笔记主要来源于维基百科和《统计学习方法》
拉格朗日乘子法(Lagrange Multiplier)

拉格朗日乘子法是一种寻找有等式约束条件的函数的最优值(最大或者最小)的最优化方法.在求取函数最优值的过程中,约束条件通常会给求取最优值带来困难,而拉格朗日乘子法就是解决这类问题的一种强有力的工具.

  1. 单约束问题

考虑以下的二维单约束优化问题:

maximize f(x,y)
subject to g(x,y)=0
把f(x,y)绘制成等高图,当沿着曲线g(x,y)=0寻找最大值时,函数最大值的点应该是在f(x,y)=maximum与g(x,y)=0相切的位置,但是有时候也会遇到沿着g(x,y)=0寻找的过程中,f(x,y)在某一段保持不变,这个时候也有可能这段点集就是我们要寻找的最优解.有两种可能会出现这种情况:1) f和g是”平行”的,也就是我们在约束曲线上寻找的同时也是在f(x,y)=d上移动; 2) 遇到了f的level part,意思就是,f在任何方向都不会改变.
在以上两种情况中都存在λ满足下式:

∇x,yf=−λ∇x,yg,

总结上述所有公式,我们有:
L(x,y,λ)=f(x,y)+λg(x,y)

解:
∇x,y,λL(x,y,λ)=0

这种方法就是拉格朗日乘子法,其中λ就是拉格朗日乘子,当第二种情况出现时λ=0.
类似地,针对多变量问题,我们可通过解下式获得最优解:
∇x1,…,xn,λL(x1,…,xn,λ)=0
2. 多约束问题

考虑一个简单的约束问题:两个约束曲线仅相交于一点,那么很显然,这一点就是最优点.再考虑一下更一般的情况,f的level set并不平行于所有的约束曲线,这时候应该怎么办呢?线性组合!!!拉格朗日乘子法所寻找的点对应的梯度并不是f任意某个约束的梯度的倍数,而是所有约束梯度的线性组合!
用A表示可寻找的向量空间,S表示约束梯度的张量空间,就有:A=S⊥,向量空间垂直与S中的每一个元素.
与单约束问题类似,我们仍然考虑在沿着向量空间寻找过程中那些使f不变的点,因为这些点可能就是最优值.
也就是说,我们需要寻找那些x使得其移动方向垂直于∇f(x),因为这个时候f才是不发生变化的,则有:∇f(x)∈A⊥=S,因此,存在实数λ1,λ2,…,λM满足:

∇f(x)=−∑k=1Mλk∇gk(x)
其中,那些实数就是拉格朗日乘子,相应的拉格朗日函数式如下:
L(x1,…,xn,λ1,…,λM)=f(x1,..,xn)−∑k=1Mλkgk(x1,…,xn),
解:
∇x1,…,xn,λ1,…,λML(x1,…,xn,λ1,…,λM)=0
以上就是拉格朗日乘子法针对多约束问题的求解办法.
KKT条件(Karush–Kuhn–Tucker conditions)

KKT条件是拉格朗日乘子法的拓展,是一种求取含不等式约束条件的函数最优值的方法.
考虑以下非线性优化问题:

maxmize f(x)
subject to gi(x)≤0,hj(x)=0
其中x就是优化变量,f是目标函数,gi (i=1,2,…,m)是不等式约束函数,hj (j=1,2,…,l)是等式约束函数.
针对该问题,KKT条件就是指最优点x∗满足以下条件:

∇f(x∗)=∑i=1mμi∇gi(x∗)+∑j=1lλj∇hj(x∗)

gi(x∗)≤0, for all i=1,2,…,m

hj(x∗)=0, for all j=1,2,…,l

μi≥0, for all i=1,2,…,m

μigi(x∗)=0, for all i=1,2,…,m
拉格朗日对偶性(Lagrange duality)

在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转化为对偶问题。通过解对偶问题而得到原始问题的解.
1. 原始问题(primal problem)

假设f(x),ci(x),hj(x)是定义在Rn上的连续可微函数。考虑如下最优化问题:

minx∈Rnf(x) (1)

s.t. ci(x)≤0, i=1,2,…,k (2)

   hj(x)=0, j=1,2,...,l                            (3)

称此约束最优化问题为原始最优化问题或原始问题.
引入广义拉格朗日函数
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x) (4)

这里, αi,βj是拉格朗日乘子,αi≥0. 考虑x的函数:
θP(x)=maxα,β;αi≥0L(x,α,β) (5)

这里下标P表示原始问题.
容易得到:当x满足原始问题约束时,θP(x)=f(x),则可得到与原始优化问题想等价的极小化问题如下:
minxθP(x)=minxmaxα,β;αi≥0L(x,α,β) (6)

此问题称为广义拉格朗日函数的极小极大问题. 定义原始问题的最优值
p∗=minxθP(x) (7)

称为原始问题的值.
2. 对偶问题(dual problem)

定义

θD(α,β)=minxL(x,α,β) (8)

再考虑极大化上式,即
maxα,β;αi≥0θD(α,β)=maxα,β;αi≥0minxL(x,α,β) (9)

问题maxα,β;α≥0minxL(x,α,β)称为广义拉格朗日函数的极大极小问题.
可将广义拉格朗日函数的极大极小问题表示为约束最优化问题:
maxα,βθD(α,β)=maxα,βminxL(x,α,β) (10)

s.t. αi≥0, i=1,2,…,k (11)

称为原使问题的对偶问题. 定义对偶问题的最优值
d∗=maxα,β;αi≥0θD(α,β) (12)

称为对偶问题的值.
3. 原始问题和对偶问题的关系

这里直接列出《统计学习方法》中的几个定理和推论.
定理1 若原始问题和对偶问题都有最大值,则

d∗=maxα,β;αi≥0minxL(x,α,β)≤minxmaxα,β;αi≥0L(x,α,β)=p∗

推论1 设x∗和α∗,β∗分别是原始问题(公式1~3)和对偶问题(公式10~11)的可行解,并且d∗=p∗,则 x∗和α∗,β∗分别是原始问题和对偶问题的最优解.

定理2 考虑原始问题(公式1~3)和对偶问题(公式10~11). 假设函数f(x)和ci(x)是凸函数, hj(x)是仿射函数1; 并且假设不等式约束ci(x)是严格可行的, 即存在x, 对所有i有ci(x)<0, 则存在x∗,α∗,β∗,使x∗是原始问题的解, α∗,β∗是对偶问题的解,并且
p∗=d∗=L(x∗,α∗,β∗)

定理3 对原始问题(公式1~3)和对偶问题(公式10~11), 假设函数f(x)和ci(x)是凸函数,hj(x)是仿射函数,并且不等式约束ci(x)是严格可行的, 则x∗和α∗,β∗分别是原始问题和对偶问题的解的充分必要条件是x∗,α∗,β∗满足KKT条件:
∇xL(x∗,α∗,β∗)=0

α∗ici(x∗)=0, i=1,2,…,k

ci(x∗)≤0, i=1,2,…,k

α∗i≥0, i=1,2,…,k

hj(x∗)=0, j=1,2,…,l

注:在该定理中,书中还给出以下两个条件
∇αL(x∗,α∗,β∗)=0

∇βL(x∗,α∗,β∗)=0

我认为是错误的,如果满足的话,那么ci(x∗)=0,i=1,2,…,k,显然广义上的拉格朗日函数变成了原始的拉格朗日函数,与原始问题(公式2)不符。
f(x)称为仿射函数,如果它满足f(x)=ax+b,a∈Rn,b∈R,x∈Rn ↩

拉格朗日乘子法、KKT条件、拉格朗日对偶性相关推荐

  1. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

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

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

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

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

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

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

  5. 解密SVM系列(一):关于拉格朗日乘子法和KKT条件

    转载 原地址https://blog.csdn.net/on2way/article/details/47729419 写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧 ...

  6. 拉格朗日乘子法和KKT条件

    转自:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html 拉格朗日乘子法(Lagrange Multiplier)和KKT(Karus ...

  7. 拉格朗日乘子法-KKT不等式约束

    文章目录 不等式约束 极小值点落在可行域内(不包含边界) 极小值点落在可行域外(包含边界) 总结 不等式约束 对于不等式约束g(x)<=0,和等式约束h(x)=0不一样,h(x)=0可以在平面上 ...

  8. 第99:真正理解拉格朗日乘子法和 KKT 条件

    转载于:https://www.cnblogs.com/invisible2/p/11441485.html

  9. 最优化之凸集、凸函数、上确界、Jensen不等式、共轭函数、Fenchel不等式、拉格朗日乘子法、KKT条件

    最优化之凸集.凸函数.上确界.Jensen不等式.共轭函数.Fenchel不等式.拉格朗日乘子法.KKT条件.拉格朗日对偶 1.直线的向量表达 1.1 共线定理 对于任意两个向量a⃗,b⃗\vec{a ...

  10. 一文看懂拉格朗日乘子法、KKT条件和对偶问题

    因为想申请 CSDN 博客认证需要一定的粉丝量,而我写了五年博客才 700 多粉丝,本文开启关注才可阅读全文,很抱歉影响您的阅读体验 拉格朗日乘子法是解约束优化问题的常用方法,它和 KKT 条件.Sl ...

最新文章

  1. python3正则表达式符号和用法
  2. 尝试HTML + JavaScript 编写Windows App
  3. SQLServer2008或SQLServer2008 R2没有智能提示解决方法
  4. python扫描目录下文件_Python扫描目录读取文件,不考虑子目录
  5. 微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”...
  6. C# 数据类型及相互转换及常用基础
  7. 都灵JVM编程语言:使用ANTLR构建高级词法分析器
  8. redis排行榜之日排行周排行设计
  9. python 线程通信 会涉及到拷贝吗_Python如何实现线程间通信
  10. CSS3 动画、变形效果
  11. Hvv近期0day总结三
  12. 基于8086的中断方式4*4矩阵键盘
  13. 计算器计算经纬距离_经纬距离计算器下载_经纬距离计算器官方下载-太平洋下载中心...
  14. Pintos-斯坦福大学操作系统Project详解-Project1
  15. python-电脑调用手机摄像头
  16. CFD网格你应该了解的常识
  17. telnet 访问80端口
  18. 前端工程师之jquery实战案例大集合-彭亮-专题视频课程
  19. Intel万兆网卡,intel万兆双口网卡X540T2 性能解剖
  20. 【语音信号处理二】共振峰

热门文章

  1. MobileNet网络学习笔记
  2. 创建一个整型变量toes,并将toes设置为10.
  3. 个人支付宝/微信/云闪付/商户聚合码/银行卡等到账通知常用技术方案总结
  4. mount: /dev/sr0 写保护,将以只读方式挂载 mount: 在 /dev/sr0 上找不到媒体 怎么解决
  5. 三个参数 matlab程序,由XYZ三刺激值,得到Lab值(matlab程序)
  6. 如何解决Chrome禁止发送不安全的内网网络请求[origin ‘http://xxx.xxx.com:xxxx‘ has been blocked by CORS policy:...}
  7. 用 python 实现 简单AI 双人日麻(文字版)之一 建立胡牌逻辑
  8. 开始入坑-大蟒蛇首发
  9. python发送邮件 SMTP socks代理
  10. 2017第三届美亚杯全国电子数据取证大赛团队赛write up