首页 > 其他分享 >凸函数的等价定义及其证明

凸函数的等价定义及其证明

时间:2024-09-23 21:34:06浏览次数:8  
标签:begin end 定义 equation 凸函数 等价 split theta

Preface

    我非常记得罗翔老师说过一句话,"我们登上并非我们所选择的舞台,演绎并非我们所选择的剧本,但是没有谁的剧本值得羡慕,我们唯一能做的就是尽力演好自己的角色,打好自己手中的牌"。 我们所作的每一个选择都可看做是一个优化问题中的一次迭代,在一次一次迭代过程中趋向我们人生的最优值。无论是学生时代通过各种手段,努力来得到我们想要的分数,去到我们想要去的学校,又或是长大成人之后,面临生活中的一地鸡毛,都能运筹帷幄,得尝所愿。但正是我们的人生函数是非凸的,未必拥有最优解,所以我们的人生才变得多姿多彩,五颜六色,当我们面临低谷时,就像陷入了局部解,走出低谷的关键就是能否正视它,即跳出这个困境,再次走上新的征程,继续去寻找我们的最优解。那么为什么我们的人生函数是凸的时候,就会变得单调呢?亦或我们可以通过了解凸函数可以为我们的非凸函数带来什么经验呢?这正是我们这一小节的重要性!

文章进度

  • 给出凸函数四个等价定义(\(\surd\))
  • 对四个定义进行等价证明(\(\surd\))
  • 增加梯度单调性描述函数的凸性并证明与定义2(\(Def2\))等价()
  • 补充文内图片()

凸函数定义

    为了给出凸函数的最基础的定义,我们可以先给出它的最经典三维图像例子-锅对,你没看错,就是我们生火做饭的大铁锅,来产生最直接的感受。亦或是我们从初中就开始接触的函数-二次项系数为正数的二次函数。它们都是我们接下来所要讨论的凸函数。在有了最基本的直观印象后,给出它最基础的定义吗,如Def 1所示。

\(Def 1\):假定\(f:R^n\longmapsto R\),\(f\)的定义域\(dom f\subseteq R^n\)是一个凸集,若对于\(\forall x,y\in domf\),\(\forall \theta \in [0,1]\)都有:
\(\begin{equation} f(\theta x+(1-\theta)y)\leqslant \theta f(x)+(1-\theta)f(y) \end{equation}\)
,则\(f(x)\)是一个凸函数。

  • 注1:若在(1)中,符号为\(\geqslant\),即:
    \(\begin{equation} f(\theta x+(1-\theta)y)\geqslant \theta f(x)+(1-\theta)f(y) \end{equation}\),则\(f(x)\)是一个凹函数。\(f(x)\)是凹函数的最原始的定义为\(-f(x)\)是凸函数,所以即使\(f(x)\)是一个凹函数,它的定义域也是一个凸集。若定义域非凸的话,这个函数纵使满足不等式也不是凸或者凹函数。

  • 注2:我们除了凸和凹之外,还会有严格凸与严格凹的定义,只需要在不等式(1)(2)中使得不等式严格成立即可,即不会有相等的情形。

  • 注3:我们在这给出一维凸函数的几何上的解释,由(1)式的左端,表示的是\([x,y]\)直线上的点在函数上的取值,而(1)的右端表示的是以\((x,f(x))\),\((y,f(y))\)为端点的线段的取值,(1)中的不等式表明凸函数的任意两点图像必然会低于(至多与该线段相等)端点构成的线段。

\(Def 2\): 假定\(f:R^n\longmapsto R\),\(f\)的定义域\(dom f\subseteq R^n\)是一个凸集,若对于任意的与\(f(x)\)的定义域相交的直线上\(f(x)\)都是凸的,则\(f(x)\)在\(dom f\)上是凸函数。用代数语言来表示即为:若对于\(\forall x \in R^n\),以及任意的方向向量\(v\),函数\(g(t)=f(x+tv)\)都是凸函数,且\(dom g=\{ t|x+tv\in domf \}\).

  • 注1:上述定义2可以把高维定义域的凸函数当作一维的凸函数来处理,就像是切西瓜一样,从一个点出发,沿着它的任意一个方向切下去,它仍然会是一个锅一样的形状,这个定义对于证明定义1的剩余2个等价定义是非常有用的。

    对于前面给出的两个定义对于函数的凸性并没有做任何假定,即是"原汁原味"的,只需要考虑函数值之间的关系,从最开始的图像出发,但是当函数是在开集定义域上是可微的或者二阶可微的时候,有更加简洁的判断条件,分别叫做一阶条件、二阶条件。

\(Def 3\)(一阶条件):假定\(f:R^n\longmapsto R\),\(f\)的定义域\(dom f\subseteq R^n\)是一个开集,函数\(f(x)\)在\(dom f\)是可微的,即在\(dom f\)的任意一点 \(x\)处存在梯度\(\nabla f(x)\),\(f(x)\)是凸函数的充分必要条件是对于\(dom f\)上的任意\(x,y\),都有
\(\begin{align} f(y)\geqslant f(x)+\nabla f(x)^T(y-x). \end{align}\)

  • 注1:一阶条件可以看成是把函数\(f(x)\)进行一阶近似(即对其进行\(Taylor\)展开,只保留一阶信息),正是由于凸性的存在,使得函数\(f(x)\)的最优性条件只需要找到一个\(x'\),使得

\[\begin{equation} \nabla f(x')=0, \end{equation} \]

成立即可

\(Def 4\)(二阶条件):假定\(f:R^n\longmapsto R\),\(f\)的定义域\(dom f\subseteq R^n\)是一个开集,函数\(f(x)\)在\(dom f\)是二阶可微的,即在定义域内任何一点\(x\)都存在\(Hessian\)矩阵\(\nabla^2f(x)\),则函数\(f(x)\)是凸函数的充要条件是对于\(\forall x \in domf\),有
\(\begin{equation} \nabla^2 f(x)\succcurlyeq0. \end{equation} \)

  • 注1:二阶条件的给出对于判断一个函数是否是凸函数起了很重要的作用,即看他的\(Hessian\)矩阵是否是半正定的,(5)中的符号\(\succcurlyeq\)是广义不等式,在矩阵中一般表示半正定的意思。

  • 注2:我们在Def1中的注2中给出了严格凸的简要定义(符号定义),对于二阶条件来说,也存在判断函数严格凸的充分条件,即
    \(\begin{align} \nabla^2 f(x)\succ0, \end{align}\)但这只是一个充分条件,一般来说不是充要条件,比如函数\(f(x)=x^4\)是严格凸的,但是在\(x=0\)的时候,\(\nabla^2f(x)|_{x=0}=12x^2|_{x=0}=0\),其不是在任意一点都是严格大于0的。

凸函数定义等价证明

\(Def 1\)与\(Def 2\)的等价证明

证明:\(Def 1 \implies Def2\):

分析:要证明\(Def2\),即证明函数\(g(t)\)是凸的,要证(1) \(domg\)是凸集 (2) \(g(\theta t_1+(1-\theta)t_2)\leq \theta g(t_1)+(1-\theta)g(t_2).\)

对于任意的\(\theta\in [0,1]\),任意\(x \in domf\),\(t_1,t_2 \in domg\),以及任意的方向向量\(v\),由\(dom g\)的定义可知,\(x+t_1v\),\(x+t_2v\)都属于\(domf\),又\(domf\)是凸集,则:

\[\begin{equation} \begin{split} \theta(x+t_1v)+(1-\theta)(x+t_2v)=x+(\theta t_1+(1-\theta)t_2)v\in domf, \end{split} \end{equation} \]

故由\((7)\)可得,\(dom g\)是凸集.

由函数\(g(t)\)的定义可知,\(x+t_1v,x+t_2v \in domf\),且函数\(f(x)\)是凸函数,则:

\[\begin{equation} \begin{split} g(\theta t_1+(1-\theta) t_2))&=f(x+(\theta t_1+(1-\theta) t_2) v)\\&=f(\theta(x+t_1 v)+(1-\theta)(x+t_2 v))\\&\leqslant \theta f(x+t_1 v)+(1-\theta)f(x+t_2 v)\\&=\theta g(t_1)+(1-\theta)g(t_2), \end{split} \end{equation} \]

则由\((8)\),且结合凸函数\(Def1\),我们知道\(g(t)\)是凸函数。

\(Def 2 \implies Def1\):

要证函数\(f(x)\)是凸函数,过程与前面类似.先假定任意的\(x_1,x_2\in domf\),我们在\(domf\)内肯定可以找到一个\(x\),与方向向量\(v\),使得存在\(t_1,t_2\in domg\),有\(x_1=x+t_1v,x_2=x+t_2v\),则对于任意的\(\theta\in[0,1]\),由\(dom g\)是凸集,则由$\theta t_1+(1-\theta)t_2\in domg\implies x+(\theta t_1+(1-\theta)t_2)v\in domf $,故

\[\begin{equation} \begin{split} \theta x_1+(1-\theta)x_2=x+(\theta t_1+(1-\theta)t_2)v\in domf, \end{split} \end{equation} \]

故由\((9)\)可得,\(domf\)是凸集。

由前面的假定可知,

\[\begin{equation} \begin{split} f(\theta x_1+(1-\theta) x_2))&=f(x+(\theta t_1+(1-\theta) t_2) v)\\&=g(\theta t_1+(1-\theta t_2 )\\&\leqslant \theta g(t_1)+(1-\theta)g(t_2)\\&=\theta f(x+t_1v)+(1-\theta)g(x+t_2v)\\&=\theta f(x_1)+(1-\theta)f(x_2), \end{split} \end{equation} \]

则由\((10)\),我们知道\(f(x)\)是凸函数。

\(Def 1\)与\(Def 3\)的等价证明

证明:我们先考虑特殊的情形,当$f:\R \rightarrow \R $时,证明 \(Def 1 \implies Def3\).

我们选取\(\forall t\in (0,1]\),\(\forall x,y\in dom f\),由\(Def 1\)可得,\(f(tx+(1-t)y)\leq tf(x)+(1-t)f(y)\),我们重新组合左边不等式的顺序便有:

\[\begin{equation} \begin{split} &tf(x)\geq tf(y)-f(y) +f(tx+(1-t)y), \end{split} \end{equation} \]

两边同时除以非负的t,有下式成立:

\[\begin{equation} \begin{split} &f(x)\geq f(y) + \frac{f(tx+(1-t)y)-f(y)}{t} \end{split} \end{equation} \]

再令\(t\rightarrow0\),由极限的保序性,便得到下式成立:

\[\begin{equation} \begin{split} f(x)\geq f(y) + f'(y)(x-y) \end{split} \end{equation} \]

我们当$f:\R \rightarrow \R $时,证明 \(Def 3 \implies Def 1\).

对于\(\forall x,y\in dom f\),\(\forall \theta \in [0,1]\),我们令\(z=\theta x + (1- \theta)y\),由\(Def3\)知道,

\[\begin{equation} \begin{split} f(x)&\geq f(z) + f'(z)(x-z)\\&=f(z) + f'(z)(1- \theta)(x-y), \end{split} \end{equation} \]

\[\begin{equation} \begin{split} f(y)&\geq f(z) + f'(z)(y-z)\\&=f(z) + f'(z)\theta(y-x), \end{split} \end{equation} \]

观察(14)(15)这两个式子,容易看出(14)左右两边乘以\(\theta\)加上(15)左右两边乘以\((1-\theta)\),便可得:

\[\begin{equation} \begin{split} \theta f(x)+ (1-\theta)f(y)&\geq f(z) + f'(z)\theta(1-\theta)(y-x)+f'(z)\theta(1- \theta)(x-y)\\&=f(z)\\&=f(\theta x + (1- \theta)y) \end{split} \end{equation} \]

至此,我们已经证明了在$f:\R \rightarrow \R \(时,\)Def1\(与\)Def3\(的等价性。下面考虑一般情况,当\)f:\R^n \rightarrow \R \(时,先证明\)Def1$ \(\implies\) \(Def3\).

同前,我们还是任意选取\(x,y \in domf\),利用\(Def2\),对于任意的\(t\in domg\),有\(g(t)=f(y+t(x-y))\)成立.由于\(f(x)\)是凸函数,则\(g(t)\)也是凸函数.而$g:domg\subseteq \R\rightarrow \R \(故由前面证明的特殊情况可知,我们取\)t_1=1\(,\)t_2=0\(,便有:\)g'(1) \geq g(0)+g'(0)$ \(\implies\) $f(x) \geq f(y)+\nabla f(y)(x-y) $.

反过来,我们证明\(Def3\) \(\implies\) \(Def1\).

对于$\forall x,y \in domf \(,考虑\)Def2\(,对于\)\forall t_1,t_2 \in domg\(,由于\)domg\(的定义,则\)t_1x+(1-t_1)y,t_2x+(1-t_2)y\in domf\(,我们利用\)Def3$,有下式成立:

\[\begin{equation} \begin{split} f(t_1x+(1-t_1)y) \geq f(t_2x+(1-t_2)y)+\nabla f(t_2x+(1-t_2)y)(t_1x+(1-t_1)y-t_2x+(1-t_2)y) \end{split} \end{equation} \]

我们仍然利用\(Def2\)假设\(g(t)=f(y+t(x-y))\),则由(17)我们可以得到:

\[\begin{equation} \begin{split} g(t_1) \geq g(t_2)+g'(t_2)(t_1-t_2), \end{split} \end{equation} \]

则我们可以推出\(g(t)\)是凸的,从而\(f(x)\)是凸的.

\(Def 1\)与\(Def 4\)的等价证明

证明:我们先考虑特殊的情形,当$f:\R \rightarrow \R $时,证明 \(Def 1 \implies Def4\).

我们任意选取$x,y \in domf \(,且\)x>y\(,则由\)Def3$,我们由下式成立:

\[\begin{equation} \begin{split} f'(y)(x-y) \leq f(x)-f(y) \leq f'(x)(x-y), \end{split} \end{equation} \]

我们只考虑\((19)\)两边,同时除以\(x-y\),得下式:

\[\begin{equation} \begin{split} f'(y) \leq f'(x), \end{split} \end{equation} \]

再右边移到左边,同时除以\(y-x\),令\(y \rightarrow x\),则有下式:

\[\begin{equation} \begin{split} f^{''}(x) \geq 0 \end{split} \end{equation} \]

反过来,我们考虑证明当$f:\R \rightarrow \R $时,证明 \(Def 4 \implies Def1\).

我们选择\(\forall z \in domf\),则由\(Def4\),我们知道\(f''(z) \geq0\).再任意选取\(x,y \in domf\),且满足\(y \geq x\),则有下列积分式子成立:

\[\begin{equation} \begin{split} 0\leq \int_x^y f^{''}(z)(y-z)dz, \end{split} \end{equation} \]

再由微积分基本定理,得下式:

\[\begin{equation} \begin{split} 0\leq \int_x^y f^{''}(z)(y-z)dz=f(y)-f(x)-f'(x)(y-x), \end{split} \end{equation} \]

观察\((23)\)两端,即可得到:

\[\begin{equation} \begin{split} f(y) \geq f(x)+f'(x)(y-x), \end{split} \end{equation} \]

故由\(Def3\),可知\(f(x)\)是凸的,自然可以推出\(Def1\).
至此特殊情形证明完毕。

我们在考虑一般情形,当$f:\R^n \rightarrow \R $时,证明 \(Def 4 \implies Def1\).

对于\(\forall z \in domf\),由\(Def4\)可得,$\nabla^2f(z)\succeq0 \(.面对高维情形,我们仍然考虑\)Def2\(,转换为特殊情形。任意选取\)x,y \in domf\(,\)t\in domg\(,有\)g(t)=f(x+t(y-x))\(,由于\)f\(是二阶可微的,则对\)g(t)$求二阶导数,有

\[\begin{equation} \begin{split} g^{''}(t)=(y-x)^T\nabla^2f(x+t(y-x))(y-x), \end{split} \end{equation} \]

由于\(\nabla^2f(x+t(y-x))\succeq0\),则由半正定矩阵的定义,有\(g''(t) \geq 0\),则\(g(t)\)是凸的,自然可以推导出\(Def1\).

反过来,当\(Def1\)成立时,同样转为一维情形,我们令\((25)\)中,\(z=x+t(y-x)\),易知道对于\(\forall x,y \in domf\),且\(x \neq y\),我们可以得到\((y-x)^T\nabla^2f(z)(y-x)\geq 0\)的,则由半正定矩阵的定义,我们知道\(\nabla^2f(z)\succeq0\),故\(Def4\)成立。

参考资料

  1. Boyd S, Boyd S P, Vandenberghe L. Convex optimization[M]. Cambridge university press, 2004.

标签:begin,end,定义,equation,凸函数,等价,split,theta
From: https://www.cnblogs.com/amuse123/p/18427951

相关文章

  • 6.2:对象的定位和定义
    参考对象,0是全局坐标系 每个对象都有一个相应的数字,显示在编辑器的最左边的列中,以及一个由“Ref对象”参数定义的“引用对象”。如果将给定对象的“Ref对象”设置为“0”,则该对象将相对于整个三维空间的全局坐标参考点进行定位。在上述系统中,对象1、2和3相对于该全局坐标系......
  • Python模块和包:自定义模块和包③
    文章目录一、模块1.1什么是模块1.2创建模块1.3导入模块1.4模块的命名空间二、包2.1什么是包2.2创建包2.3导入包2.4包的命名空间三、综合详细例子3.1项目结构3.2模块代码student.pycourse.pymanager.py3.3主程序代码main.py3.4运行结果四、总结Pyth......
  • electron中定义ipc的完美方案
    前语发现在主进程和渲染进程通信的设计中,很多代码都是重复的,导致最后非常臃肿,且不利于后期扩展方案electron项目中核心文件结构如下|--index.js|--index.html|--ipc|--handlers|--other.js|--xxx.js|--index.js|--preload.jsipc/handle......
  • Python实战:为Prometheus开发自定义Exporter
    Python实战:为Prometheus开发自定义Exporter在当今的微服务架构和容器化部署环境中,监控系统的重要性不言而喻。Prometheus作为一款开源的系统监控和警报工具,以其强大的功能和灵活性受到了广泛的欢迎。然而,Prometheus本身并不直接监控所有类型的服务或应用,这就需要我们为其开发自定......
  • IDEA自定义文档注释模板
    一、File —setting二、Editor  — LiveTemplates  —  "+" —  TemplateGroup  — 填写groupName 点击OK三、创建自己的template组四、createtemplate五、英文模板**<p>@descTODO*<p>@authorGHQ·阿甘*<p>@date$da......
  • system.text.Json 针对继承多态类型的集合,使用自定义Converter,进行json序列化
    测试类:[JsonConverter(typeof(PersonConverter))]publicclassPerson{publicstringFirstName{get;set;}publicstringLastName{get;set;}}[JsonConverter(typeof(PersonConverter))]publicclassEmployee:Person{pub......
  • map&unordered_map<key,value>key使用自定义类的要求
    std::unordered_map的键要求:std::unordered_map是基于哈希表的数据结构。它要求键类型必须支持哈希计算,也就是必须有对应的std::hash函数。另外,键类型还必须支持相等比较(通过operator==)。如果键类型没有定义哈希函数(例如你自定义的Json类型),std::unordered_map就无......
  • 数据处理与统计分析篇-day08-apply()自定义函数与分组操作
    一.自定义函数概述当Pandas自带的API不能满足需求,例如:我们需要遍历的对Series中的每一条数据/DataFrame中的一列或一行数据做相同的自定义处理,就可以使用Apply自定义函数apply函数可以接收一个自定义函数,可以将Series对象的逐个值或DataFrame的行/列数据传递给自......
  • 解释器模式:如何实现一个自定义配置规则功能?
    解释器模式使用频率不算高,通常用来描述如何构建一个简单“语言”的语法解释器。它只在一些非常特定的领域被用到,比如编译器、规则引擎、正则表达式、SQL解析等。不过,了解它的实现原理同样很重要,能帮助我们思考如何通过更简洁的规则来表示复杂的逻辑。一、模式原理分析解释器模式......
  • python函数一:函数的概念、函数定义与调用、函数的参数、函数的返回值、说明文档以及函
    文章目录1.函数介绍1.1函数的概念1.2函数定义与调用1.2函数的参数1.3函数的返回值1.4说明文档2.函数的嵌套调用2.1嵌套调用及执行流程2.2嵌套调用的应用1.函数介绍1.1函数的概念什么是函数?函数:是一个被命名的、独立的、完成特定功能的代码段,其可能......