凸优化(Convex Optimization)浅析
本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~
在机器学习中, 很多情况下我们都需要求得一个 问题的全局最优值(global optimum). 大多数的全局最优值很难求得, 但是对于凸问题, 我们可以比较高效的找到其全局最优值, 这是由凸问题的性质决定的.我们将逐步的介绍凸集, 凸函数, 凸问题等.
1. 凸集(convex set)
对于一个集合\(C\), 如果对于任意两个元素\(x,y \in C\), 以及任意实数\(\theta \in \mathbb{R}\)且\(0 \leq \theta \leq 1\)都满足
$$\theta x + (1-\theta)y\in C$$
那么集合\(C\)就是凸集.如下图所示:
凸集的例子包括:
- \(\mathbb{R}^n\)
- 非负象限\(\mathbb{R}_+^n\)
- 范式球(Norm Ball), 亦即\({x: \parallel x \parallel \leq 1}\), 其中\(\parallel \cdot \parallel\)是\(\mathbb{R}^n\)上的范式
- 凸集的交集
- 半正定矩阵
2. 凸函数(convex function)
如果一个函数\(f: \mathbb{R}^n \to \mathbb{R}\)的定义域\(\mathcal{D}(f)\)是凸集, 并且对于所有的\(x,y \in \mathcal{D}(f)\)和\(\theta \in \mathbb{R}, 0 \leq \theta \leq 1\)使得:
$$f(\theta x+(1-\theta)y)\leq \theta f(x)+(1-\theta)f(y)$$
则函数\(f(x)\)是凸函数.
如果把上述限制条件改为对于任意的\(x,y \in \mathcal{D}(f), x \neq y, 0 < \theta < 1\)
$$f(\theta x+(1-\theta)y) < \theta f(x)+(1-\theta)f(y)$$
函数\(f(x)\)是严格凸(strictly convex)的.
如果\(-f\)是凸的, 则\(f\)是凹(concave)的.
凸函数如下图所示
2.1 凸函数的一阶条件
如果一个函数\(f: \mathbb{R}^n \to \mathbb{R}\)是可微的, 那么\(f\)是凸函数当且仅当\(\mathcal{D}(f)\)是凸集, 并且对于任意的\(x,y \in \mathcal{D}(f)\):
$$f(y)>=f(x)+\nabla_x f(x)^T(y-x)$$
其中\(f(x)+\nabla_x f(x)^T(y-x)\)称为\(f\)在点\(x\)处的一阶近似. 上述性质如下图所示:
2.2 凸函数的二阶条件
函数\(f\)是凸的当且仅当\(\mathcal{D}(f)\)是凸集, 并且其Hessian矩阵是半正定的:
$$\nabla_x^2 f(x)\succeq 0$$
2.3 Jensen不等式
凸函数的定义中有
$$f(\theta x+(1-\theta)y)\leq \theta f(x)+(1-\theta)f(y), \hspace{2 pt} 0 \leq \theta \leq 1$$
上式可以扩展到多个点的情况:
$$f(\sum_{i=1}^k \theta_ix_i \leq \sum_{i=1}^k\theta_if(x_i)) , \sum_{i=1}^k\theta_i=1, \theta_i \geq 0$$
也可以扩展到无限多个点或者某个区间的情况:
$$f(\int p(x)xdx) \leq \int p(x)f(x)dx , \int p(x)dx=1, p(x \geq 0)$$
亦即
$$f(\mathbb{E}[x]) \leq \mathbb{E}[f(x)]$$
上式称为Jensen不等式
2.4 Sublevel集合
\(\alpha-sublevel\)集合是凸集的一种, 对于一个函数\(f: \mathbb{R}^n \to \mathbb{R}\), 以及一个实数\(\alpha \in \mathbb{R}\), \(\alpha-sublevel\)集合的定义为
$${x \in \mathcal{D}(f) : f(x) \leq \alpha}$$
可以很容易的证明上述集合是凸集, 对于\(x,y \in \mathcal{D}(f)\)使得\(f(x) \leq \alpha, f(y) \leq \alpha\):
$$f(\theta x + (1-\theta)y) \leq \theta f(x)+(1-\theta)f(y) \leq \theta \alpha + (1-\theta)\alpha =\alpha$$
2.5 凸函数例子
- 指数函数: \(f: \mathbb{R} \to \mathbb{R}, f(x)=e^{\alpha x}\)
- 负对数:\(f: \mathbb{R} \to \mathbb{R}, f(x)=-log x\)
- 仿射函数: \(f: \mathbb{R} \to \mathbb{R}, f(x)=b^T x + c\)
- 二次函数: \(f: \mathbb{R} \to \mathbb{R}, f(x)=\frac{1}{2}x^TAx + b^Tx + c\)
- 范式: \(f: \mathbb{R} \to \mathbb{R}, f(x)=\parallel x \parallel\)
- 凸函数的非负加权和:
$$f(x)=\sum_{i=1}^k w_if_i(x)$$其中\(f_1,f_2,...,f_k\)是凸函数
3. 凸优化问题
凸优化问题的形式如下:
$$minimize \hspace{2 pt} f(x)$$
$$subject \hspace{2 pt} to \hspace{2 pt} x \in C$$
其中\(f\)是凸函数,\(C\)凸集, \(x\)是待优化的变量, 我们通常可以把其写成
$$minimize \hspace{2 pt} f(x)$$
$$subject \hspace{2 pt} to \hspace{2 pt} g_i(x) \leq 0, i=1,...,m$$
$$h_i(x) = 0, i=1,...,p$$
其中\(f\)和\(g_i\)是凸函数,\(h_i\)是仿射函数.
\(g_i\)必须小于等于0, 这样得到的\(x\)的可行域(feasible region)才是凸的(因为\(g_i(x) \leq 0\)定义了一个\(\alpha-sublevel\)集)
3.1 凸问题中的全局最优
凸问题的一个很好地特性是其局部最优解也是全局最优解.推导如下
首先定义局部最优解: 当\(x\)是可行的(亦即位于可行域内), 而且存在\(R > 0\), 使得对于所有\(\parallel x-z \parallel_2 \leq R\)的位于可行点\(z\),使得\(f(x) \leq f(z)\).
然后定义全局最优解: 如果\(x\)是可行的, 且对于其他所有的可行点\(z\)都有\(f(x) \leq f(z)\)
凸问题中的全局最优解等同于局部最优解, 证明如下:
令\(x\)是一个局部最优解, 但不是全局最优解, 所以存在一个可行的点\(y\)使得\(f(x) > f(y)\).根据局部最优解的定义, 没有一个可行点\(z\)满足\(\parallel x-z \parallel_2 \leq R, f(z) < f(x)\). 但是, 我们可以选择$$z=\theta y + (1-\theta)x, \theta=\frac{R}{2\parallel x-y \parallel_2}$$
那么
$$\parallel x-z \parallel_2=\parallel x=(\frac{R}{2\parallel x - y \parallel_2}y+(1-\frac{R}{2\parallel x - y \parallel_2})x)\parallel_2$$
$$=\parallel \frac{R}{2\parallel x - y\parallel_2}(x-y)\parallel_2$$
$$=R/2 \leq R$$
另外, 因为\(f\)是凸函数, 所以
$$f(z)=f(\theta y + (1-\theta)x) \leq \theta f(y) + (1-\theta)f(x) < f(x)$$
因为可行域是凸集,\(x\), \(y\)都是可行的, 所以\(z=\theta y + (1-\theta)x\)也是可行的, 且\(\parallel x-z \parallel_2 < R, f(z) < f(x)\), 假设不成立,所以\(x\) 是全局最优解.
3.2 凸问题的例子
- 线性规划(LP, Linear Programming):
$$minimize \hspace{2 pt} c^Tx+d$$
$$subject \hspace{2 pt} to \hspace{2 pt} Gx \succeq h$$
$$Ax=b$$
- 二次规划(QP, Quadratic Programming):
$$minimize \hspace{2 pt} \frac{1}{2}x^TPx+c^Tx+d$$
$$subject \hspace{2 pt} to \hspace{2 pt} Gx\succeq h$$
$$Ax=b$$
- 二次限制的二次优化(QCQP, quadratically constrained QP):
$$minimize \hspace{2 pt} \frac{1}{2}x^TPx+c^Tx+d$$
$$subject \hspace{2 pt} to \hspace{2 pt} \frac{1}{2}x^TQ_ix+r_i^Tx+s_i \leq 0, i=1,...,m$$
$$Ax=b$$
- 半定规划(Semidefinite Programming):
$$minimize \hspace{2 pt} tr(CX)$$
$$subject \hspace{2 pt} to \hspace{2 pt} tr(A_iX)=b_i, i=1,...,p$$
$$X \preceq 0$$
参考文献:
[1]. Zico Kolter, Honglak Lee. Convex Optimization Overview.
[2]. Stephen Boyd, Lieven Vandenberghe. Convex Optimization.
凸优化(Convex Optimization)浅析的更多相关文章
- 凸优化 Convex Optimization PDF 扫描文字识别版
凸优化理论 Convex Optimization 清华大学出版社 王书宁许窒黄晓霖译 Stephen Boyd Lieven Vandenbergt原著 2013 年l 月第1 版 下载链接 链接: ...
- Convex optimization 凸优化
zh.wikipedia.org/wiki/凸優化 以下问题都是凸优化问题,或可以通过改变变量而转化为凸优化问题:[5] 最小二乘 线性规划 线性约束的二次规划 半正定规划 Convex functi ...
- CMU Convex Optimization(凸优化)笔记1--凸集和凸函数
CMU凸优化笔记--凸集和凸函数 结束了一段时间的学习任务,于是打算做个总结.主要内容都是基于CMU的Ryan Tibshirani开设的Convex Optimization课程做的笔记.这里只摘了 ...
- 在线学习和在线凸优化(online learning and online convex optimization)—FTL算法5
最自然的学习规则是使用任何在过去回合中损失最小的向量. 这与Consistent算法的精神相同,它在在线凸优化中通常被称为Follow-The-Leader,最小化累积损失. 对于任何t: 我们谈到了 ...
- 在线学习和在线凸优化(online learning and online convex optimization)—凸化方法4
一些在线预测问题可以转化到在线凸优化框架中.下面介绍两种凸化技术: 一些在线预测问题似乎不适合在线凸优化框架.例如,在线分类问题中,预测域(predictions domain)或损失函数不是凸的.我 ...
- 凸优化简介 Convex Optimization Overview
最近的看的一些内容好多涉及到凸优化,没时间系统看了,简单的了解一下,凸优化的两个基本元素分别是凸函数与凸包 凸集 凸集定义如下: 也就是说在凸集内任取两点,其连线上的所有点仍在凸集之内. 凸函数 凸函 ...
- 在线学习和在线凸优化(online learning and online convex optimization)—在线凸优化框架3
近年来,许多有效的在线学习算法的设计受到凸优化工具的影响. 此外,据观察,大多数先前提出的有效算法可以基于以下优雅模型联合分析: 凸集的定义: 一个向量 的Regret定义为: 如前所述,算法相对于竞 ...
- 在线学习和在线凸优化(online learning and online convex optimization)—在线分类问题2
紧接上文,我们讲述在线分类问题 令,为0-1损失,我们做出如下的简化假设: 学习者的目标是相对于hypotheses set: H具有low regret,其中H中的每个函数是从到{0,1}的映射,并 ...
- 在线学习和在线凸优化(online learning and online convex optimization)—基础介绍1
开启一个在线学习和在线凸优化框架专题学习: 1.首先介绍在线学习的相关概念 在线学习是在一系列连续的回合(rounds)中进行的: 在回合,学习机(learner)被给一个question:(一个向量 ...
随机推荐
- Internet History, Technology and Security (Week 7)
Week 7 Technology: Application Protocols Welcome to Week 7 of IHTS. This week has less material than ...
- 课堂alpha发布
项目组名:奋斗吧兄弟 今天七组对于各自项目现有的成果进行了alpha发布,下面是我的一些感想. 天天向上团队的连连看游戏: 令我印象最深的是天天向上团队的连连看项目,他们目前能展示给我们的是核心的连连 ...
- day02--Python基础二(基础数据类型)
一.数据与数据类型 1 什么是数据? x=10,10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3 数据类型 数字(int) 字符串 ...
- Memcache服务器端+Redis服务器端+PHP Memcache扩展+PHP Memcached扩展+PHP Redis扩展+MemAdmin Memcache管理工具+一些概念(更新中)
Memcache和Redis因为操作简单,是我们常用的服务器数据缓存系统,以下文字仅作备忘记录,部份转载至网络. 一.定义 1.Memcache Memcache是一个高性能的分布式的内存对象缓存系统 ...
- tensorflow环境下安装scikit-learn
1. scikit-learn所依赖的环境: python(>=2.6 or >=3.3) numpy(>=1.6.1) scipy(>=0.9) 可用conda list 查 ...
- JAVA相关概念(一)
依赖注入和控制反转 首先,这两个词是同一个概念的不同角度的说法,依赖注入感觉是对描述了如何实现,而控制反转则像是描述了一种思想. 依赖注入的流行可以说是由spring的流行带动的,只要是做过sprin ...
- Alpha,Beta,RC,RTM,EVAL,CTP,OEM,RTL,VOL
微软的一个系统(如Win 7)或开发工具(VS系列),往往会对应很多种版本,下面就介绍一下这些版本的含义: Alpha (阿尔法,希腊字母的第一位'α',代表最初的版本) Alpha是内部测试版, ...
- OpenSSL 自签名证书
通过下面9步,可以轻松生成自签名证书. 1.安装.部署OpenSSL 略 2.创建文件夹(下面通常root文件夹).用来放即将创建的各种证书等.如:I:\Key10.167.219.64 3.在roo ...
- 树形DP入门详解+题目推荐
树形DP.这是个什么东西?为什么叫这个名字?跟其他DP有什么区别? 相信很多初学者在刚刚接触一种新思想的时候都会有这种问题. 没错,树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上. 既 ...
- P3701 「伪模板」主席树
题目背景 byx和手气君都非常都非常喜欢种树.有一天,他们得到了两颗奇怪的树种,于是各自取了一颗回家种树,并约定几年后比一比谁种出来的树更加牛x. 题目描述 很快,这棵树就开花结果了.byx和手气君惊 ...