优化方法之朗格朗日对偶性
2016-01-08 17:31
155 查看
学习最大熵模型和支持向量机的过程中,涉及优化中对偶性的相关内容,在这里做个小结巩固一下(参考自《统计学习方法》)。拉格朗日对偶性常用来解决约束最优化问题,其思想是将原始问题转换为对偶问题,通过解对偶问题间接求出原始问题。
minx∈Rnf(x)s.t.ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,l
为原始最优化问题或原始问题。引进广义拉格朗日函数
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
这里,x=(x(1),x(x),…,x(n))T∈Rn,αi,βj是拉格朗日乘子,αi≥0.考虑x的函数:
θp(x)=maxα,β:αi≥0L(x,α,β)
其中,下标P表示原始问题。由反证法易知:
θp(x)={f(x),x满足原始问题约束+∞,其他那么,极小化问题
minxmaxα,β:αi≥0L(x,α,β)与原始问题是等价的。即,我们把原始问题表示为广义拉格朗日函数的极小极大问题。原始问题的最优值:p∗=minxθP(x)称为原始问题的值。
maxα,βθD(α,β)=maxα,βminxL(x,α,β)s.t.αi≥0,i=1,2,…,k称上式为原始问题的对偶问题。将对偶问题的最优值:
d∗=maxα,β:αi≥0θD(α,β)称为对偶问题的值。
d∗=maxα,β:αi≥0θD(α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗
推论2 设x∗和α∗,β∗分别为原始问题和对偶问题的可行解,并且d∗=q∗,则x∗和α∗,β∗分别是原始问题和对偶问题的最优解。
特别地,若原始问题和对偶问题的最优解相等,我们可以用解对偶问题替代原始问题。
定理3对于原始问题和对偶问题,假设函数f(x)和ci(x)是凸函数,hj(x)是仿射函数(一阶多项式函数),并且假设不等式约束ci(x)的不等式严格可行,则存在x∗,α∗,β∗,使x∗是原始问题的解,α∗,β∗是对偶问题的解,并且p∗=d∗。
定理4对原始问题和对偶问题,假设函数f(x)和ci(x)是凸函数,hj(x)是仿射函数,并且假设不等式约束ci(x)的不等式严格成立,则x∗和α∗,β∗分别是原始问题和对偶问题的解的充要条件是x∗,α∗,β∗满足KKT条件。
1.原始问题
设f(x),ci(x),hj(x)是定义在 Rn上的连续可微函数,则称约束最优化问题:minx∈Rnf(x)s.t.ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,l
为原始最优化问题或原始问题。引进广义拉格朗日函数
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
这里,x=(x(1),x(x),…,x(n))T∈Rn,αi,βj是拉格朗日乘子,αi≥0.考虑x的函数:
θp(x)=maxα,β:αi≥0L(x,α,β)
其中,下标P表示原始问题。由反证法易知:
θp(x)={f(x),x满足原始问题约束+∞,其他那么,极小化问题
minxmaxα,β:αi≥0L(x,α,β)与原始问题是等价的。即,我们把原始问题表示为广义拉格朗日函数的极小极大问题。原始问题的最优值:p∗=minxθP(x)称为原始问题的值。
2.对偶问题
我们定义θD(α,β)=minxL(x,α,β)则称maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minxL(x,α,β)为广义拉格朗日函数的极大极小问题。将上式表示为约束最优化问题:maxα,βθD(α,β)=maxα,βminxL(x,α,β)s.t.αi≥0,i=1,2,…,k称上式为原始问题的对偶问题。将对偶问题的最优值:
d∗=maxα,β:αi≥0θD(α,β)称为对偶问题的值。
3.解的关联
定理1 若原始问题和对偶问题都有最优值,则d∗=maxα,β:αi≥0θD(α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗
推论2 设x∗和α∗,β∗分别为原始问题和对偶问题的可行解,并且d∗=q∗,则x∗和α∗,β∗分别是原始问题和对偶问题的最优解。
特别地,若原始问题和对偶问题的最优解相等,我们可以用解对偶问题替代原始问题。
定理3对于原始问题和对偶问题,假设函数f(x)和ci(x)是凸函数,hj(x)是仿射函数(一阶多项式函数),并且假设不等式约束ci(x)的不等式严格可行,则存在x∗,α∗,β∗,使x∗是原始问题的解,α∗,β∗是对偶问题的解,并且p∗=d∗。
定理4对原始问题和对偶问题,假设函数f(x)和ci(x)是凸函数,hj(x)是仿射函数,并且假设不等式约束ci(x)的不等式严格成立,则x∗和α∗,β∗分别是原始问题和对偶问题的解的充要条件是x∗,α∗,β∗满足KKT条件。
相关文章推荐
- MySQL 优化
- Google排名优化的几个影响因素
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 对优化Ruby on Rails性能的一些办法的探究
- 优化Ruby脚本效率实例分享
- Asp编码优化技巧
- 如何监测和优化OLAP数据库
- mysql -参数thread_cache_size优化方法 小结
- 深入学习SQL Server聚合函数算法优化技巧
- MySQL常见的底层优化操作教程及相关建议
- 详解mysql的limit经典用法及优化实例
- 数据库学习建议之提高数据库速度的十条建议
- oracle数据库sql的优化总结
- SQL语句优化提高数据库性能
- SQL优化经验总结
- SQL优化技巧指南
- SQL Server优化50法汇总
- C++快速排序的分析与优化详解