首发于 凸优化
凸优化笔记(1)Why凸优化以及几个基本概念

凸优化笔记(1)Why凸优化以及几个基本概念

本文主要参考卡耐基梅隆大学(CMU)的Dr. Ryan Tibshirani教授2017年在Convex Optimization(Course 10-725/36-725)课上(课程网站链接: Convex Optimization)的Lecture Notes。以及参考了现任职牛津大学的Dr. Paul Goulart,以前在ETH任教时Convex Optimization课的 Lecture Notes。如有错误疏漏,烦请指出。如需转载,请联系笔者。


在统计学和机器学习领域,基本上你想做的绝大部分事情都是一种优化问题。所以,面对具体应用的问题,你要做的事情可以概括为如下图所示:

Dr. Ryan Tibshirani的图

即:如何把头脑中的conceptual idea转换写成寻找决策变量 x 的最优问题 \min_{x\in D} f(x)

所以,学习Optimization,就是学习

  1. 如何把具体问题formulate成为一个优化问题
  2. 现有算法是如何具体解算上图中的问题 P:\min_{x\in D} f(x)
  3. 面对不同的具体问题如何选择已有算法或者甚至设计发明适合的算法去解决

绝大部分情况下,你只需要做上述的第1个,就是把问题转换成凸优化问题,并写成标准形式,剩下就交给计算机去解算(利用已有的一些优化工具箱)。第2个和第3个是做前沿研究的人通常要做的事情。

Optimization问题是十分热点的问题,现有算法还有很大的优化提升空间,而且还有很多问题没有得到很好解决,尤其是在Statistics与Machine Learning领域。

Convexity:历史上,优化问题通常聚焦在linear programming(线性规划)。最初人们认为,优化问题是线性还是非线性,是不同的优化问题的根本区别(linear programming的历史请参照华盛顿大学数学系的talks notes: Fast Times in Linear Programming: Early Success, Revolutions, and Mysteries--by Dr. Margaret Wright[墙裂推荐读完]):

Dr. Margaret Wright的图

而现在人们认为,优化问题是凸还是非凸才是不同的优化问题之间的根本区别。因为有些问题,虽然是非线性,但是好解(因为是凸的),而有些非线性问题,却非常难解(非凸的)。

by Dimitri P. Bertsekas, Convex Optimization: A Journey of 60 Years

Convex Set: 集合C是 R^n(n=1,2,3,\cdots) 的子集,如果集合C满足 \forall x, y\in C ,推出 tx+(1-t)y\in C for all0\leq t\leq 1 ,那么集合C就是凸集。

图一中第一行是凸集,第二行是非凸集。

Dr. Paul Goulart的图

Remark:常见的convex set有hyperplane, halfspace, polytope, polyhedra, ellipsoid, non-negative orthant, norm ball, norm cone, positive (semi)definite matrix等等。凸集之间的某些运算(不是所有运算)依然是凸的。判断一个集合是不是凸集,一般就是两种办法:

Convex Function: 如果函数 f: R^n\rightarrow R 满足

  1. \bold{dom}(f)\subseteq R^n\bold{dom}(f) 是f的定义域】是convex set.
  2. f(tx+(1-t)y)\leq tf(x)+(1-t)f(y) ,for \forall x, y\in \bold{dom}(f),0\leq t\leq 1
凸函数

Remark: 除了上述的定义,还有等价地通过epigraph的定义方法:如果 f(x) 的epigraph \{(x,t) : f (x) ≤ t\} 是凸集。或者如果你知道 -f(x) 是concave的,也说明了 f(x) 是convex的。如果 f(x) 一阶可微或者二阶可微,又可以通过一阶或者二阶条件来定义,这里就不细讲了。常见的convex function有 ax+b , e^{ax}, x^a(x>0, a\ge 1或者a\le0), |x|^p(p\ge1), x\log x(x>0), L_p norm( p\ge 1 ), \sum e^{x_i},f(X)=Tr(AX)+b , \sigma_\max (X) 等等。凸函数的某些运算或者变量替换(不是所有运算)依然会是凸的。判断一个函数是不是凸的,一般也是两种办法:

Optimization Problem:

其中 D=\bold{dom}(f)\cap \bigcap_{i=1}^{m}\bold{dom}(g_i)\cap \bigcap_{i=1}^{r}\bold{dom}(h_j) ,也就是所有函数 f, g_i(m个)和h_j(r个) 的交集。 x 称作是决策变量(decision variable),f(x) 称作目标函数(objective function),是个标量; g_i(m个) 称作不等式约束(inequality constraint),是个标量; h_j(r个) 称作等式约束(equality constraint),是个标量。或许有人会问,这里为什么是minimize而不是maximize,其实两个都可以,因为minimize目标函数,等价于maximize目标函数乘以-1。但是呢,人们不想一会儿写成min,一会写成max,弄得看起来乱乱的,就统一形式都写成min。我们面对具体的问题,要做的就是怎么把问题写成如同上式中的形式,并且设计算法寻找 x ,使得 x 在满足那些约束的前提下让objection function最小。如果某个点 x\in D ,也就是 x 在函数 f(x) 的定义域,且把 x 代入到函数 g_i(m个)和h_j(r个) 中分别都满足 g_i(x)\le 0h_j(x)=0 ,那么 x 就称作该优化问题的feasible point(可行解)。feasible point可能压根不存在,也可能存在一个或者多个甚至无穷多个。如果存在多个或者无穷多个feasible point,我们需要找到这些feasible point中,能让 f(x) 最小的那个点 x^{\ast} ,那 x^{\ast} 就是该优化问题的optimal(最优解)。显然这里函数 f, g_i(m个)和h_j(r个) 可以是 x 的任意形式的函数(线性或者非线性),而某些形式会让问题好求解,某些形式会让问题特别难解,甚至至今人们都没有找到解决办法,需要站在前沿的学者们去研究和解决。不等式约束 g_i\le 0 (m个)和等式约束 h_j=0 (r个),根本上说是约束了可行的求解域,如下图所示:


以上定义了什么是优化问题,那么问题来了,什么又是优化问题呢?

Convex Optimization Problem: 如果上述优化问题中的函数 f, g_i(m个) 是凸的,而且 h_j(r个) 是affine的,即 h_j(x)=a_j^Tx+b_j, j=1,2,\cdots,r ,那么该问题就是一个凸优化问题。


Remark:

为什么等式约束 h_j 需要是affine的?因为我们在刚才介绍凸集的例图中可以知道,直线是凸集,而曲线是非凸集。affine的等式约束保证了可行域依然是凸集,因为直线->凸集,不是affine的约束那么就是曲线了->非凸集。Convex function有最小值,concave function有最大值。

所以某个问题是凸优化问题,必须满足以下四个条件:

  1. \bold{dom}(f) 是凸集
  2. objective function->f(x) 是凸函数
  3. g_i->m个inequality constraints是convex function
  4. h_j->r个equality constraints是affine的

我们说了,不等式约束 g_i\le 0 (m个)和等式约束 h_j=0 (r个),根本上说是约束了可行的求解域。那么凸优化问题中: g_i\le 0 导致的可行域是凸的, h_j=0 是affine的,最终的可行域 D=\bold{dom}(f)\bigcap[ \cap_{i=1}^{m}\bold{dom}(g_i\le 0) ]\bigcap[\cap_{i=1}^{r}\bold{dom}(h_j=0)] 就一定是凸的吗?答案是Yes,因为 \bold{dom}(f) 是凸的, \bold{dom}(g_i\le 0) 是凸的因此不等式约束形成的区域的交集 \cap_{i=1}^{m}\bold{dom}(g_i\le 0) 是凸的(凸集的交集一定是凸集,而凸集的并集不一定是凸集), \bold{dom}(h_j=0) 是凸的因此 \cap_{i=1}^{r}\bold{dom}(h_j=0) 是凸的。这三大类约束(定义域+不等式约束区域交集+等式约束区域交集)的交集也是凸集。如下图所示的集合X与Y都是凸集,可以看出他们的交集还是凸集,而他们的并集却不是凸集:



接下来的articles,我们将focus on two dimensions: convex vs. nonconvex(易—>难),and constrained vs. unconstrained(易—>难)。

from Zico Kolter, 15-780 – Graduate Artificial Intelligence:Optimization

Convex vs. Non-convex

为什么要研究或者把问题转化为凸优化问题?因为对于凸优化问题,Local minima意味着Global minima。如下图所示,左图是一个凸优化问题,右图是个非凸优化问题:

Dr. Ryan Tibshirani的图

上图中的左图,因为问题是凸的,所以不管系统的起始点是在图中的圆圈、圆圈、绿圆圈、圆圈还是圆圈,只要沿着下降的方向走(你站在某一个点在决定你的下一步怎么走时,下降的方向通常有多个,你可以选取其中任意一个,只要它是下降的),永远都会收敛到同一个最低点,而且这个最低点就是全局最低点。

而上图中的右图,因为问题是非凸的,如果系统起始点在红线和黄线的圆圈处,你沿着下降的方向走,收敛到右图中右边的local minima。而如果系统起始于绿线、蓝线和紫线的圆圈处,沿着下降的方向走,最终收敛到右图中左边的local minima。而这两个local minima不是同一个点。也就是说,你最终的收敛到哪里,依赖于你的系统起始于哪里。而且这两个local minima肯定有一个大,一个小。这是一种非常不好的性质。非凸问题的难点就是面对这种不好的性质,怎么依然找到全局最优解,或者尽量小的那个局部最优解。因为大家都希望不管你起始点在哪里,都能收敛到最小的那个local minima(显然最小的那个local minima就是全局的minima),而不是听天由命,一会儿收敛到较大的那个local minima,一会儿收敛到较小的那个local minima。

Continuous optimization相对于离散化暴力搜索的对比:

By J. Zico Kolter, http://www.cs.cmu.edu/~15780/slides/optimization.pdf

代做工资流水公司潮州转账银行流水公司汕头代开银行流水账长春贷款银行流水开具绍兴制作房贷银行流水武汉薪资流水价格济宁办理入职银行流水汕头银行流水电子版打印泰州打印对公流水衡阳制作薪资流水许昌房贷流水制作北京办对公账户流水岳阳流水账单代开潍坊企业银行流水代办湛江房贷收入证明模板阜阳工资流水app截图报价济南个人银行流水图片新乡银行流水单南阳房贷银行流水 开具武汉银行流水账单多少钱深圳背调银行流水舟山公司银行流水制作滁州代办离职证明三亚代做自存银行流水衡阳打印银行流水PS孝感代做购房银行流水湛江消费贷流水开具济南工资银行流水费用福州银行流水修改价格德阳代开贷款银行流水南京代办房贷银行流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化