凸函数在凸优化中有重要的意义,所谓的凸优化,是指目标函数(objective function)和约束条件(constraint function)都是凸函数,然后在此基础上进行优化目标函数,今天就和大家讲一讲我对凸函数的一些理解。
首先,看一下凸函数的具体定义
函数f:Rn→Rf:{R^n} \to Rf:Rn→R是凸的,如果domfdom fdomf(即函数fff的定义域)是凸集,且对于任意x,y∈domfx,y\in dom fx,y∈domf和任意0⩽θ⩽10 \leqslant \theta \leqslant 10⩽θ⩽1,有
f(θx+(1−θ)y)⩽θf(x)+(1−θ)f(y)(1)f\left( {\theta x + \left( {1 - \theta } \right)y} \right) \leqslant \theta f\left( x \right) + \left( {1 - \theta } \right)f\left( y \right)\tag1 f(θx+(1−θ)y)⩽θf(x)+(1−θ)f(y)(1)
上述(1)式就是凸函数的数学上定义,接下来我们从几何角度去看凸函数的定义。

从几何意义上看,凸函数就是任意两点之间的弦(即这两点构成的线段)都在该函数图像(此处是指这两点之间的函数图像,而非全部的函数图像)的上方。
上述定义是从任意的两点去理解凸函数,因此我们可以称之为“两点法”。既然有两点法,那是不是有一点法多点法呢?这也就是我们接下来要讲的内容。
————————————————————————
一点法(即一阶条件和二阶条件):
同样是函数f:Rn→Rf:{R^n} \to Rf:Rn→R,假设fff可微(即其梯度∇f\nabla f∇f在开集domfdom fdomf内处处存在),则函数fff是凸函数的充要条件是domfdom fdomf是凸集且对于任意的x,y∈domfx,y\in domfx,y∈domf,下式成立:
f(y)⩾f(x)+∇f(x)T(y−x)(2)f(y) \geqslant f(x) + \nabla f{(x)^T}(y - x)\tag2f(y)⩾f(x)+∇f(x)T(y−x)(2)
上述(2)式是凸函数的等价定义,也是我们常说的凸函数的一阶条件,同样,我们从几何角度去看这个定义,如下图:
该图的几何意义是:凸函数上的任意一点,我们作该点的切线,则该切线总是在函数图像的下方。因为在该定义下,我们只需要通过函数图像上的一点即可判断是否为凸函数,所以称“一点法”。
一点法”的另一个解释是凸函数的二阶条件:
函数f:Rn→Rf:{R^n} \to Rf:Rn→R,假设fff二阶可微,即对于开集domfdom fdomf内的任意一点,函数fff的Hessian矩阵或二阶导数∇2f{\nabla ^2}f∇2f存在,则函数fff为凸函数的充要条件是:其Hessian矩阵是半正定的,即∇2f≽0{\nabla ^2}f \succcurlyeq 0∇2f≽0从几何角度看,Hessian矩阵半正定表示在点xxx处函数图像具有正(向上)的曲率。
三点法——只针对一维函数
函数f:R→Rf:R \to Rf:R→R,a,b∈domf,a<ba,b \in domf,a<ba,b∈domf,a<b,对任意x∈(a,b)x \in (a,b)x∈(a,b),若下式成立,则函数fff为凸函数:f(x)−f(a)x−a⩽f(b)−f(a)b−a⩽f(b)−f(x)b−x(3)\frac{{f\left( x \right) - f\left( a \right)}}{{x - a}} \leqslant \frac{{f\left( b \right) - f\left( a \right)}}{{b - a}} \leqslant \frac{{f\left( b \right) - f\left( x \right)}}{{b - x}}\tag3x−af(x)−f(a)​⩽b−af(b)−f(a)​⩽b−xf(b)−f(x)​(3)我们同样从几何角度去分析,见下图:

因为在图像中,我们从f(a)f(a)f(a)、f(x)f(x)f(x)、f(y)f(y)f(y)三个点进行分析的,所以称为“三点法”。
多点法(即上镜图)
函数函数f:Rn→Rf:{R^n} \to Rf:Rn→R的图像定义为:
{(x,f(x))∣x∈domf}\left\{ {\left( {x,f\left( x \right)} \right)\left| {x \in dom{\kern 1pt} f} \right.} \right\}{(x,f(x))∣x∈domf}它是Rn+1R^{n+1}Rn+1空间的一个子集。函数f:Rn→Rf:{R^n} \to Rf:Rn→R的上镜图定义为epif={(x,t)∣x∈domf,f(x)⩽t}epif = \left\{ {\left( {x,t} \right)\left| {x \in dom{\kern 1pt} f,f\left( x \right) \leqslant t} \right.} \right\}epif={(x,t)∣x∈domf,f(x)⩽t}如果一个函数的上镜图是凸集,则该函数为凸函数(当该函数的亚图为凸集时,该函数为凹函数)。同样,我们从几何角度去分析这个定义:
图中黑色的线表示函数fff,函数上面的部分(也就是红色向上的竖线描述的部分)即为函数的的上镜图。只要上镜图是凸集,则函数为凸函数(反之也成立)。因为上镜图中包含了很多的点,故称该等价定义为“多点法”。
———————————————————————————————
总结:“一点法”是指通过函数图像中的一点进行分析,即该点的切线总是在函数图像下方(即一阶条件)或该点的曲率总是正的(即二阶条件:Hessian矩阵是半正定的);“两点法”是凸函数的初始定义,即任意两点连线组成的 都在函数图像的上方(是指该两点之间的函数图像);“三点法”指针对一维函数,是指函数图像上不相等的任意三点(三点都在定义域内)满足(3)式的不等式;“多点法”是从函数的上镜图去理解,即一个函数的上镜图是凸集,则该函数是凸函数。
声明:以上纯粹是个人通过学习对凸函数的理解,所谓的“几点法”并不是教科书上或业内人士所公认的称谓,只是本人便于理解和记忆而归纳总结的。

凸函数的理解以及一些等价定义相关推荐

  1. 测度定义_Real analysis:外测度的一个等价定义

    根据stein的real analysis对外测度的定义,我们有: Def:设E为 的任意子集,E的外测度定义为 这里的方块其实就相当于现实中的一把尺子,用它来衡量一些不规则物体的体积等等. 接下来我 ...

  2. 绝对连续的一个等价定义

    该结论是导师教我的. 绝对连续的一般定义 令 I I I 为 R R \mathbb{R} 上的区间. 函数 f:I→R f : I → R f: I \to \mathbb{R} 在 I I I 上 ...

  3. 理解C语言刁钻定义语句的斩麻快刀:自内向外读

    理解C语言刁钻定义语句的斩麻快刀:自内向外读 今天在CSDN论坛见到 A_Zhao 发表于2012-06-18 06:41:16<关于C语言声明.指针.数组.函数.typedef...>引 ...

  4. 深入理解ROC曲线的定义以及绘制ROC曲线过程,其与模型性能的关系,以及AUC

    深入理解ROC曲线的定义以及绘制ROC曲线过程,其与模型性能的关系,以及AUC 很多学习器是为测试样本产生一个实值或者是概率预测,然后将这个预测值和一个分类阈值(threshold)进行比较.若大于阈 ...

  5. 向量范数的几何直观理解和等价定义——如何从几何上定义向量范数?

    [一.向量范数的几何直观理解] \quad 我们知道,一个函数: f : R n ↦ R f:R^n\mapsto R f:Rn↦R 被称为 R n R^n Rn空间的一个范数,如果它满足以下三条性质 ...

  6. 想了解概率图模型?你要先理解图论的基本定义与形式

    图论一直是数学里十分重要的学科,其以图为研究对象,通常用来描述某些事物之间的某种特定关系.而在机器学习的世界里,我们希望从数据中挖掘出隐含信息或模型.因此,如果我们将图中的结点作为随机变量,连接作为相 ...

  7. 某月某日前包括当天吗_10月26日,你真的理解了导数的定义吗?(答思考题送猫王小音箱)...

    点击并关注上方"鸡汤斋",与斋主一起成长 特别说明: 公众号的"一天一题"都是从历年期中.期末,以及各个高等学校或者国家统一的考研试题中抽取的题目进行的详细讲解 ...

  8. 如何理解数列极限的定义?

    高等数学课一开始讲的是数列,包括数列的定义.数列的极限定义和收敛数列的特性.数列的定义容易理解,但数列极限的定义听到大概1/10处开始发懵,后面基本保持懵 ASCII 66 的状态.查找了几篇资料后, ...

  9. 快速学习COSMIC方法之七:如何理解功能处理的定义?

    在COSMIC度量手册中对功能处理的定义如下: a) 体现了待度量软件的功能性用户需求基本部件的一组数据移动,该功能处理在这些FUR中是独一无二的,并能独立于这些FUR的其他功能处理被定义. b) 一 ...

最新文章

  1. linux脚本expect自动登录,SHELL脚本:利用expect完成SSH自动登录
  2. android surfaceview动画,怎么让android的surfaceview中的动画更加平滑流畅
  3. 安全的 ActiveMQ
  4. linux下卸载 dev sd*下硬盘,Linux下硬盘操作解析
  5. Windows Phone开发(20):当MediaElement和VideoBrush合作的时候
  6. HDU多校2 - 6767 New Equipments(最小费用最大流)
  7. access vba 常量数组赋值_聊聊 VBA 数组的那些坑
  8. 使用Epoll 在 Linux 上开发高性能应用服务器
  9. 【LeetCode】4月4日打卡-Day20-接雨水
  10. CentOS 7.1下KVM的安装与配置
  11. java中static关键字简介
  12. 原生的强大DOM选择器querySelector - querySelector和querySelectorAll
  13. 下载HTMLTestRunner 地址
  14. 水晶报表技术(3)——.NET 2005 中动态水晶报表的实现
  15. 解决Spring Boot 拦截器注入service为空的问题
  16. Spring boot 项目中dcm文件转jpg文件
  17. WTL的CBitmapButton在MFC下完美使用
  18. 计算机安全泄露,哪些原因导致计算机信息泄露
  19. 【玩转数据系列十五】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)
  20. keras中 shape参数如何设置

热门文章

  1. Win系统 - 如何安装WIN10系统?(附激活教程)
  2. Unity5网络模块Network介绍
  3. 官方教程:Go fuzzing模糊测试
  4. MATLAB小技巧(24)RBF,GRNN,PNN-神经网络
  5. 回归预测 | MATLAB实现PSO-GRNN多输入单输出回归预测
  6. python卷积神经网络图像,卷积神经网络python实现
  7. 关于数据库主键和外键的作用与区别
  8. The driver has not received any packets from the server,java.net.ConnectException: Connection refuse
  9. 自然语言处理三大特征抽取器(CNN/RNN/TF)比较
  10. pandoc把latex转为word