您当前的位置: 首页 > 

B417科研笔记

暂无认证

  • 5浏览

    0关注

    154博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

凸函数的判断(上): 重要的基本性质

B417科研笔记 发布时间:2021-11-02 15:09:34 ,浏览量:5

前言

最近在学习CVX的使用, 也得知了其最核心的点在于需要掌握 如何判断 目标函数是否为凸。 这篇博客就是基于Boyd的凸优化经典教材,对凸函数判断的一些整理, 也记录几个私以为极为重要的证明。

基本定义

对于定义域为凸集 ,且对于 x , y ∈ dom ⁡ f x, y \in \operatorname{dom} f x,y∈domf, 0 ⩽ θ ⩽ 1 0 \leqslant \theta \leqslant 1 0⩽θ⩽1时, 满足 f ( θ x + ( 1 − θ ) y ) ⩽ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta) y) \leqslant \theta f(x)+(1-\theta) f(y) f(θx+(1−θ)y)⩽θf(x)+(1−θ)f(y) 则称函数 f f f为凸函数。 几何上的解释则如下图: 在这里插入图片描述 任意两点连线均在函数图像之上。 这是凸函数最基本的定义, 有相当一部分的凸函数,其凸性可以直接由定义得。 但这里要强调的是另一个基本的、极为重要的且易被忽视的性质:

当且仅当函数在与其定义域相交的所有直线上均为凸, 该函数为凸函数。

用数学语言来表示则是: g ( t ) = f ( x + t v ) , ∀ x ∈ d o m f , ∀ v g(t) = f(x+tv) , \forall x \in \mathrm{dom}f, \forall v g(t)=f(x+tv),∀x∈domf,∀v 当且仅当 g ( t ) g(t) g(t) 为凸时, f ( x ) f(x) f(x) 为凸。

遗憾的是,我尚未找到这条性质对应的清晰显明的几何性质。 然而并不妨碍其重要性的昭然若揭:

任意一个高维函数 f f f, 其凸性可以通过验证一个对应的 标量函数 的凸性来得到。

因为 g ( t ) g(t) g(t) 的变量是步长, 是一个标量。

我们对这一性质进行简单的证明:

先证明必要性, 即可以通过 f ( x ) f(x) f(x) 的 凸性 得到 g ( t ) g(t) g(t) 的凸性。 我们首先有 g ( t 1 ) = f ( x + t 1 v ) g(t_1) =f(x+t_1v) g(t1​)=f(x+t1​v) 和 g ( t 2 ) = f ( x + t 2 v ) g(t_2) = f(x+t_2v) g(t2​)=f(x+t2​v), 此时,

g ( θ t 1 + ( 1 − θ ) t 2 ) = f ( x + ( θ t 1 + ( 1 − θ ) t 2 ) v ) = f ( θ ( x + t 1 v ) + ( 1 − θ ) ( x + t 2 v ) ) ≤ θ f ( x + t 1 v ) + ( 1 − θ ) f ( x + t 2 v ) = θ g ( t 1 ) + ( 1 − θ ) g ( t 2 ) g(\theta t_1 + (1-\theta)t_2)=f(x + (\theta t_1 + (1-\theta)t_2)v)=f(\theta(x+t_1v)+(1-\theta)(x+t_2v))\\ \le\theta f(x+t_1v)+(1-\theta)f(x+t_2v)=\theta g(t_1) +(1-\theta)g(t_2) g(θt1​+(1−θ)t2​)=f(x+(θt1​+(1−θ)t2​)v)=f(θ(x+t1​v)+(1−θ)(x+t2​v))≤θf(x+t1​v)+(1−θ)f(x+t2​v)=θg(t1​)+(1−θ)g(t2​)

不等号来源于 f ( x ) f(x) f(x) 的 凸性。 根据定义, g ( x ) g(x) g(x) 凸性得证。

而充分性则更容易验证了 (毕竟 g ( t ) g(t) g(t) 对于任意初始点 x x x 和 v v v都要满足), 令 x = x 1 x=x_1 x=x1​, v = x 2 − x 1 v=x_2-x_1 v=x2​−x1​, 我们有:

f ( θ x 1 + ( 1 − θ ) x 2 ) = g ( 1 − θ ) ≤ θ g ( 0 ) + ( 1 − θ ) g ( 1 ) = θ f ( x 1 ) + ( 1 − θ ) f ( x 2 ) f(\theta x_1 + (1-\theta)x_2)=g(1-\theta)\le \theta g(0) + (1-\theta)g(1)=\theta f(x_1)+(1-\theta)f(x_2) f(θx1​+(1−θ)x2​)=g(1−θ)≤θg(0)+(1−θ)g(1)=θf(x1​)+(1−θ)f(x2​)

这个性质在后续会发挥重大作用。

一阶条件

除去定义, 一阶条件也可以作为凸性的判断。 f f f 为凸函数的充要条件为: f ( y ) ⩾ f ( x ) + ∇ f ( x ) T ( y − x ) f(y) \geqslant f(x)+\nabla f(x)^{T}(y-x) f(y)⩾f(x)+∇f(x)T(y−x) 其几何解释可以表示为: 在这里插入图片描述 即函数上任意一点的切线均在函数下方。

我们先给出其严格的证明。 首先考虑标量情况, 即 x x x 为一维标量, 那么一阶条件将简化为: f ( y ) ⩾ f ( x ) + f ′ ( x ) ( y − x ) f(y) \geqslant f(x)+f^{\prime}(x)(y-x) f(y)⩾f(x)+f′(x)(y−x) 先证明其必要性: 即通过 f ( x ) f(x) f(x)的凸性推导一阶条件。根据凸性, 有: f ( x + t ( y − x ) ) ⩽ ( 1 − t ) f ( x ) + t f ( y ) f(x+t(y-x)) \leqslant(1-t) f(x)+t f(y) f(x+t(y−x))⩽(1−t)f(x)+tf(y) 两边同时除以 t t t 得到: f ( y ) ⩾ f ( x ) + f ( x + t ( y − x ) ) − f ( x ) t f(y) \geqslant f(x)+\frac{f(x+t(y-x))-f(x)}{t} f(y)⩾f(x)+tf(x+t(y−x))−f(x)​ 当 t → 0 t\rightarrow 0 t→0时, 即为一阶条件。

再证明其充分性, 对于任意两点 x x x, y y y, 令 z = θ x + ( 1 − θ ) y z=\theta x+(1-\theta) y z=θx+(1−θ)y, 由一阶条件有: f ( x ) ⩾ f ( z ) + f ′ ( z ) ( x − z ) , f ( y ) ⩾ f ( z ) + f ′ ( z ) ( y − z ) f(x) \geqslant f(z)+f^{\prime}(z)(x-z), \quad f(y) \geqslant f(z)+f^{\prime}(z)(y-z) f(x)⩾f(z)+f′(z)(x−z),f(y)⩾f(z)+f′(z)(y−z) 将第一个不等式乘以 θ \theta θ , 第二个乘以 1 − θ 1-\theta 1−θ, 有: θ f ( x ) + ( 1 − θ ) f ( y ) ⩾ f ( z ) \theta f(x)+(1-\theta) f(y) \geqslant f(z) θf(x)+(1−θ)f(y)⩾f(z)

重点来了, 标量形式的一阶条件极为简单, 但对于更普遍的向量形式呢? 这就需要刚提到的重要基本性质了。

对于任意两点 x , y x, y x,y (均为多维向量), 考虑过这两点的直线上的函数 f f f , 即 g ( t ) = f ( x + t ( y − x ) ) = f ( t y + ( 1 − t ) x ) g(t) = f(x + t(y-x)) = f(ty + (1-t)x) g(t)=f(x+t(y−x))=f(ty+(1−t)x), 我们只需要考察 g ( t ) g(t) g(t) 的凸性即可。

先证明必要性: 由于 f f f 是凸的, 那么 g g g 也是凸的,那么对 g g g其的一阶条件就是我们刚推导的标量形式, 也就是有 : g ( 1 ) ⩾ g ( 0 ) + g ′ ( 0 ) g(1) \geqslant g(0)+g^{\prime}(0) g(1)⩾g(0)+g′(0) 又由于 g ′ ( t ) = ∇ f ( t y + ( 1 − t ) x ) T ( y − x ) g^{\prime}(t)=\nabla f(t y+(1-t) x)^{T}(y-x) g′(t)=∇f(ty+(1−t)x)T(y−x) 代入上式, 有: f ( y ) ⩾ f ( x ) + ∇ f ( x ) T ( y − x ) f(y) \geqslant f(x)+\nabla f(x)^{T}(y-x) f(y)⩾f(x)+∇f(x)T(y−x)

再证明其充分性: 若一阶条件成立, 则我们有: f ( t y + ( 1 − t ) x ) ⩾ f ( t ~ y + ( 1 − t ~ ) x ) + ∇ f ( t ~ y + ( 1 − t ~ ) x ) T ( y − x ) ( t − t ~ ) f(t y+(1-t) x) \geqslant f(\tilde{t} y+(1-\tilde{t}) x)+\nabla f(\tilde{t} y+(1-\tilde{t}) x)^{T}(y-x)(t-\tilde{t}) f(ty+(1−t)x)⩾f(t~y+(1−t~)x)+∇f(t~y+(1−t~)x)T(y−x)(t−t~) 即 g ( t ) ⩾ g ( t ~ ) + g ′ ( t ~ ) ( t − t ~ ) g(t) \geqslant g(\tilde{t})+g^{\prime}(\tilde{t})(t-\tilde{t}) g(t)⩾g(t~)+g′(t~)(t−t~) 因此, g ( t ) g(t) g(t) 满足一阶条件,为凸。 这个证明中, 清晰地展示了如何从标量形式拓展为多维场景的精彩论证。

二阶条件

相比于一阶条件, 二阶条件更为简单明了: 当且仅当函数 f f f 的 二阶导: ∇ 2 f ( x ) ⪰ 0 \nabla^{2} f(x) \succeq 0 ∇2f(x)⪰0 则函数 f f f为凸。 当 f f f为标量函数时, 事实上这就是我们高中常说的开口向上的函数。

同样的, 我们给出证明。 站于巨人肩膀之上, 二阶的证明需要一阶条件。

首先证明充分性, 即二阶条件可以推导出一阶条件。 不妨设 y > x y>x y>x, 有: ∫ x y f ′ ′ ( z ) ( y − z ) d z ≥ 0 \int_x^y f^{\prime\prime}(z)(y-z)dz\ge0 ∫xy​f′′(z)(y−z)dz≥0 这是因为 f ′ ′ ( z ) f^{\prime\prime}(z) f′′(z)始终不小于0. 根据分部积分法, 即:

∫ u v ′ d x = u v − ∫ u ′ v d x \int uv^\prime dx=uv-\int u^\prime v dx ∫uv′dx=uv−∫u′vdx 其中 u , v u,v u,v均为 x x x的函数。 这个常用于当 u v ′ uv^\prime uv′不好求而 u ′ v u^\prime v u′v好求的情况下。 此时, 我们可以把上式转化为: ∫ x y f ′ ′ ( z ) ( y − z ) d z = f ′ ( z ) ( y − z ) ∣ z = x z = y + ∫ x y f ′ ( z ) d z ≥ 0 ⇒ − f ′ ( x ) ( y − x ) + f ( y ) − f ( x ) ≥ 0 \int_x^y f^{\prime\prime}(z)(y-z)dz= f^\prime(z)(y-z)|_{z=x}^{z=y}+\int_x^yf^\prime(z)dz\ge0 \\ \Rightarrow-f^\prime(x)(y-x)+f(y)-f(x)\ge 0 ∫xy​f′′(z)(y−z)dz=f′(z)(y−z)∣z=xz=y​+∫xy​f′(z)dz≥0⇒−f′(x)(y−x)+f(y)−f(x)≥0 即得证。 再证明必要性, 即由一阶条件推二阶, 根据一阶条件有: f ( y ) ≥ f ( x ) + f ′ ( x ) ( y − x ) ⇒ f ( y ) − f ( x ) ≥ f ′ ( x ) ( y − x ) f ( x ) ≥ f ( y ) + f ′ ( y ) ( x − y ) ⇒ f ( y ) − f ( x ) ≤ f ′ ( y ) ( y − x ) f(y) \ge f(x) + f^\prime(x)(y-x)\Rightarrow f(y) - f(x)\ge f^\prime(x)(y-x)\\f(x) \ge f(y) + f^\prime(y)(x-y)\Rightarrow f(y) - f(x)\le f^\prime(y)(y-x) f(y)≥f(x)+f′(x)(y−x)⇒f(y)−f(x)≥f′(x)(y−x)f(x)≥f(y)+f′(y)(x−y)⇒f(y)−f(x)≤f′(y)(y−x)

结合既有: f ′ ( x ) ( y − x ) ≤ f ′ ( y ) ( y − x ) ⇒ f ′ ( y ) − f ′ ( x ) y − x ≥ 0 f^\prime(x)(y-x)\le f^\prime(y)(y-x)\Rightarrow \frac{f^\prime(y)-f^\prime(x)}{y-x}\ge 0 f′(x)(y−x)≤f′(y)(y−x)⇒y−xf′(y)−f′(x)​≥0 得证。

再通过基本性质, 将结论拓展至高维。 令 g ( t ) = f ( x 0 + t v ) g(t) = f(x_0 + tv) g(t)=f(x0​+tv), 若 f ( x ) f(x) f(x)为凸, 则 g ( t ) g(t) g(t) 为凸, 我们有: g ′ ′ ( t ) = v T ∇ 2 f ( x 0 + t v ) v ≥ 0 g^{\prime\prime}(t) = v^T\nabla^2f(x_0+tv)v\ge0 g′′(t)=vT∇2f(x0​+tv)v≥0 因此 ∇ 2 f ( x ) ⪰ 0 \nabla^{2} f(x) \succeq 0 ∇2f(x)⪰0。 充分性的证明也类似。

至此,我们介绍了凸函数的一些基本判别和重要性质。 在下一节欸,我们结合经典凸优化工具包CVX,再来看如何快速判断一个函数是否为凸。

关注
打赏
1649265742
查看更多评论
立即登录/注册

微信扫码登录

0.0510s