判定凸函数有一阶和二阶条件两种方式,一阶条件即,

假设fff可微,则函数fff是凸函数的充分必要条件是domfdom fdomf是凸集且对于任意x,y∈domfx,y\in dom fx,y∈domf,下式成立
f(y)≥f(x)+∇f(x)T(y−x)f(y)\geq f(x)+\nabla f(x)^T(y-x)f(y)≥f(x)+∇f(x)T(y−x)
下图是他在图形上的描述,具体证明可以看下面这个blog

https://blog.csdn.net/JiZhG/article/details/52262746?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158881838419725211937190%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57644%2522%257D&request_id=158881838419725211937190&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1


一阶条件在工作中很少被使用,我们往往使用的是二阶条件来判定函数的凸性,二阶条件涉及到了Hessian matrix,他是这样定义的。

Hessian matrix

在数学中,海森矩阵(Hessian matrix 或 Hessian)是一个多变量实值函数的二阶偏导数组成的方块矩阵,假设有一实数函数f(x1,x2,...,xn)f(x_1,x_2,...,x_n)f(x1​,x2​,...,xn​),如果fff的所有的二阶偏导数都存在,那么fff的海森矩阵的第ij−ij-ij−项即:H(f)ij(x)=DiDjf(x)H(f)_{ij}(x)=D_iD_jf(x)H(f)ij​(x)=Di​Dj​f(x),完整的矩阵长下面这样----搜狗百科

二阶条件

现假设fff二阶可微, 即对于开集domfdom fdomf内的任意一点, fff的二阶导或者HessianHessianHessian矩阵存在, 则函数fff是凸函数的充要条件是, 其Hessian矩阵半正定, 即∀x∈domf∀x∈domf∀x∈domf, 有
∇2f(x)⪰0\nabla^2f(x)\succeq0∇2f(x)⪰0
对于R上的函数, 上式退化为f′′(x)⩾0f′′(x)⩾0f′′(x)⩾0. 该条件表明函数fff的导数非减, 从几何上解释就是函数fff在点xxx处具有向上(正)的曲率.


需要注意的一个性质是,对于∇2f(x)≻0\nabla^2f(x)\succ0∇2f(x)≻0,他去掉了等于的条件,可以证明函数f(x)f(x)f(x)是严格凸的,但是反过来无法得到,也就是说严格凸,不一定满足∇2f(x)≻0\nabla^2f(x)\succ0∇2f(x)≻0。

考虑f(x)=x4f(x)=x^4f(x)=x4,这个函数显然是凸的,但是他的二阶导数12x212x^212x2是可以等于0的,不一定完全大于0。


最常用的凸函数:二次函数\textbf{最常用的凸函数:二次函数}最常用的凸函数:二次函数
f:Rn→R,domf=Rn,P∈Sn,Q∈Rn,r∈Rf:R^n\rightarrow R,\;\;dom f=R^n,\;\; P\in S^n,\;\;Q\in R^n,\;\; r\in Rf:Rn→R,domf=Rn,P∈Sn,Q∈Rn,r∈R
f(x)=12xTPx+QTx+rf(x)=\frac{1}{2}x^TPx+Q^Tx+rf(x)=21​xTPx+QTx+r
这是一个二次函数,由于自变量是向量,所以二次项写为xTPxx^TPxxTPx。P一般要求是一个对称的矩阵,Q是向量,R是标量。我们验证一下该函数何时凸,何时凹。

他的海森矩阵就是P,我们只需要判断P是正定,半正定还是半负定。而且该二次函数满足一个性质,如果P是正定的那么函数一定是严格凸的,反过来也可以证明,即严格凸能得到P是正定的,这是为数不多能得到这个性质的函数。


定义域一定要是凸集\textbf{定义域一定要是凸集}定义域一定要是凸集
考虑f(x)=1x2f(x)=\frac{1}{x^2}f(x)=x21​,他的二阶导数f′′(x)=6x−4>0f''(x)=6x^{-4}>0f′′(x)=6x−4>0,但是他显然不是一个凸函数,x=0x=0x=0是他的一个奇异值点,它在左侧凸函数,也在右侧凸函数,但整体不是凸函数。也就是说,如果他的定义域都不是凸集,那么他一定不是凸函数。

常见函数的辨析

能用二阶条件判定的常见函数

仿射,指数函数,幂函数,绝对值的幂函数,对数函数,负熵


仿射函数:f(x)=Ax+b,∇2f(x)=0\color{blue}仿射函数:f(x)=Ax+b,\nabla^2 f(x)=0仿射函数:f(x)=Ax+b,∇2f(x)=0
显然它既是半正定,也是半负定,因此既是凸函数也是凹函数。


指数函数:f(x)=eax,x∈R,a∈R\color{blue}指数函数:f(x)=e^{ax},x\in R, a\in R指数函数:f(x)=eax,x∈R,a∈R
f′(x)=aeax,f′′(x)=a2eax≥0f'(x)=ae^{ax}, f''(x)=a^2e^{ax}\geq0f′(x)=aeax,f′′(x)=a2eax≥0,因此该函数一定是凸函数。


幂函数:f(x)=xa,x∈R++,a∈R\color{blue}幂函数:f(x)=x^a,x\in R_{++}, a\in R幂函数:f(x)=xa,x∈R++​,a∈R
x一定是一个正数,f′(x)=axa−1,f′′(x)=a(a−1)xa−2f'(x)=ax^{a-1}, f''(x)=a(a-1)x^{a-2}f′(x)=axa−1,f′′(x)=a(a−1)xa−2,此时显然他不是任何时候都满足≥0\geq 0≥0,因此需要分情况进行讨论。

有两点比较特殊,当a=1a=1a=1或者a=0a=0a=0的时候,它变成了仿射函数和常数,显然既是凸的也是凹的。


绝对值的幂函数:f(x)=∣x∣p,x∈R,a∈R\color{blue}绝对值的幂函数:f(x)=|x|^p,x\in R, a\in R绝对值的幂函数:f(x)=∣x∣p,x∈R,a∈R
这里将x的限制去掉,但是我们不想结果是负的,所以加上绝对值,注意p不能等于1,|x|函数是一阶不可导的。(但是需要注意p=1时,|x|是凸函数),然后考虑p!=1p!=1p!=1的场景。此时我们求其二阶导数:

显然p≥1p\geq 1p≥1时,这是一个凸函数,在p<1p<1p<1的时候是没有一个统一的结论的。


对数函数:f(x)=log⁡x,x∈R++\color{blue}对数函数:f(x)=\log{x},x\in R_{++}对数函数:f(x)=logx,x∈R++​
对数函数一定是凹函数,他的二阶导数f′′(x)=−1x2<0f''(x)=-\frac{1}{x^2}<0f′′(x)=−x21​<0,所以这是一个严格凹函数。


负熵:f(x)=xlog⁡x,x∈R++\color{blue}负熵:f(x)=x\log{x},x\in R_{++}负熵:f(x)=xlogx,x∈R++​

f′′(x)=1xf''(x)=\frac{1}{x}f′′(x)=x1​,是一个严格凸的函数。在信息论里我们总是要极大化熵,也就是找到熵这个凹函数的最大值。

范数-零范数

Rn空间的范数p(x)x∈RnR^n空间的范数 p(x) x\in R^nRn空间的范数p(x)x∈Rn
范数是满足以下三个性质的函数

  1. p(ax)=∣a∣p(x)p(ax)=|a|p(x)p(ax)=∣a∣p(x)
  2. p(x+y)≤p(x)+p(y)p(x+y)\leq p(x)+p(y)p(x+y)≤p(x)+p(y)
  3. p(x)=0当且仅当x=0p(x)=0当且仅当x=0p(x)=0当且仅当x=0

此时我们不能求二阶导数,因此需要使用一阶条件来证明他确实是一个凸函数。


零范数∣∣x∣∣0=非零元素的个数零范数 ||x||_0=非零元素的个数零范数∣∣x∣∣0​=非零元素的个数
零范数不是范数,他也不是一个凸函数。为什么他不满足范数的定义呢,其实是不满足第一个条件。

极值函数与解析逼近

极大值函数f(x)=max⁡{x1,...,xn},x∈Rn\mathbf{极大值函数 f(x)=\max\{x_1,...,x_n\},x\in R^n}极大值函数f(x)=max{x1​,...,xn​},x∈Rn
显然我们无法求二阶导数,因此我们使用他的定义,对∀x,y∈Rn,∀0≤θ≤1\forall x,y\in R^n,\forall 0\leq\theta\leq 1∀x,y∈Rn,∀0≤θ≤1

那么我们有
f(θx+(1−θ)y)=max⁡{θxi+(1−θ)yi,i=1,...,n}f(\theta x+(1-\theta )y)=\max\{\theta x_i+(1-\theta)y_i,i=1,...,n\}f(θx+(1−θ)y)=max{θxi​+(1−θ)yi​,i=1,...,n}
也就是把x,y的每一个元素都单独拿出来求其中的最大值,然后我们可以得到
f(θx+(1−θ)y)≤θmax⁡{xi,i=1...n}+(1−θ)max⁡{yi,i=1...n}=θf(x)+(1−θ)f(y)f(\theta x+(1-\theta )y)\leq \theta\max\{x_i,i=1...n\}+(1-\theta)\max\{y_i,i=1...n\}=\theta f(x)+(1-\theta)f(y)f(θx+(1−θ)y)≤θmax{xi​,i=1...n}+(1−θ)max{yi​,i=1...n}=θf(x)+(1−θ)f(y)
得证。

但是对于极大值函数他是不可导的,优化比较麻烦,我们通常给他做一个可导的近似优化,叫做解析逼近。
log-sum-up\textbf{log-sum-up}log-sum-up
首先我们对所有的元素进行一个操作
f(x)=log⁡(ex1+...+exn);x∈Rnf(x)=\log(e^{x1}+...+e^{xn});x\in R^nf(x)=log(ex1+...+exn);x∈Rn
这个函数满足一个非常好的性质,
max⁡{x1,...,xn}≤f(x)≤max⁡{x1,...,xn}+log⁡n\max\{x_1,...,x_n\}\leq f(x)\leq \max\{x_1,...,x_n\}+\log nmax{x1​,...,xn​}≤f(x)≤max{x1​,...,xn​}+logn
然后我们证明这个解析逼近是一个凸函数,直接求二阶偏导。

之后的证明涉及了柯西斯瓦兹不等式以及一系列变换,详细推导来这里

几何平均

f(x)=(x1+...+xn)1n;x∈R++f(x)=(x_1+...+x_n)^{\frac{1}{n}};x\in R_{++}f(x)=(x1​+...+xn​)n1​;x∈R++​
这是一个凹函数,不是一个凸函数。

凸函数二阶条件的理解及常见函数解析相关推荐

  1. 凸函数一阶条件二阶条件证明

    定义 如果 domf \textbf{dom} f是凸集, 且 ∀x,y∈domf \forall x, y\in\textbf{dom}f和 ∀0⩽θ⩽1 \forall 0\leqslant\th ...

  2. KKT条件和二阶条件和凸度优化(六)

    KKT要点和备注 KKT条件是一般约束优化问题的一阶必要条件(FONC). KKT条件统一了所有以前研究过的FONC. 满足KKT条件的IA(可行)点称为KKT点,无论它是否满足CQ. KKT点是局部 ...

  3. 搜索引擎——用户搜索意图的理解及其难点解析,本质是利用机器学习用户的意图分类...

    用户搜索意图的理解及其难点解析 搜索引擎涉及的技术非常的繁复,既有工程架构方面的,又有算法策略方面的.综合来讲,一个搜索引擎的技术构建主要包含三大部分: 对 query 的理解 对内容(文档)的理解 ...

  4. 计算机英语阅读路线,高考英语阅读理解真题解析·计算机运用

    说明:引用此文请注明出处,并务请保留后面的有效链接地址,谢谢! 高考英语阅读理解真题解析·计算机运用 Computer people talk a lot about the need for oth ...

  5. 拆轮子系列--RxJava理解(一)--Map解析

    本系列文章如下: 拆轮子系列--RxJava前奏篇 拆轮子系列--RxJava理解(一)--Map解析 拆轮子系列--RxJava理解(二)--subscribeOn 拆轮子系列--RxJava理解( ...

  6. left join on多条件深度理解

    left join on多条件深度理解 核心:理解左连接的原理! 左连接不管怎么样,左表都是完整返回的 当只有一个条件a.id=b.id的时候: 左连接就是相当于左边一条数据,匹配右边表的所有行,满足 ...

  7. 答案原文及理解解释《解析解释守株待兔死脑筋,旁门左道不正规是什么》什么意思含义

    答案原文及理解解释<解析解释守株待兔死脑筋,旁门左道不正规是什么>什么意思含义 你曾年少轻狂,不懂时光,不信岁月无常!以为自己坚定一切,就坚守一切!却不知,在往后的岁月里,你当初所有的壮志 ...

  8. 拉格朗日对偶原理与KKT条件的理解

    关于拉格朗日对偶和KKT条件的理解 关于这部分内容,我是在学习svm的时候碰到的,内容简单,但是确实要理解了才能理解svm的推导过程,故把参考的一些足够的文章放在下面咯!!! SVM(二)拉格朗日对偶 ...

  9. __init__在python中的用法知乎_python中对_init_的理解及实例解析 python为什么要有一个init函数 知乎...

    Python中"__init__"的意义是什么? Python中__init__的意义依偎着你心跳声如此频繁,就算世界末日小编也会嚣张的笑. 测试人员学python时,应该如何理解 ...

最新文章

  1. torch.nn.module API
  2. 内向女生适合学计算机吗,适合内向女生学的专业有哪些
  3. JMS学习(3):--ActiveMQ简单的HelloWorld实例
  4. docker安装jenkins并用docker部署net
  5. 60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld
  6. 在linux下 用户的密码错误,linux – 常规用户帐户之间的su失败,“su:密码错误”...
  7. 【Python】sys库介绍
  8. gRPC编译和安装——Linux版
  9. mysql函数之二:left,right,substring,substring_index MySQL截取字符串函数方法
  10. Missing Push Notification Entitlement警告-----以及解决方法
  11. python监控网页_【小白教程】Python3监控网页
  12. OpenCV——Roberts算子
  13. SAS-配对设计资料秩和检验
  14. Java实现小说分割器
  15. OAI SDR LTE 基站部署
  16. 怎样给CSDN博客添加微信二维码
  17. 海森堡bug_海森堡因超速而停下来警察说,你知道你要走多快,海森堡说
  18. 前后端鉴权方案,一文打尽!
  19. 电子版产品手册如何制作?简单的方法来了
  20. 女生适合学UI设计吗

热门文章

  1. ADP(自适应动态规划)-HDP
  2. 考研数学一无穷级数总结
  3. 【从零开始学习YOLOv3】3. YOLOv3的数据加载机制和增强方法
  4. AltiumDesigner PCB案牍(2)——自定义原理图模板
  5. AD7606调试笔记
  6. 【数字IC】深入浅出理解I2C协议
  7. Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)...
  8. 物联卡中心:移动物联卡怎么设置APN?
  9. python(应用)中文输出拼音
  10. 晶振选型需要注意哪些事项?-台湾TST嘉硕