凸优化简介
来源:互联网 发布:ubuntu好玩的命令 编辑:程序博客网 时间:2024/05/29 03:24
在machine learning 的很多问题中,我们最终往往要求解某个函数的最优值。用数学术语表示就是, 给定一个函数 $f: R{n} \rightarrow R
1.引言
在一般情况下,求解任意一个函数的全局最优值是很困难的。但是对于一种特定类型的函数——凸函数(convex function), 我们可以很有效的求解其全局最优值。这里的“有效”是指在实际问题求解中,能在多项式复杂度的时间里求解。 人们将这类函数的最值问题称为凸优化问题(Convex Optimal Problem)。下面我从凸集和凸函数讲起,然后 介绍凸优化的一般描述和典型问题举例。
2.凸集及其实例
凸集的定义:一个集合
凸集的实例: 以下列举几个简单的凸集实例
(1)所有Rn。很显然,对任意给定的
(3)单位球。设
3.凸函数及判定和Jensen不等式
凸优化中的一个核心概念就是凸函数。
凸函数定义:一个函数
常见的凸函数有指数函数(
凸函数第一判定定理:设函数
凸函数第二判定定理:设函数
其中,当
Jensen不等式:我们先看凸函数的定义中的不等式:
4.凸优化问题举例
有了凸集和凸函数的定义,现在我们重点讨论凸优化问题的求解方法。凸优化的一般描述为:
凸问题中的全局优化:首先要分清楚什么是局部最优,什么是全局最优。局部最优是指在该最优值附近的点对应的函数值 都比该最优值大,而全局最优是指对可行域里所有点,其函数值都比该最优值大。对于凸优化问题,它具有一个很重要的特性, 那就是所有的局部最优值都是全局最优的(关于其证明这里就不讲了,感兴趣的可以自行查查资料或后文中的参考文献)。
几类特殊的凸优化问题:
(1)线性规划(Linear Programing, LP): 目标函数和约束条件函数都是线性函数的情况,一般形式如下:
(2)二次规划(Quadratic Programing, QP): 目标函数为二次函数,约束条件为线性函数,一般形式为:
(3)二次约束的二次规划(Quadratically Constrained Quadratic Programming, QCQP): 目标函数和约束条件均为 二次函数的情况,一般形式为:
半正定规划(Semidefinite Programming,SDP): 其一般形式为:
5.凸优化应用举例
下面我们来看几个实例。
(1)支持向量机(Support Vector Machines,SVM):凸优化在machine learning中的一个典型的应用就是基于支持向量机分类器, 它可以用如下优化问题表示:
(2)带约束的least squares问题:其一般描述为
(3)Maximum Likelihood for Logistic Regression:该问题的目标函数为:
6.凸优化问题求解简介
上文中提到了几类特殊的凸优化问题,并举了几个应用实例,但并没有给出解法。对于凸优化问题,目前没有一个通用的解析式的 解决方案,但是我们仍然可以用非解析的方法来有效的求解很多问题。内点法(后续文章中会详细介绍)被证明是很好的解决方案, 特别具有实用性,在某些问题中,能够在多项式时间复杂度下,将解精确到指定精度。
我们将会看到,经过10到100次的迭代,内点法可以解决一般的凸优化问题,其中每次迭代的时间复杂度为
对于一般的凸优化问题的求解,还没有像求解最小二乘和线性规划那么成熟的技术,基于内点法的一般凸优化问题求解依然是 当前的一个研究热点。虽然目前还没有公认的最好的解决方案,但我们有理由相信,在不久的将来,内点法求解一般的凸优化问题 是一项技术。事实上,对于一些特定的凸优化问题,如二次锥规划和几何规划问题(后续文章将会介绍),内点法在向一项技术迈进。
参考文献
[1]Book: Stephen Boyd and Lieven Vandenberghe. Convex Optimization. Cambridge University Press, 2004
[2]Slide: Zico Kolter (updated by Honglak Lee). Convex Optimization Overview. October 17, 2008
[3]Standford Convex Optimization Course I:http://www.stanford.edu/class/ee364a/lectures.html
- 凸优化简介
- oracle性能优化简介
- 多目标最优化简介
- SEO简介及优化
- seo简介及优化
- Tomcat优化简介
- java代码优化简介
- PostgreSQL查询优化简介
- SQL优化器简介
- 代码优化简介
- mysql优化简介
- 无约束优化方法简介
- MYSQL数据库优化简介
- Mysql优化简介
- 最优化问题简介
- 最优化问题简介
- gcc优化性能简介
- 前端性能优化简介
- 12、tcp的超时和重传
- Jdom读写XML文件代码
- 关于ActionContext.getContext()的用法心得
- poj 1966 Cable TV Network
- 13、tcp的坚持计时器、保活计时器
- 凸优化简介
- iOS app detect jailbreak
- JfreeChart
- 0,1背包问题
- 14、tcp未来的发展
- akamai:与看视频广告等待相比,用户更不能忍受缓冲等待
- hibernate查询语句总结
- 草根老师的ping
- java抽象类