最优化——凸优化概述

news2024/11/14 13:32:19

引言

这是中科大最优化理论的笔记,中科大凌青老师的凸优化课程,详尽易懂,基础扎实。不论是初学者还是从业多年的人,都值得系统地好好学一遍。

本文主要介绍什么是凸优化,通过几个例子来阐述什么是凸优化问题。让大家有一个感性的认知。

优化/数学规划

优化(Optimization)或称为数学规划(Mathematical Programming)是从一个可行解的集合中,寻找出最优的元素。

任何一个优化问题,可以写成下面这样的形式:
minimize  f 0 ( x ) subject to  f i ( x ) ≤ b i ,     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)
我们要最小化 f 0 ( x ) f_0(x) f0(x),同时有一些约束,使得 f i ( x ) ≤ b i f_i(x) \leq b_i fi(x)bi,总共有 m m m个约束。

这里 x x x一般来说是一个 n n n维的向量, x = [ x 1 , ⋯   , x n ] T x=[x_1,\cdots,x_n]^T x=[x1,,xn]T,称为优化变量(ptimization variable)

函数 f 0 : R n → R f_0: R^n \rightarrow R f0:RnR,称为目标函数(objective function),是一个从 n n n维到 1 1 1维的映射。

函数 f i : R n → R , i = 1 , ⋯   , m f_i:R^n \rightarrow R, i=1,\cdots,m fi:RnR,i=1,,m不等式约束(inequality constraint)函数,而一个等式约束可以写成两个不等式约束,这里为了简便,就不写出等式约束了;

优化问题的解,最优的 x x x记为 x ∗ x^* x,等价于 ∀ z ∈ R n \forall z \in R^n zRn,对于 z ∈ { f i ( z ) ≤ b i , i = 1 , ⋯   , m } z \in \{f_i(z) \leq b_i, i=1,\cdots,m \} z{fi(z)bi,i=1,,m},总是有 f 0 ( z ) ≥ f 0 ( x ∗ ) f_0(z) \geq f_0(x^*) f0(z)f0(x),即对于所有满足约束条件的 z z z,其结果都不会好于最优解。

集合 { f i ( z ) ≤ b i , i = 1 , ⋯   , m } \{f_i(z) \leq b_i, i=1,\cdots,m \} {fi(z)bi,i=1,,m}是可行解集合(feasible set),即所有满足约束点的集合。

这里描述的是一般的优化问题,任何一般的优化问题都可以写成这样的形式。

这里的数学公式优点抽象,下面我们来看一些优化问题的例子。

一维例子1

如上图,假设我们要优化这样一个目标函数,约束是:
x ≤ a − x ≤ a x \leq a \\ -x \leq a xaxa
相当于 x ∈ [ − a , a ] x \in [-a,a] x[a,a]之间,可行解集为 − a -a a a a a之间所有的点所构成的点集。最优解是在上图 x ∗ x^* x处。

如果我们把该曲线改一下:

一维例子2

同样于 x ∈ [ − a , a ] x \in [-a,a] x[a,a]之间,这个问题看起来有两个最优解,没错,该问题的最优解集是由这两个点所构成的集合。

所以最优解并不一定只有一个,一般只有一个最优解的问题会简单一点。

应用

本小节介绍几个例子。

数据拟合问题

假设我们通过一个实验得到一些散点,我们想把这些散点拟合成一条线。

IMG_6CB7BBFAA16C-1

如上图,现在有 ( x 1 , y 1 ) , ⋯   , ( x n , y n ) (x_1,y_1),\cdots,(x_n,y_n) (x1,y1),,(xn,yn)这些点,假设这条线是一个二次曲线。

可以写成: y = a x 2 + b x + c y=ax^2 + bx+c y=ax2+bx+c

其中 x , y x,y x,y可以通过测量知道,而 a , b , c a,b,c a,b,c是需要估计的参数。

而测量是有误差的,我们目标是使得测量误差尽可能小,所以用最小二乘准则
min ⁡ ϵ 1 2 + ϵ 2 2 + ⋯ + ϵ n 2 \min \quad \epsilon_1^2 + \epsilon_2^2 + \cdots + \epsilon_n^2 minϵ12+ϵ22++ϵn2
其中 ϵ i = y i − ( a x i 2 + b x i + 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 , y x,y x,y两个坐标轴。

我们知道所有的图像都是有一定的规律,图像具有分片光滑性,即图片中通常具有很大的色块。这些色块为我们提供了先验知识,使得图像的TV范数尽可能小。

TV范数(Total Variation)表示的意义是使图像分片光滑的,可以定义如下:
∣ ∣ Φ ∣ ∣ T V = ∑ 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=yx(Φ(x,y)Φ(x,y1))2+(Φ(x,y)Φ(x1,y1))2
表示对图像做两个方向上的差分,然后计算平方,再求和,最后取根号。

对于任何一个分片光滑的图像,它的TV范数一定都是比较小的。有了这样一个先验知识后,我们就可以写出这样一个优化问题:
min ⁡ Φ ∣ ∣ Φ ∣ ∣ T V + λ ∣ ∣ Φ − Φ 0 ∣ ∣ F 2 \min_\Phi \quad ||\Phi||_{TV} + \lambda ||\Phi - \Phi_0||_F^2 ΦminΦTV+λΦΦ0F2
我们要找到一个这样的 Φ \Phi Φ,它的TV范数要尽可能的小,实际上就是一个分片光滑的图片。上式后面那一项是规范化项,因为我们要求 Φ \Phi Φ不光是分片光滑的,还希望 Φ \Phi Φ Φ 0 \Phi_0 Φ0比较接近。即这两个矩阵之差的F范数要尽可能的小。

这个模型就是图像中非常著名的TV-L2模型。

优化问题的分类

优化问题按照不同的角度可以分成哪些类呢?

线性规划/非线性规划

线性规划就是说,优化问题的目标函数和所有的约束函数均为线性函数。

那什么是线性函数?

若某数学函数或数量关系的函数图像呈现一条直线或线段,那么这种关系就是一种线性的关系,该函数称为线性函数。

在线性代数中,线性函数时一个线性映射,是在两个向量空间之间,维持向量加法与标量乘法的映射。
f ( a + b ) = f ( a ) + f ( b ) f ( k a ) = k f ( 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)
回到凸优化中,线性规划的函数满足
f i ( α x + β y ) = α f i ( x ) + β f i ( y ) i = 0 , 1 , ⋯   , m f_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
对于一个优化问题,它的这些函数都是线性函数的化,那么这个问题就是线性规划问题。

对于线性规划问题,可能以如下图像表示。

IMG_DE066C1F6D42-1

该图表示线性规划问题中约束所构成的空间,这里是一个五边形。

目标函数也是线性函数,我们可以在该空间中画一些等高线,每条线表示对应 f 0 f_0 f0的取值,等高线上的 f 0 f_0 f0取值相等。上图箭头所指的方向为 f 0 f_0 f0下降的方向。任何一个线性规划问题的最优解一定是在顶点上或边上。

这里最优解为 x ∗ x^* x的位置。

如果存在一个或多个 f i f_i fi是非线性函数,那么该问题就是非线性规划问题。

凸规划/非凸规划

对于所有 f i f_i fi都为凸函数,有
f i ( α x + β y ) ≤ α f i ( x ) + β f i ( y ) i = 0 , 1 , ⋯   , m f_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
或者说它的可行解集是凸集且目标函数是凸函数。

下面来举个例子看下什么叫凸函数,什么叫非凸函数。

IMG_E0333A2BE1A0-1

上图中上半区域的图像代表凸函数,下半区域的图像表示非凸函数。

在凸函数中无法找到一些不相邻的最低的点;而非凸函数能找到不相邻的比较低的点。

为什么要分凸规划(凸优化)和非凸规划,因为凸规划问题是容易解决的优化问题,而非凸规划问题是难解决的优化问题。

任何一个线性规划问题都是凸规划问题。

光滑/非光滑

光滑和非光滑一般针对目标函数 f 0 ( x ) f_0(x) f0(x)而言的,如果一个函数 f 0 ( x ) f_0(x) f0(x)是光滑的,即它在每个点上都是可微的。

如下图:

一维例子1

如果一个目标函数是非光滑的:

IMG_D344E4288040-1

比如说是上图这样的。

光滑的优化问题一般容易一点;非光滑的优化问题一般难一点。但是没有凸规划问题和非凸规划问题差别那么大。

连续/离散

连续和离散是针对可行域的。比如上面线性规划的可行域是连续的。

而离散的优化问题可行域是空间上的一些离散的点:

IMG_3DFE6D6D8A01-1

离散的优化问题一般比较难,但连续的优化问题也不一定容易。

单目标/多目标

上面奖的优化问题其实都是单目标优化问题,即目标函数只有一个。

但实际中很多问题本质上多目标优化问题。

我们主要研究的就是单目标优化问题。

我们主要研究的是凸规划、单目标、目标函数光滑的优化问题。

同时还要知道怎么根据实际需要去构建一些这样容易的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3年测试经验,面试27k自动化测试岗被diss,想给进阶自动化的人提个醒...

毕业后一直从事功能测试的工作,时间久了就没有一点想法,天天都是点点点,也没有一点提升,看着身边一个个的人都忙得不可开交,打听之后知道他们都是在技术上忙,而不像我,在杂事上忙,特…

vue 使用screenfull 实现全屏展示,全局水印实现, 以及全屏放大后部分组件无法使用,水印无法全屏显示问题的解决

需求:1. web项目中看板页面需要单独全屏显示 2. 项目全局增加水印,水印文字为当前用户登录姓名,登录页不显示水印 出现问题描述 单页面进行全屏显示,下拉,时间选择器,抽屉等组件被 全屏覆盖到下一层&…

MyBatis入门基础

目录 1.什么是MyBatis 2.第一个MyBatis查询 2.1 准备工作 2.2 实际操作 2.2.1 定义接口 2.2.2 创建XML实现上述接口 2.3 单元测试 2.3.1 单元测试的优势 2.3.2 创建并使用单元测试 2.3.3 有关断言 3.增删改的基本操作 3.1 插入操作 特殊的添加:返…

【PyTorch】Torchvision

文章目录三、Torchvision1、Dataset2、DataLoader2.1 test_data2.2 test_loader2.3 drop_last2.4 shuffle三、Torchvision PyTorch官网:https://pytorch.org 1、Dataset 数据集描述:https://www.cs.toronto.edu/~kriz/cifar.html 数据集使用说明&#…

SpringCloud案例day05

SpringCloud Gateway网关 案例1&#xff1a;环境搭建 可以复制 Service-A9001 改成Gateway-C9009 》1&#xff1a;创建工程导入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artif…

汽车全景视频制作让企业营销传播无界长久

全景视频制作 全景VR视频&#xff0c;顾名思义就是能够使我们看到拍摄点周围360景致的视频。传统视频拍摄受限于镜头视角&#xff0c;所以我们只能看到镜头前方180内的景物。而全景VR视频能够看到周围360以及上下180各个角度的一切景物&#xff0c;用户能够更加多方位的观赏视频…

可观测性-Event-指标事件采样策略总结

文章目录前言采样的几种策略简单随机采样周期性完整采样基于条件的采样前言 在默认情况下&#xff0c;系统会采集所有追踪&#xff08;Tracing&#xff09;的数据。但是如果系统比较复杂&#xff0c;采集的端点比较多的时候&#xff0c;对存储压力比较大&#xff0c;这个时候我…

Educational Codeforces Round 135 (Rated for Div. 2)

A:思维 题意&#xff1a;箱子里有N个颜色的球&#xff08;用下标代表不同的颜色&#xff09;&#xff0c;每个颜色的球对应一定的数量&#xff0c;你会进行多次拿球的操作&#xff0c;当箱子里的球颜色一致时&#xff0c;你就不能再拿球了&#xff0c;问最后颜色一致的球是哪个…

免疫抑制作用的转录抑制分子

科研人员发现&#xff1a;社交失败导致了小鼠焦虑行为&#xff0c;进而抑制了化疗药物的治疗过程&#xff0c;加速了肿瘤的发展。在正常小鼠中&#xff0c;人为给予外源性糖皮质激素会使得 Tsc22d3(一个具有很强免疫抑制作用的转录抑制分子)在肿瘤浸润树突细胞(TIDC)的表达上调…

Q3营收同比翻三倍,踩猛“油门”零跑必将领跑?

近日&#xff0c;零跑汽车公布三季度财报。从财报成绩来看&#xff0c;有喜有忧。喜的是销量营收同比环比均出现大幅度增长&#xff0c;忧的是亏损同比扩大86.11%。 营收同比猛增398.5%&#xff0c;销量能否穿越迷雾&#xff1f; 详细来看&#xff0c;三季度零跑汽车销量3.56万…

【附源码】计算机毕业设计JAVA旅行指南网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

HOOPS学习笔记

Hoops简介 HOOPS Visualize由一套集成的组件组成&#xff0c;可快速开发高性能设计、可视化和工程应用程序。HOOPS 3DF在每个组件中保持平台独立性&#xff0c;在Windows、Linux和Mac OS X上提供跨平台解决方案。 HOOPS Visualize包含如下组件&#xff1a; 1.HOOPS/3dGS - HO…

vue+express+mysql+elementUI实现前后端交互增删改查

简介&#xff1a;使用 Vue koa koa2-router mySql elementUI实现前后端交互 页面整体效果图&#xff1a; 编辑页面&#xff1a; 添加页面&#xff1a; 删除操作&#xff1a; 数据库客户端使用Navicat for mysql 当然你需要下载安装 在数据库新建 stuInfo 表和表结构 st…

Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐

很明显的一个现象&#xff0c;除了一些老项目&#xff0c;现在 Java 后端项目基本都是基于 Spring Boot 进行开发&#xff0c;毕竟它这么好用以及天然微服务友好。不夸张的说&#xff0c;Spring Boot 是 Java 后端领域最最最重要的技术之一&#xff0c;熟练掌握它对于 Java 程序…

SpringBoot-快速入门

目录 SpringBoot 概念 Spring缺点 SpringBoot 功能 快速入门案例&#xff1a;需求 案例&#xff1a;实现步骤 示例 小结 快速构建SpringBoot工程 SpringBoot 概念 SpringBoot提供了一种快速使用Spring的方式基于约定优于配置的思想&#xff0c;可以让开发人员不必在配置…

QML地图Map中使用QPainterPath,并显示任意点经纬度位置

QML地图Map中提供了供绘制图形的组件&#xff0c;例如MapPolyline&#xff0c;MapCircle等&#xff0c;但是这些组件在绘制复杂轨迹时就显得功能不够全面&#xff0c;因此我将QPainterPath在Map中进行使用并进行绘制&#xff0c;并使用C和Qml中的函数进行相互调用计算获取点屏幕…

macOS 的「预览」有几种用法

如果要评选 macOS 最低调的 App &#xff0c;「预览」可能就会位列其中之一。「预览」和 macOS 结合异常紧密&#xff0c;甚至让人都会遗忘它还是个 App。毕竟大多数的时候&#xff0c;提到「预览」就会想到操作系统的一部分。而实际上&#xff0c;「预览」那「瘦小」的身躯之内…

Unity3D赛车游戏+脚本基础

前言 游戏对象实例化 Scenes游戏场景 GameObject游戏对象 Component组件 Component使用方法 预制体 Unity事件函数 Instantiate():实例化对象 什么是Time.deltaTime Transform的移动&#xff0c;旋转和缩放 实战:赛车游戏 运行演示 具体步骤 游戏打包流程 前言 …

智慧教育解决方案-最新全套文件

智慧教育解决方案-最新全套文件一、建设背景二、思路架构三、建设方案四、获取 - 智慧教育全套最新解决方案合集一、建设背景 目前数字化校园现状&#xff1a; 各自为政 分散建设 各个学校组成的业务系统、网站五花八门&#xff0c;形式多样。形式单一 功能简单 学校网站主要…

为什么同一表情‘‘.length==5但‘‘.length==4?本文带你深入理解 String Unicode UTF8 UTF16

背景 为什么同样是男人&#xff0c;但有的男人&#x1f9d4;‍♂️.length 5&#xff0c;有的男人&#x1f9d4;‍♂.length 4呢&#xff1f; 这二者都是JS中的字符串&#xff0c;要理解本质原因&#xff0c;你需要明白JS中字符串的本质&#xff0c;你需要理解 String Unic…