math: 凸函数、拟凸函数和保凸运算
这一节主要学习凸函数的定义以及性质。了解保凸运算,以及上镜图与下水平集等。这些基础知识看似零乱,然而却是后面的基础。特别是,在实际应用中如果我们能把一个问题转化为凸优化问题,是非常好的一步。而能够这样做的前提,是知道基本的函数的凸性以及有哪些保凸运算。上镜图有助于我们从集合的角度理解这个函数为什么是凸的(集合的保凸运算);水平集是以函数的形式表示集合,类似于等高线,在历史上是重要的方法。这里我们通过下水平集把函数的凸性和集合的凸性联系了起来。
基本性质
定义
凸函数(Convex)的定义如下:
即:自变量的凸组合的函数值小于等于函数值的凸组合。
严格凸函数,只要把等号去掉。
凹函数(Concave)是凸函数取负号。
仿射函数是既凸且凹的
常见的凸函数
- 仿射函数
- eaX,∀a∈R
- 指数函数:xα在R++,对α≥1或者α≤0
-
扩展值延伸
定义凸函数在定义域外的值为∞,从而将定义域延伸至全空间Rn。
一阶条件(First Order Conditions)
函数f可微分,则函数f是凸函数的充要条件是其定义域dom f是凸集且对于任意的x,y∈dom f,下式成立
即大于等于一阶泰勒近似。上式说明了一个凸函数的局部信息。对于严格凸和凹函数,有相应的结论。
对于一个凸函数,其一阶泰勒近似是原函数的一个全局下估计。反之,若某个函数的一阶泰勒近似总是其全局下估计,则这个函数是凸的。
二阶条件
函数f二阶可微(函数在定义域的开集上处处存在二阶导数),则f是凸函数的充要条件是:其Hessian矩阵是半正定矩阵。即对于所有x∈dom f,有
此条件说明函数的倒数是非递减的。从几何上看是指函数图像在x点具有正的曲率。
函数f二阶可微(函数在定义域的开集上处处存在二阶导数),则f是凹函数的充要条件是:其Hessian矩阵是半负定矩阵。即对于所有x∈dom f,有
R上的例子
- 指数函数。对任意a∈R, 函数eax在R上是凸的
- 幂函数。当a≥1或者a≤0时,xa在R++上是凸函数;当0≤a≤1时,xa在R++上是凹函数
- 绝对值幂函数。当p≥1时,函数|x|p在R上是凸函数。
- 对数函数。函数log(x)在R++上是凹函数。
- 负熵。函数xlog(x)是定义域上的凸函数。
Rn上的一些例子
范数。Rn上任意范数为凸函数。
最大值函数。函数f(x)=max{x1,...,xn}在Rn上是凸的。
二次-线性分式函数。函数f(x,y)=x2/y,其定义域为dom f=R×R++={(x,y)∈R2|y>0}是凸函数。
指数和的对数。函数f(x)=log(ex1+...+exn)在Rn上是凸函数。
几何平均。几何平均函数f(x)=(∏ni=1xi)1/n在定义域Rn++上是凹函数。
对数-行列式。函数f(X)=logdetX在定义域Sn++是凹函数。
判断函数的凸性的方法:
- 根据二阶条件,求出Hessian矩阵,根据Hessian矩阵是否半正定。或者直接判断
- 根据一阶条件判断
- 把函数转化为与其定义域相交的直线,通过单变量函数判断原函数的凸性。
- 把函数看成由其他简单的凸函数通过保凸运算导出。
下水平集(Sublevel Set)
水平集是一种通过函数表示集合的方法。函数的α−下水平集的定义是:
即:使得函数值小于等于α的自变量的集合。
同理可以得到函数的α−上水平集的定义。
凸函数的任意下水平集都是凸集。
凹函数的任意上水平集都是凸集。
因此,可以根据函数的凸性来判断集合的凸性。
比如:
这里算术平均是凸函数,几何平均是凹函数。其复合函数是凹的,因此集合是凸集。
上镜图(Epigraph)
函数的图像是指:
函数的上镜图是指函数图像上面的部分:
显然,可以通过函数图像的上镜图判断函数的凸性。
一个函数是凸函数,当且仅当上镜图是凸集。
一个函数是凹函数,当且仅当亚图是凸集。
一阶条件的几何解释
考虑一阶条件,根据上镜图的定义可得,
Jessen不等式及其扩展
一阶条件的基本不等式也叫做Jessen不等式,可以扩展到无穷项和、积分以及期望。
保凸运算
学习保持凸性或者凹性的运算,可以用于构造新的凸函数或者凹函数,以及判断一个函数的凸性。
非负加权求和
显然,如果函数f是凸函数,则其非负加权求和仍然是凸函数。
f=w1f1+...+wmfm
对凹函数有相应的结论。
从上镜图可以得到这个结论,前面我们已经知道凸集通过线性变换之后的像依然是凸集。而
复合仿射映射
这个性质和集合的保凸运算类似。
逐点最大和逐点上确界
如果f1,...,fm是凸的,那么f(x)=max{f1,...,fm}也是凸的。
逐点最大的性质可以扩展至无限个凸函数的逐点上确界。如果对于任意y∈A,函数f(x,y)关于x都是凸的,则函数g
关于x也是凸的。
从上镜图的角度理解,一系列函数的逐点上确界函数对应着这些函数上镜图的交集,而我们知道凸集的交集仍然是凸集,所以一系列函数的逐点上确界函数的上镜图是凸集。
集合的支撑函数
到集合中最远点的距离
以权为变量的最小二乘
对称矩阵最大特征值
矩阵范数
表示成一组仿射函数的逐点上确界
建立凸函数的技巧:表示成一组仿射函数的逐点上确界
复合函数
标量复合
矢量复合
最小化
函数g的定义域是dom f在x方向上的投影。
透视函数
共轭函数
拟凸函数
拟凸函数:定义域和所有下水平集都是凸集。
拟凹函数:定义域和所有上水平集是凸集。
拟线性函数:既是拟凸又是拟凹,定义域和所有水平集都是凸集。
易知,凸函数是拟凸函数。但是拟凸函数不一定是凸函数。
性质:拟凸性是凸性的扩展。在拟凸条件下,很多性质仍然成立。
拟凸函数的Jensen不等式:
一阶条件
二阶条件
保拟凸运算
待续
对数-凹函数和对数-凸函数
一个函数是否是对数-凸函数,是指这个函数取对数之后是凸函数。
一些例子:
- 许多常见概率密度函数是对数-凹函数
- 高斯概率密度函数的累积分布函数是对数-凹函数
- …
相关性质
函数f二阶可微,则其是对数-凸函数,当且仅当
关于广义不等式的凸性
把普通的不等式替换成广义不等式,则函数的单调性、凸性需要重新定义。
关于广义不等式的单调性
关于广义不等式的凸性
参考文献
《凸优化》
math: 凸函数、拟凸函数和保凸运算相关推荐
- 优化理论(三)凸函数、拟凸函数和保凸运算
这一节主要学习凸函数的定义以及性质.了解保凸运算,以及上镜图与下水平集等.这些基础知识看似零乱,然而却是后面的基础.特别是,在实际应用中如果我们能把一个问题转化为凸优化问题,是非常好的一步.而能够这样 ...
- (最优化理论与方法)第二章最优化所需基础知识-第七节:保凸的运算和共轭函数
文章目录 一:保凸的运算 (1)非负加权和 (2)与仿射函数的复合 (3)逐点取最大值 (4)逐点取上界 (5)与标量函数复合 (6)与向量函数复合 (7)取下确界 (6)透视函数 二:共轭函数 (1 ...
- Matlab中提供了符号计算工具箱(Symbolic Math Toolbox),可以进行符号运算
Matlab中提供了符号计算工具箱(Symbolic Math Toolbox),可以进行符号运算.以下是一些常见的符号运算示例: 定义符号变量 要定义一个符号变量,可以使用 syms 函数.例如,要 ...
- 凸函数1(斯坦福凸优化笔记5)
1 基本性质和例子 1.1 凸函数 函数f:Rn→Rf:R^n \rightarrow R是凸的,如果dom f\mathbf{dom }\ f是凸集,且对于任意x,y∈dom fx,y \in \m ...
- python3 进行保精度运算 fractions 模块 简单使用
在实际应用场景中,采用 / 运行除法得到的结果如果是 无限小数 或 无理数,那么它会失去原有的精度.为了保证原有的精度,python提供了fractions模块,采用分数的形式使运算的一直是有理数 ...
- 凸优化——凸集与凸函数
一.数学规划 从一个可行解的集合中,寻找出最优的元素,称为数学规划,又名优化.可以写为 m i n i m i z e f 0 ( x ) s u b j e c t t o f i ( x ) ...
- 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译
<信息技术和电气工程学科国际知名教材中译本系列:凸优化>从理论.应用和算法三个方面系统地介绍凸优化内容. 凸优化在数学规划领域具有非常重要的地位.从应用角度看,现有算法和常规计算能力已足以 ...
- 机器学习第四课:SVM前置知识点(凸优化问题)
内容主要来源于 大数据文摘 #1 高数教材中拉格朗日乘子法的泛化 ##1.1 高数教材中的拉格朗日乘子法 我们大学时讲了这个计算条件极值的方法,运用拉格朗日乘数法(乘子法) {minf(x)s.t. ...
- 凸优化_Stephen_Boyd_
AI 菌 由于凸优化在机器学习中还是很重要 链接:http://pan.baidu.com/s/1eS3vuLk 密码:3epx 理论部分由4章构成,不仅涵盖了凸优化的所有基本概念和主要结果,还详细介 ...
最新文章
- 从现在到未来50年,传感器将如何改变世界?
- 手语识别 机器学习_机器学习入门实践,让机器识别一只猫
- Python-爬取音悦台MV列表以及反爬虫方法
- conversion to dalvik format failed with error 1 解决
- linux struts2漏洞,重大漏洞预警:Struts 2 远程代码执行漏洞(s2-045\s2-046) (含PoC)
- 机器学习 KD树生成(matlab实现)
- Kafka解惑之Old Producer(3)——Async Analysis
- 《C++ Primer》13.1.2节练习
- Node.js用6行代码1个JS文件搭建一个HTTP静态服务器
- 音乐的聆听 古典音乐的入门
- jQuery实现输入框聚焦,键盘上下键选择城市
- 腕能助手android9,腕间应用助手(com.gmf.watchapkassistant) - 1.7 - 应用 - 酷安
- 为什么打开服务器word文档是只读,以只读方式打开Word文档的方法
- 《名贤集》《明贤集》四言集
- 单应性矩阵的理解及求解4
- 【youcans 的 OpenCV 例程 200 篇】119. 图像的形态学梯度
- Compilation failed while executing : strip 问题解决
- Thinkpad笔记本验机2
- 线代之几何重数代数重数特征向量的理解(1)
- matplotlib marker 设置