最优化——凸优化概述
引言
这是中科大最优化理论的笔记,中科大凌青老师的凸优化课程,详尽易懂,基础扎实。不论是初学者还是从业多年的人,都值得系统地好好学一遍。
本文主要介绍什么是凸优化,通过几个例子来阐述什么是凸优化问题。让大家有一个感性的认知。
优化/数学规划
优化(Optimization)或称为数学规划(Mathematical Programming)是从一个可行解的集合中,寻找出最优的元素。
任何一个优化问题,可以写成下面这样的形式:
minimize f0(x)subject to fi(x)≤bi,i=1,…,m(1)\begin{aligned} \text{minimize}\ &f_0(x)\\ \text{subject to}\ &f_i(x)\leq b_i,\ \ \ i=1,\dots,m\\ \end{aligned} \tag{1} minimize subject to f0(x)fi(x)≤bi, i=1,…,m(1)
我们要最小化f0(x)f_0(x)f0(x),同时有一些约束,使得fi(x)≤bif_i(x) \leq b_ifi(x)≤bi,总共有mmm个约束。
这里xxx一般来说是一个nnn维的向量,x=[x1,⋯,xn]Tx=[x_1,\cdots,x_n]^Tx=[x1,⋯,xn]T,称为优化变量(ptimization variable);
函数f0:Rn→Rf_0: R^n \rightarrow Rf0:Rn→R,称为目标函数(objective function),是一个从nnn维到111维的映射。
函数fi:Rn→R,i=1,⋯,mf_i:R^n \rightarrow R, i=1,\cdots,mfi:Rn→R,i=1,⋯,m 为不等式约束(inequality constraint)函数,而一个等式约束可以写成两个不等式约束,这里为了简便,就不写出等式约束了;
优化问题的解,最优的xxx记为x∗x^*x∗,等价于∀z∈Rn\forall z \in R^n∀z∈Rn,对于z∈{fi(z)≤bi,i=1,⋯,m}z \in \{f_i(z) \leq b_i, i=1,\cdots,m \}z∈{fi(z)≤bi,i=1,⋯,m},总是有f0(z)≥f0(x∗)f_0(z) \geq f_0(x^*)f0(z)≥f0(x∗),即对于所有满足约束条件的zzz,其结果都不会好于最优解。
集合{fi(z)≤bi,i=1,⋯,m}\{f_i(z) \leq b_i, i=1,\cdots,m \}{fi(z)≤bi,i=1,⋯,m}是可行解集合(feasible set),即所有满足约束点的集合。
这里描述的是一般的优化问题,任何一般的优化问题都可以写成这样的形式。
这里的数学公式优点抽象,下面我们来看一些优化问题的例子。
如上图,假设我们要优化这样一个目标函数,约束是:
x≤a−x≤ax \leq a \\ -x \leq a x≤a−x≤a
相当于x∈[−a,a]x \in [-a,a]x∈[−a,a]之间,可行解集为−a-a−a到aaa之间所有的点所构成的点集。最优解是在上图x∗x^*x∗处。
如果我们把该曲线改一下:
同样于x∈[−a,a]x \in [-a,a]x∈[−a,a]之间,这个问题看起来有两个最优解,没错,该问题的最优解集是由这两个点所构成的集合。
所以最优解并不一定只有一个,一般只有一个最优解的问题会简单一点。
应用
本小节介绍几个例子。
数据拟合问题
假设我们通过一个实验得到一些散点,我们想把这些散点拟合成一条线。
如上图,现在有(x1,y1),⋯,(xn,yn)(x_1,y_1),\cdots,(x_n,y_n)(x1,y1),⋯,(xn,yn)这些点,假设这条线是一个二次曲线。
可以写成:y=ax2+bx+cy=ax^2 + bx+cy=ax2+bx+c
其中x,yx,yx,y可以通过测量知道,而a,b,ca,b,ca,b,c是需要估计的参数。
而测量是有误差的,我们目标是使得测量误差尽可能小,所以用最小二乘准则
minϵ12+ϵ22+⋯+ϵn2\min \quad \epsilon_1^2 + \epsilon_2^2 + \cdots + \epsilon_n^2 minϵ12+ϵ22+⋯+ϵn2
其中ϵi=yi−(axi2+bxi+c),i=1,⋯,n\epsilon_i = y_i - (ax_i^2 + bx_i +c), \quad i=1,\cdots ,nϵi=yi−(axi2+bxi+c),i=1,⋯,n
即,我们要使所有测量误差的平方和尽可能的小,这就是一个最小二乘问题。这是一个很典型的优化问题。
图像处理
假设给定一个二维图像Φ0(x,y)\Phi_0(x,y)Φ0(x,y),且该图像是带噪声的,希望恢复出一个不带噪声的图像Φ(x,y)\Phi(x,y)Φ(x,y)。
其中x,yx,yx,y两个坐标轴。
我们知道所有的图像都是有一定的规律,图像具有分片光滑性,即图片中通常具有很大的色块。这些色块为我们提供了先验知识,使得图像的TV范数尽可能小。
TV范数(Total Variation)表示的意义是使图像分片光滑的,可以定义如下:
∣∣Φ∣∣TV=∑y∑x(Φ(x,y)−Φ(x,y−1))2+(Φ(x,y)−Φ(x−1,y−1))2||\Phi||_{TV} = \sum_y\sum_x \sqrt{(\Phi(x,y)-\Phi(x,y-1))^2 + (\Phi(x,y)-\Phi(x-1,y-1))^2} ∣∣Φ∣∣TV=y∑x∑(Φ(x,y)−Φ(x,y−1))2+(Φ(x,y)−Φ(x−1,y−1))2
表示对图像做两个方向上的差分,然后计算平方,再求和,最后取根号。
对于任何一个分片光滑的图像,它的TV范数一定都是比较小的。有了这样一个先验知识后,我们就可以写出这样一个优化问题:
minΦ∣∣Φ∣∣TV+λ∣∣Φ−Φ0∣∣F2\min_\Phi \quad ||\Phi||_{TV} + \lambda ||\Phi - \Phi_0||_F^2 Φmin∣∣Φ∣∣TV+λ∣∣Φ−Φ0∣∣F2
我们要找到一个这样的Φ\PhiΦ,它的TV范数要尽可能的小,实际上就是一个分片光滑的图片。上式后面那一项是规范化项,因为我们要求Φ\PhiΦ不光是分片光滑的,还希望Φ\PhiΦ与Φ0\Phi_0Φ0比较接近。即这两个矩阵之差的F范数要尽可能的小。
这个模型就是图像中非常著名的TV-L2模型。
优化问题的分类
优化问题按照不同的角度可以分成哪些类呢?
线性规划/非线性规划
线性规划就是说,优化问题的目标函数和所有的约束函数均为线性函数。
那什么是线性函数?
若某数学函数或数量关系的函数图像呈现一条直线或线段,那么这种关系就是一种线性的关系,该函数称为线性函数。
在线性代数中,线性函数时一个线性映射,是在两个向量空间之间,维持向量加法与标量乘法的映射。
f(a+b)=f(a)+f(b)f(ka)=kf(a)\begin{aligned} f(a + b) &= f(a) + f(b) \\ f(ka) &= kf(a) \end{aligned} f(a+b)f(ka)=f(a)+f(b)=kf(a)
回到凸优化中,线性规划的函数满足
fi(αx+βy)=αfi(x)+βfi(y)i=0,1,⋯,mf_i(\alpha x + \beta y) = \alpha f_i(x) + \beta f_i(y) \quad i=0,1,\cdots,m fi(αx+βy)=αfi(x)+βfi(y)i=0,1,⋯,m
对于一个优化问题,它的这些函数都是线性函数的化,那么这个问题就是线性规划问题。
对于线性规划问题,可能以如下图像表示。
该图表示线性规划问题中约束所构成的空间,这里是一个五边形。
目标函数也是线性函数,我们可以在该空间中画一些等高线,每条线表示对应f0f_0f0的取值,等高线上的f0f_0f0取值相等。上图箭头所指的方向为f0f_0f0下降的方向。任何一个线性规划问题的最优解一定是在顶点上或边上。
这里最优解为x∗x^*x∗的位置。
如果存在一个或多个fif_ifi是非线性函数,那么该问题就是非线性规划问题。
凸规划/非凸规划
对于所有fif_ifi都为凸函数,有
fi(αx+βy)≤αfi(x)+βfi(y)i=0,1,⋯,mf_i(\alpha x + \beta y) \leq \alpha f_i(x) + \beta f_i(y) \quad i=0,1,\cdots,m fi(αx+βy)≤αfi(x)+βfi(y)i=0,1,⋯,m
或者说它的可行解集是凸集且目标函数是凸函数。
下面来举个例子看下什么叫凸函数,什么叫非凸函数。
上图中上半区域的图像代表凸函数,下半区域的图像表示非凸函数。
在凸函数中无法找到一些不相邻的最低的点;而非凸函数能找到不相邻的比较低的点。
为什么要分凸规划(凸优化)和非凸规划,因为凸规划问题是容易解决的优化问题,而非凸规划问题是难解决的优化问题。
任何一个线性规划问题都是凸规划问题。
光滑/非光滑
光滑和非光滑一般针对目标函数f0(x)f_0(x)f0(x)而言的,如果一个函数f0(x)f_0(x)f0(x)是光滑的,即它在每个点上都是可微的。
如下图:
如果一个目标函数是非光滑的:
比如说是上图这样的。
光滑的优化问题一般容易一点;非光滑的优化问题一般难一点。但是没有凸规划问题和非凸规划问题差别那么大。
连续/离散
连续和离散是针对可行域的。比如上面线性规划的可行域是连续的。
而离散的优化问题可行域是空间上的一些离散的点:
离散的优化问题一般比较难,但连续的优化问题也不一定容易。
单目标/多目标
上面奖的优化问题其实都是单目标优化问题,即目标函数只有一个。
但实际中很多问题本质上多目标优化问题。
我们主要研究的就是单目标优化问题。
我们主要研究的是凸规划、单目标、目标函数光滑的优化问题。
同时还要知道怎么根据实际需要去构建一些这样容易的问题。
最优化——凸优化概述相关推荐
- 凸优化、最优化、凸集、凸函数
原文:https://www.cnblogs.com/AndyJee/p/5048735.html 我们知道压缩感知主要有三个东西:信号的稀疏性,测量矩阵的设计,重建算法的设计.那么,在重建算法中,如 ...
- 读convex optimization (Stephen Boyd):最优化 最小二乘 线性规划 凸优化 非线性规划 (intro part)
for all x, y ∈ Rn and all α, β ∈ R with α + β = 1, α ≥ 0, β ≥ 0. Since any linear program is therefo ...
- 干货丨从基础知识到实际应用,一文了解「机器学习非凸优化技术」
文章来源:机器之心 优化作为一种研究领域在科技中有很多应用.随着数字计算机的发展和算力的大幅增长,优化对生活的影响也越来越大.今天,小到航班表大到医疗.物理.人工智能的发展,都依赖优化技术的进步. 在 ...
- 最优化模型:线性代数模型、凸优化模型及应用
最优化理论是应用数学的一个分支,该理论研究在约束条件下某个函数的最小值或最大值.这个领域的诞生可以追溯到高斯年轻时所解决的一个天文学问题.后来随着物理学,特别是力学的发展,一些自然现象可被描述为&qu ...
- 详解GCN、GAT、凸优化、贝叶斯、MCMC、LDA
如果你准备发AI方向的论文,或准备从事科研工作或已在企业中担任AI算法岗的工作.那么我真诚的向大家推荐,贪心学院<高阶机器学习研修班>,目前全网上应该找不到类似体系化的课程.课程精选了四大 ...
- UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent
UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent Proximal Gradient Descent的公式推导 Proximal O ...
- 凸集 凸函数 凸优化
目录 写在前面 精简版概念理解 凸集 凸集的性质 凸函数 凸函数性质 凸优化 为什么要求是凸集呢? 为什么要求是凸函数呢? 判断是否为凸函数的简单办法 为什么区分凸优化和非凸优化 非凸优化问题如何转为 ...
- 划重点!十分钟掌握牛顿法凸优化
AI有道 一个有情怀的公众号 之前,我发过一篇文章,通俗地解释了梯度下降算法的数学原理和推导过程,推荐一看.链接如下: 简单的梯度下降算法,你真的懂了吗? 我们知道,梯度下降算法是利用梯度进行一阶优化 ...
- 机器学习之凸优化原理推导及相关知识总结
文章目录 目录 1.了解凸集和仿射集的基本概念. 2.知道几何体的向量表达. 3.了解超平面和半空间的概念. 4.了解分割超平面和支撑超平面的含义. 5.知道jensen不等式. 6.掌握知识:凸函数 ...
最新文章
- boost::graph模块实现内部pmap捆绑的测试程序
- JavaScript实现的水珠动画效果
- linux如何加设磁盘配额,Linux系统攻略:如何为添加的硬盘做配额
- 病毒周报(100301至100307)
- Android:复杂listview条目
- 基于运动特征的视频质量评价方法(基于H.264)
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(二)之分库分表路由...
- oracle 负载均衡连接方式常用SQL语句备忘录
- Python——银行管理系统
- 通信专业顶刊_通信类权威SCI期刊(部分)
- Pr:自动添加字幕​
- 爬虫笔记(二)——Beautiful Soup库
- 【三年前端开发的思考】如何有效地阅读需求?
- 电脑显示未连接一个服务器怎么处理,win7系统提示未能连接一个windows服务如何解决【详解】...
- cf显示服务器登录,cf显示与服务器
- 华为LiteOS操作系统中的LOS_DL_LIST_ENTRY怎么理解?
- 路由 OSPF LSA介绍、1~7类LSA详细介绍
- 美国计算机硕士不接受雅思,美国留学:不接受雅思的大学盘点
- 微型计算机原理与接口技术考试附录
- 解决win7无法打开chm格式文件的问题
热门文章
- 解决:adobe界面模糊且pdf文件模糊
- jQuery实现输入框获取焦点和失去焦点
- 阿里云 Serverless App Engine(SAE)助力升学在线从容应对流量高峰
- Ubuntu下HP LaserJet 1000打印机的安装步骤
- 百度地图 点击地图类型控件切换普通地图、卫星图、三维图、混合图(卫星图+路网),右下角是缩略图
- 打造 PE 和 Linux 二合一U盘启动盘
- css3 slide动画,css3动画+ slidetoggle不起作用(css3 animation + slidetoggle don't work)
- Linux ubuntu修改软件源为国内源;解决apt install、PPA源太慢;
- 【读书笔记】运动改造大脑
- Stage2 核心代码