【数学理论】最优化问题:拉格朗日乘子法、KKT条件以及对偶问题
前言
最优化问题的求解方法在机器学习算法中是经常被用到的。下面是一个最优化问题的一个简单概述:
求解f(x)f(x)f(x)最小值时的x∗x^*x∗,即:
minxf(x)\mathop {\min }\limits_x f(x) xminf(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
对该优化问题建模就有:
minf(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λkhk(x)
L(x,λ)L(x, \lambda)L(x,λ)即拉格朗日函数,λk\lambda_{k}λk是拉格朗日乘子。拉格朗日函数对xxx求偏导的结果为0时,即为最优解。
2 KKT条件
通过KKT条件将不等式约束转换为拉格朗日函数。优化问题中经常包含等式约束和不等式约束。对问题建模问题建模如下:
minf(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λkhk(x)+j=1∑nμjgj(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μjgj(x∗)gj(x∗)=0≥0=0≤0
注: f(x)f(x)f(x)、g(x)g(x)g(x)结尾凸函数
3 对偶问题
有时候原优化问题很难求解,为了解决问题,可将原优化问题进行等效转化,然后再求解。原优化问题:
minf(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αihi(x)+j=1∑nβjgj(x)
对上式先最大化再最小化:
minx[maxα,β;βj≥0L(x,α,β)]=minx{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≥0maxL(x,α,β)]=xmin{f(x)+α,β;βj≥0max[i=1∑mαihi(x)+j=1∑nβjgj(x)]}
在满足KKT条件的情况下,该式和原优化问题式等价的。下面来看看如何证明。
证明:
将上式分为两部分:
- 可行解区域内,原优化问题的约束条件都得到满足。因为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)βjgi(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≥0maxL(x,α,β)=f(x)+α,β;βj≥0max[i=1∑mαihi(x)+j=1∑nβjgj(x)]=f(x) - 可行解区域外,此时原优化问题的约束条件未满足。若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≥0maxL(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≥0maxL(x,α,β)的最小化,而在可行域外,maxα,β;βj≥0L(x,α,β)\mathop{\max }\limits_{\alpha, \beta ; \beta_{j} \geq 0} L(x, \alpha, \beta)α,β;βj≥0maxL(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≥0maxL(x,α,β)
则最小化primal(原始)问题与原问题有同样的解:
minxθp(x)=minxmaxα,β;β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≥0maxL(x,α,β)
定义dual(对偶)优化问题如下:
maxα,β;βi≥0θD(α,β)=maxα,β;βi≥0minxL(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≥0maxxminL(x,α,β)
注: θp\theta_pθp是针对α\alphaα、β\betaβ的优化,θD\theta_DθD是针对www的优化。
根据上面的内容再做进一步定义:
p∗=minxθ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≥0minxL(x,α,β)≤minxmaxα,β;β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≥0maxxminL(x,α,β)≤xminα,β;βi≥0maxL(x,α,β)=p∗
只有在KKT条件成立时,才有d∗=p∗d^*=p^*d∗=p∗,此时,就可以通过Dual问题来求解primal问题。
对偶问题证明:
d∗=maxα,β;βi≥0minxL(x,α,β)≤minxmaxα,β;β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≥0maxxminL(x,α,β)≤xminα,β;βi≥0maxL(x,α,β)=p∗
对任意(x,α,β)(x,\alpha,\beta)(x,α,β),如下不等式一定成立:
θD(α,β)=minxL(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(α,β)=xminL(x,α,β)≤L(x,α,β)≤α,β;βi≥0maxL(x,α,β)=θp(x)
即:
θD(α,β)≤θp(x)\theta_{\mathcal{D}}(\alpha, \beta) \leq \theta_{\mathrm{p}}(x)θD(α,β)≤θp(x)
所以:
maxα,β;βi≥0θD(α,β)≤minxθ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≥0minxL(x,α,β)≤minxmaxα,β;β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≥0maxxminL(x,α,β)≤xminα,β;βi≥0maxL(x,α,β)=p∗
总结
上面一些内容也是从网络习得,也存在一些不严谨的地方,如有错误还请批评指正。
【数学理论】最优化问题:拉格朗日乘子法、KKT条件以及对偶问题相关推荐
- 拉格朗日乘子法 KKT条件
目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1 ...
- 真正理解拉格朗日乘子法和KKT条件
转载自:https://www.cnblogs.com/xinchen1111/p/8804858.html 这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容. 首先从无约束的优 ...
- 最优控制理论 六、拉格朗日乘子法和KKT条件
拉格朗日乘子法和KKT条件 1. 等式约束最优化 2. 不等式约束最优化 2.1 1个不等式约束 2.2 KKT条件 2.3 二维不等式约束图解 3. MATLAB不等式约束优化 总结 4. 参考文献 ...
- 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)
引言 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.通常,对于等式约束问题,采用拉格朗日乘子法.对 ...
- 解密SVM系列(一):关于拉格朗日乘子法和KKT条件
转载 原地址https://blog.csdn.net/on2way/article/details/47729419 写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧 ...
- 拉格朗日乘子法和KKT条件
转自:http://www.cnblogs.com/zhangchaoyang/articles/2726873.html 拉格朗日乘子法(Lagrange Multiplier)和KKT(Karus ...
- 拉格朗日乘子法-KKT不等式约束
文章目录 不等式约束 极小值点落在可行域内(不包含边界) 极小值点落在可行域外(包含边界) 总结 不等式约束 对于不等式约束g(x)<=0,和等式约束h(x)=0不一样,h(x)=0可以在平面上 ...
- 第99:真正理解拉格朗日乘子法和 KKT 条件
转载于:https://www.cnblogs.com/invisible2/p/11441485.html
- 拉格朗日乘子法和KTT条件
这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容. 首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: minf(x)minf(x) 如果问题是 ...
最新文章
- MySQL CPU 使用率高的原因和解决方法
- C语言入门经典——基础知识(数据类型)(32位与64位系统基本数据类型的字节数)
- [py]access日志入mysql-通过flask前端展示
- Super Jumping! Jumping! Jumping!
- Spring ListFactoryBean实例
- python如何卸载模块cmd_使用cmd python模块时,如何使程序正常崩溃?
- Ubuntu根目录空间不足
- Linux启动提示Kernel panic - not syncing: Attempted to kill init解决办法
- Html代码seo优化最佳布局实例讲解
- 打docker镜像_分分钟搞定阿里云私有Docke镜像仓库的搭建
- 从天天爱消除和节奏大师的用户对于论坛形式的分析
- 如何准备数学建模竞赛?数学建模方法!备战国赛
- CentOS8下安装snort2.9.18.1
- python大数据方向_大数据行业5个职位方向指南
- 有书共读:《穷查理宝典》
- moment.js时间格式转换
- hdu1546—Idiomatic Phrases Game(spfa)
- ebs 编译无效对象——adutlrcmp.sql not giving promt
- Mac OS 解决 remote: Permission to xxx/xxx.git denied to xxx. 的两种方案
- 华为阿里下班时间曝光:所有的光鲜,都有加班的味道