前言

最优化问题的求解方法在机器学习算法中是经常被用到的。下面是一个最优化问题的一个简单概述:
求解f(x)f(x)f(x)最小值时的x∗x^*x∗,即:
min⁡xf(x)\mathop {\min }\limits_x f(x) xmin​f(x)
无约束时,可通过求导的方式解决。事实情况中会涉及不同约束条件(s.t.\text {s.t.}s.t.),即存在等式约束和不等式约束。如下:

  • 等式约束:hi(x)=0,i=1,2,3,…,mh_{i}(x)=0 , i=1,2,3, \ldots, mhi​(x)=0,i=1,2,3,…,m
  • 不等式约束:gj(x)≤0,j=1,2,3,…,ng_{j}(x) \leq 0 , j=1,2,3, \ldots, ngj​(x)≤0,j=1,2,3,…,n
  • 同时存在等式约束和不等式约束:KKT(Karush-Kuhn-Tucker)条件

对于上面的问题该如何求解呢?

1 拉格朗日乘子法

通过拉格朗日函数将约束问题转化为无约束问题,在无约束问题中就方便求解了,这里主要是将等式约束转换为拉格朗日函数。则有:
目标函数为f(x)f(x)f(x),约束条件为:
hk(x),k=1,2,3,…,lh_{k}(x),k=1,2,3, \ldots, l hk​(x),k=1,2,3,…,l
对该优化问题建模就有:
min⁡f(x)s.t.hk(x)=0\min f(x) \quad \text {s.t.} \quad h_{k}(x)=0 minf(x)s.t.hk​(x)=0
这时需要构建拉格朗日函数,将约束的问题转换为无约束的优化问题。

在上图中可以看出,只有相切的时候,才有可能是极值点,在相切的地方h(x)h(x)h(x)的梯度和f(x)f(x)f(x)的梯度应该在同一条直线上,即在极值点有:
∇f(x)=λ∇h(x)\nabla f(x)=\lambda \nabla h(x)∇f(x)=λ∇h(x)
根据上述分析,可将将原始优化问题表示为:
L(x,λ)=f(x)+∑k=1lλkhk(x)L(x, \lambda)=f(x)+\sum_{k=1}^{l} \lambda_{k} h_{k}(x)L(x,λ)=f(x)+k=1∑l​λk​hk​(x)
L(x,λ)L(x, \lambda)L(x,λ)即拉格朗日函数,λk\lambda_{k}λk​是拉格朗日乘子。拉格朗日函数对xxx求偏导的结果为0时,即为最优解。

2 KKT条件

通过KKT条件将不等式约束转换为拉格朗日函数。优化问题中经常包含等式约束和不等式约束。对问题建模问题建模如下:
min⁡f(x)s.t.hk(x)=0,k=1,2,⋯,lgj(x)≤0,j=1,2,,⋯,n\min f(x) \\ \text{s.t.} \quad h_{k}(x)=0 , k=1,2,\cdots, l\\ \quad \quad \quad g_{j}(x) \le 0, j = 1, 2, ,\cdots, n minf(x)s.t.hk​(x)=0,k=1,2,⋯,lgj​(x)≤0,j=1,2,,⋯,n
对于等式约束,可以引入拉格朗日乘子进行转换。对于不等式约束使用KKT条件构造拉格朗日乘子,构造结果如下:
L(x,λ,μ)=f(x)+∑k=1lλkhk(x)+∑j=1nμjgj(x)L(x, \lambda, \mu)=f(x)+\sum_{k=1}^{l} \lambda_{k} h_{k}(x)+\sum_{j=1}^{n} \mu_{j} g_{j}(x)L(x,λ,μ)=f(x)+k=1∑l​λk​hk​(x)+j=1∑n​μj​gj​(x)
其中,λk\lambda_{k}λk​是为等式约束引入的拉格朗日乘子,μj\mu_{j}μj​是为不等式约束引入的松弛变量,也叫KKT乘子,需要注意的是KKT乘子是大于0的。这样就将有约束的优化问题转换为无约束问题的优化了,通过求导即可求出极值点。
其中,求出的极值点x∗x^*x∗满足KKT条件:
{∇f(x∗)+∑kλk∇hk(x∗)+∑jμj∇gj(x∗)=0μj≥0μjgj(x∗)=0gj(x∗)≤0\left\{\begin{aligned} \nabla f\left(x^{*}\right)+\sum_{k} \lambda_{k} \nabla h_{k}\left(x^{*}\right)+\sum_{j} \mu_{j} \nabla g_{j}\left(x^{*}\right) &=0 \\ \mu_{j} & \geq 0 \\ \mu_{j} g_{j}\left(x^{*}\right) &=0 \\ g_{j}\left(x^{*}\right) & \leq 0 \end{aligned}\right.⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​∇f(x∗)+k∑​λk​∇hk​(x∗)+j∑​μj​∇gj​(x∗)μj​μj​gj​(x∗)gj​(x∗)​=0≥0=0≤0​
注: f(x)f(x)f(x)、g(x)g(x)g(x)结尾凸函数

3 对偶问题

有时候原优化问题很难求解,为了解决问题,可将原优化问题进行等效转化,然后再求解。原优化问题:
min⁡f(x)s.t.hk(x)=0,k=1,2,⋯,lgj(x)≤0,j=1,2,,⋯,n\min f(x) \\ \text{s.t.} \quad h_{k}(x)=0 , k=1,2,\cdots, l\\ \quad \quad \quad g_{j}(x) \le 0, j = 1, 2, ,\cdots, n minf(x)s.t.hk​(x)=0,k=1,2,⋯,lgj​(x)≤0,j=1,2,,⋯,n
其对应的拉格朗日函数:
L(x,λ,μ)=f(x)+∑i=1mαihi(x)+∑j=1nβjgj(x)L(x, \lambda, \mu)=f(x)+\sum_{i=1}^{m} \alpha_{i} h_{i}(x)+\sum_{j=1}^{n} \beta_{j} g_{j}(x)L(x,λ,μ)=f(x)+i=1∑m​αi​hi​(x)+j=1∑n​βj​gj​(x)
对上式先最大化再最小化:
min⁡x[max⁡α,β;βj≥0L(x,α,β)]=min⁡x{f(x)+max⁡α,β;βj≥0[∑i=1mαihi(x)+∑j=1nβjgj(x)]}\min _{x}\left[\max _{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)\right]=\min _{x}\left\{f(x)+\max _{\alpha, \beta ; \beta_{j} \geq 0}\left[\sum_{i=1}^{m} \alpha_{i} h_{i}(x)+\sum_{j=1}^{n} \beta_{j} g_{j}(x)\right]\right\}xmin​[α,β;βj​≥0max​L(x,α,β)]=xmin​{f(x)+α,β;βj​≥0max​[i=1∑m​αi​hi​(x)+j=1∑n​βj​gj​(x)]}
在满足KKT条件的情况下,该式和原优化问题式等价的。下面来看看如何证明。

证明:
将上式分为两部分:

  1. 可行解区域内,原优化问题的约束条件都得到满足。因为hi(x)=0h_i(x)=0hi​(x)=0,所以不管α\alphaα如何变化,必然有αhi(x)=0\alpha h_i(x)=0αhi​(x)=0。gj(x)≤0g_j(x)\le 0gj​(x)≤0,且限定了βj>0\beta_j >0βj​>0,则βjgi(x)\beta_jg_i(x)βj​gi​(x)最大值为0。综上,在可行解区域内:
    max⁡α,β;βj≥0L(x,α,β)=f(x)+max⁡α,β;βj≥0[∑i=1mαihi(x)+∑j=1nβjgj(x)]=f(x)\max _{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)=f(x)+\max _{\alpha, \beta ; \beta_{j} \geq 0}\left[\sum_{i=1}^{m} \alpha_{i} h_{i}(x)+\sum_{j=1}^{n} \beta_{j} g_{j}(x)\right]=f(x)α,β;βj​≥0max​L(x,α,β)=f(x)+α,β;βj​≥0max​[i=1∑m​αi​hi​(x)+j=1∑n​βj​gj​(x)]=f(x)
  2. 可行解区域外,此时原优化问题的约束条件未满足。若hi(x)≠0h_i(x)\ne 0hi​(x)​=0,则最大化后为+∞+\infty+∞。若gj(x)>0g_j(x) > 0gj​(x)>0,则最大化后也为+∞+\infty+∞。所以在可行解区域外:
    max⁡α,β;βj≥0L(x,α,β)=+∞\max _{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)=+\inftyα,β;βj​≥0max​L(x,α,β)=+∞

综上两个论域,f(x)f(x)f(x)在可行域内最小化,等于max⁡α,β;βj≥0L(x,α,β)\mathop{\max }\limits_{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)α,β;βj​≥0max​L(x,α,β)的最小化,而在可行域外,max⁡α,β;βj≥0L(x,α,β)\mathop{\max }\limits_{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)α,β;βj​≥0max​L(x,α,β)无极值。这样当尝试对其进行最小化时,也就相当于原优化问题了。

接着构建对偶问题

有如下定义:
θp(x)=max⁡α,β;βi≥0L(x,α,β)\theta_{p}(x)=\max _{\alpha, \beta; \beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)θp​(x)=α,β;βi​≥0max​L(x,α,β)
则最小化primal(原始)问题与原问题有同样的解:
min⁡xθp(x)=min⁡xmax⁡α,β;βi≥0L(x,α,β)\min _{x} \theta_{\mathrm{p}}(x)=\min _{x} \max _{\alpha, \beta;\beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)xmin​θp​(x)=xmin​α,β;βi​≥0max​L(x,α,β)
定义dual(对偶)优化问题如下:
max⁡α,β;βi≥0θD(α,β)=max⁡α,β;βi≥0min⁡xL(x,α,β)\max _{\alpha, \beta;\beta_{i} \geq 0} \theta_{\mathcal{D}}(\alpha, \beta)=\max _{\alpha, \beta;\beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta)α,β;βi​≥0max​θD​(α,β)=α,β;βi​≥0max​xmin​L(x,α,β)
注: θp\theta_pθp​是针对α\alphaα、β\betaβ的优化,θD\theta_DθD​是针对www的优化。

根据上面的内容再做进一步定义:

p∗=min⁡xθp(x)p^*=\mathop{\min}\limits_x \theta_p(x)p∗=xmin​θp​(x)为primal最小化问题的值,
d∗=max⁡α,β;βi≥0θD(α,β)d^*=\mathop{\max}\limits_{\alpha,\beta;\beta_i\ge0}\theta_D(\alpha,\beta)d∗=α,β;βi​≥0max​θD​(α,β)为Dual问题的值,

他们之间满足:
d∗=max⁡α,β;βi≥0min⁡xL(x,α,β)≤min⁡xmax⁡α,β;βi≥0L(x,α,β)=p∗d^{*}=\max _{\alpha, \beta;\beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta) \leq \min _{x} \max _{\alpha, \beta;\beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=p^{*}d∗=α,β;βi​≥0max​xmin​L(x,α,β)≤xmin​α,β;βi​≥0max​L(x,α,β)=p∗
只有在KKT条件成立时,才有d∗=p∗d^*=p^*d∗=p∗,此时,就可以通过Dual问题来求解primal问题。
对偶问题证明:
d∗=max⁡α,β;βi≥0min⁡xL(x,α,β)≤min⁡xmax⁡α,β;βi≥0L(x,α,β)=p∗d^{*}=\max _{\alpha, \beta;\beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta) \leq \min _{x} \max _{\alpha, \beta;\beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=p^{*}d∗=α,β;βi​≥0max​xmin​L(x,α,β)≤xmin​α,β;βi​≥0max​L(x,α,β)=p∗

对任意(x,α,β)(x,\alpha,\beta)(x,α,β),如下不等式一定成立:
θD(α,β)=min⁡xL(x,α,β)≤L(x,α,β)≤max⁡α,β;βi≥0L(x,α,β)=θp(x)\theta_{\mathcal{D}}(\alpha, \beta)=\min _{x} \mathcal{L}(x, \alpha, \beta) \leq \mathcal{L}(x, \alpha, \beta) \leq \max _{\alpha, \beta; \beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=\theta_{\mathrm{p}}(x)θD​(α,β)=xmin​L(x,α,β)≤L(x,α,β)≤α,β;βi​≥0max​L(x,α,β)=θp​(x)
即:
θD(α,β)≤θp(x)\theta_{\mathcal{D}}(\alpha, \beta) \leq \theta_{\mathrm{p}}(x)θD​(α,β)≤θp​(x)
所以:
max⁡α,β;βi≥0θD(α,β)≤min⁡xθp(x)\max _{\alpha, \beta; \beta_{i} \geq 0} \theta_{\mathcal{D}}(\alpha, \beta) \leq \min _{x} \theta_{p}(x)α,β;βi​≥0max​θD​(α,β)≤xmin​θp​(x)
即可得到:
d∗=max⁡α,β;βi≥0min⁡xL(x,α,β)≤min⁡xmax⁡α,β;βi≥0L(x,α,β)=p∗d^{*}=\max _{\alpha, \beta; \beta_{i} \geq 0} \min _{x} \mathcal{L}(x, \alpha, \beta) \leq \min _{x} \max _{\alpha, \beta; \beta_{i} \geq 0} \mathcal{L}(x, \alpha, \beta)=p^{*}d∗=α,β;βi​≥0max​xmin​L(x,α,β)≤xmin​α,β;βi​≥0max​L(x,α,β)=p∗

总结

上面一些内容也是从网络习得,也存在一些不严谨的地方,如有错误还请批评指正。

【数学理论】最优化问题:拉格朗日乘子法、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. 拉格朗日乘子法和KTT条件

        这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容.     首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: minf(x)minf(x)     如果问题是 ...

最新文章

  1. MySQL CPU 使用率高的原因和解决方法
  2. C语言入门经典——基础知识(数据类型)(32位与64位系统基本数据类型的字节数)
  3. [py]access日志入mysql-通过flask前端展示
  4. Super Jumping! Jumping! Jumping!
  5. Spring ListFactoryBean实例
  6. python如何卸载模块cmd_使用cmd python模块时,如何使程序正常崩溃?
  7. Ubuntu根目录空间不足
  8. Linux启动提示Kernel panic - not syncing: Attempted to kill init解决办法
  9. Html代码seo优化最佳布局实例讲解
  10. 打docker镜像_分分钟搞定阿里云私有Docke镜像仓库的搭建
  11. 从天天爱消除和节奏大师的用户对于论坛形式的分析
  12. 如何准备数学建模竞赛?数学建模方法!备战国赛
  13. CentOS8下安装snort2.9.18.1
  14. python大数据方向_大数据行业5个职位方向指南
  15. 有书共读:《穷查理宝典》
  16. moment.js时间格式转换
  17. hdu1546—Idiomatic Phrases Game(spfa)
  18. ebs 编译无效对象——adutlrcmp.sql not giving promt
  19. Mac OS 解决 remote: Permission to xxx/xxx.git denied to xxx. 的两种方案
  20. 华为阿里下班时间曝光:所有的光鲜,都有加班的味道

热门文章

  1. Android10(Q) GMS 全家桶移植
  2. js——如何获取data-id中的值
  3. 若要运行应用程序,您必须首先安装 .NET Framework 4.0 解决办法
  4. 反脆弱性对产业生态的启发
  5. MySQL基础教程 包含SQL语句、约束、表关系、设计范式、多表、事务等
  6. 官宣:传智播客品牌全新升级为「传智教育」
  7. 优课联盟 实境英语 Test for Unit 5
  8. hey i wanna join urs
  9. 干货收集和整理:Pytorch,Keras,数据分析
  10. 这部手机爆火了,网友:新一代自拍神器?