判断函数凹凸性

一阶条件

假设 f f f可微,则函数 f f f是凸函数的充要条件是 d o m f dom f domf是凸集且对于任意 x , y ∈ d o m f x, y∈domf x,ydomf, 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(yx)成立。
在这里插入图片描述

二阶条件

假设 f f f二阶可微,则函数 f f f是凸函数的充要条件是:其 H e s s i a n Hessian Hessian矩阵是半正定阵,即对于所有的 x ∈ d o m f x∈domf xdomf,有 ∇ 2 f ( x ) ⪰ 0 \nabla^{2} f(x) \succeq 0 2f(x)0
对于在 R R R上的函数,上式可简化为 f ′ ′ ( x ) ⩾ 0 f^{\prime \prime}(x) \geqslant 0 f(x)0

例子:

二次函数 f : R n → R f: \mathbf{R}^{n} \rightarrow \mathbf{R} f:RnR,其定义域为 d o m f = R n domf=R^n domf=Rn,其表达式为 f ( x ) = ( 1 / 2 ) x T P x + q T x + r f(x)=(1 / 2) x^{T} P x+q^{T} x+r f(x)=(1/2)xTPx+qTx+r,其中 P ∈ S n , q ∈ R n , r ∈ R P \in \mathbf{S}^{n}, q \in \mathbf{R}^{n}, r \in \mathbf{R} PSn,qRn,rR
一阶导为 f ′ ( x ) = ( 1 / 2 ) × 2 P x + q T f'(x)=(1 / 2) ×2Px+q^T f(x)=(1/2)×2Px+qT,二阶导为 f ′ ′ ( x ) = P f''(x)=P f(x)=P,
当且仅当 P ⪰ 0 P \succeq 0 P0时,函数 f f f是凸的。

注意:在判断凸函数时,不管是一阶条件还是二阶条件,都必须满足 d o m f domf domf是凸集这个条件。例如:凸集这个前提条件必须满足。例如,考虑函数 f ( x ) = 1 / x 2 f(x)= 1/x^2 f(x)=1/x2, 其定义域为 d o m f = x ∈ R ∣ x ≠ 0 domf={x∈R|x≠0} domf=xRx=0,对于所有 x ∈ d o m f x∈domf xdomf均满足 f ′ ′ ( x ) > 0 f''(x)> 0 f(x)>0,但是函数 f ( x ) f(x) f(x)并不是凸函数。

判断凸集的方法:某个集合是否为凸集,看集合中任意两点之间的线段是否在集合中,若在集合中才为凸集。

几个凸函数/凹函数

定义域在 R R R上的一些函数,自变量为 x x x

指数函数。对任意 a ∈ R a∈R aR,函数 e a x e^{ax} eax R R R上是凸的。

幂函数。当 a ≥ 1 a≥1 a1 a ≤ 0 a≤0 a0时, x a x^a xa R + + {R}_{++} R++上是凸函数,当 0 ≤ a ≤ 1 0≤a≤1 0a1时, a x a a^{xa} axa R + + {R}_{++} R++上是凹函数。

绝对值幂函数。当 p ≥ 1 p≥1 p1时,函数 ∣ x ∣ P |x|P xP R R R上是凸函数。

对数函数。函数 l o g x logx logx R + + {R}_{++} R++上是凹函数。

负熵。函数 x l o g x xlogx xlogx在其定义域上是凸函数。(定义域为 R + + {R}_{++} R++或者 R + R^{+} R,当 x = 0 x=0 x=0时定义函数值为0.)

我们可以通过二阶导数半正定或半负定来判断上述函数是凸的或是凹的。

定义域在 R n R^n Rn上的一些函数。

范数 R R R上的任意范数均为凸函数。

证明:如果函数 f : R n → R f: \mathbf{R}^{n} \rightarrow \mathbf{R} f:RnR是范数,任取 0 ≤ θ ≤ 1 0≤θ≤1 0θ1,有 f ( θ x + ( 1 − θ ) y ) ≤ f ( θ x ) + f ( ( 1 − θ ) y ) = θ f ( x ) + ( 1 − θ ) f ( y ) f(θx+(1- θ)y)≤f(θx)+ f((1- θ)y)= θf(x)+ (1 -θ )f(y) f(θx+(1θ)y)f(θx)+f((1θ)y)=θf(x)+(1θ)f(y),当范数满足齐次性时,上述不等式取等号。

最大值函数。函数 f ( x ) = max ⁡ { x 1 , ⋯   , x n } f(x)=\max \left\{x_{1}, \cdots, x_{n}\right\} f(x)=max{x1,,xn} R n R^n Rn上是凸的。

证明:对于任意的 0 ≤ θ ≤ 1 0≤θ≤1 0θ1,函数 f ( x ) = max ⁡ i x i f(x)=\max _{i} x_{i} f(x)=maxixi满足

f ( θ x + ( 1 − θ ) y ) = max ⁡ i ( θ x i + ( 1 − θ ) y i ) ⩽ θ max ⁡ i x i + ( 1 − θ ) max ⁡ i y i = θ f ( x ) + ( 1 − θ ) f ( y ) \begin{aligned} f(\theta x+(1-\theta) y) &=\max _{i}\left(\theta x_{i}+(1-\theta) y_{i}\right) \\ & \leqslant \theta \max _{i} x_{i}+(1-\theta) \max _{i} y_{i} \\ &=\theta f(x)+(1-\theta) f(y) \end{aligned} f(θx+(1θ)y)=imax(θxi+(1θ)yi)θimaxxi+(1θ)imaxyi=θf(x)+(1θ)f(y)

二次-线性分式函数。 函数 f ( x , y ) = x 2 / y f(x,y)=x^2/y f(x,y)=x2/y,其定义域为 dom ⁡ f = R × R + + = { ( x , y ) ∈ R 2 ∣ y > 0 } \operatorname{dom} f=\mathbf{R} \times \mathbf{R}_{++}=\left\{(x, y) \in \mathbf{R}^{2} | y>0\right\} domf=R×R++={(x,y)R2y>0}是凸函数。

证明:对于 y > 0 y>0 y>0,有

∇ 2 f ( x , y ) = 2 y 3 [ y 2 − x y − x y x 2 ] = 2 y 3 [ y − x ] [ y − x ] T ⪰ 0 \nabla^{2} f(x, y)=\frac{2}{y^{3}}\left[\begin{array}{cc} y^{2} & -x y \\ -x y & x^{2} \end{array}\right]=\frac{2}{y^{3}}\left[\begin{array}{c} y \\ -x \end{array}\right]\left[\begin{array}{c} y \\ -x \end{array}\right]^{T} \succeq 0 2f(x,y)=y32[y2xyxyx2]=y32[yx][yx]T0

指数和的对数。函数 f ( x ) = log ⁡ ( e x 1 + ⋯ + e x n ) f(x)=\log \left(e^{x_{1}}+\cdots+e^{x_{n}}\right) f(x)=log(ex1++exn) R n R^n Rn上是凸函数。这个函数可以看成最大值函数的可微(实际上是解析)近似,因为对任意 x x x,不等式 max ⁡ { x 1 , ⋯   , x n } ⩽ f ( x ) ⩽ max ⁡ { x 1 , ⋯   , x n } + log ⁡ n \max \left\{x_{1}, \cdots, x_{n}\right\} \leqslant f(x) \leqslant \max \left\{x_{1}, \cdots, x_{n}\right\}+\log n max{x1,,xn}f(x)max{x1,,xn}+logn成立。

证明:指数和的对数函数的 H e s s i a n Hessian Hessian 矩阵为 ∇ 2 f ( x ) = 1 ( 1 T z ) 2 ( ( 1 T z ) diag ⁡ ( z ) − z z T ) \nabla^{2} f(x)=\frac{1}{\left(\mathbf{1}^{T} z\right)^{2}}\left(\left(\mathbf{1}^{T} z\right) \operatorname{diag}(z)-z z^{T}\right) 2f(x)=(1Tz)21((1Tz)diag(z)zzT),其中 z = ( e x 1 , ⋯   , e x n ) z=\left(e^{x_{1}}, \cdots, e^{x_{n}}\right) z=(ex1,,exn),为了说明 ∇ 2 f ( x ) ⪰ 0 \nabla^{2} f(x) \succeq 0 2f(x)0,我们证明对任意 v v v,有 v T ∇ 2 f ( x ) v ⩾ 0 v^{T} \nabla^{2} f(x) v \geqslant 0 vT2f(x)v0,即

v T ∇ 2 f ( x ) v = 1 ( 1 T z ) 2 ( ( ∑ i = 1 n z i ) ( ∑ i = 1 n v i 2 z i ) − ( ∑ i = 1 n v i z i ) 2 ) ⩾ 0 v^{T} \nabla^{2} f(x) v=\frac{1}{\left(1^{T} z\right)^{2}}\left(\left(\sum_{i=1}^{n} z_{i}\right)\left(\sum_{i=1}^{n} v_{i}^{2} z_{i}\right)-\left(\sum_{i=1}^{n} v_{i} z_{i}\right)^{2}\right) \geqslant 0 vT2f(x)v=(1Tz)21((i=1nzi)(i=1nvi2zi)(i=1nvizi)2)0

上述不等式可以应用Cauchy-Schwarz不等式 ( a T a ) ( b T b ) ≥ ( a T b ) 2 (a^Ta)(b^Tb)≥(a^Tb)^2 (aTa)(bTb)(aTb)2得到,此时向量 a a a b b b的分量为 a i = v i z i , b i = z i a_{i}=v_{i} \sqrt{z_{i}}, \quad b_{i}=\sqrt{z_{i}} ai=vizi ,bi=zi .

几何平均。几何平均函数 f ( x ) = ( ∏ i = 1 n x i ) 1 / n f(x)=\left(\prod_{i=1}^{n} x_{i}\right)^{1 / n} f(x)=(i=1nxi)1/n在定义域 dom ⁡ f = R + + n \operatorname{dom} f=\mathbf{R}_{++}^n domf=R++n上是凹函数。

证明:其 H e s s i a n Hessian Hessian矩阵 ∇ 2 f ( x ) \nabla^{2} f(x) 2f(x)可以通过下面两个式子给出:

∂ 2 f ( x ) ∂ x k 2 = − ( n − 1 ) ( ∏ i = 1 n x i ) 1 / n n 2 x k 2 , ∂ 2 f ( x ) ∂ x k ∂ x l = ( ∏ i = 1 n x i ) 1 / n n 2 x k x l ∀ k ≠ l \frac{\partial^{2} f(x)}{\partial x_{k}^{2}}=-(n-1) \frac{\left(\prod_{i=1}^{n} x_{i}\right)^{1 / n}}{n^{2} x_{k}^{2}}, \quad \frac{\partial^{2} f(x)}{\partial x_{k} \partial x_{l}}=\frac{\left(\prod_{i=1}^{n} x_{i}\right)^{1 / n}}{n^{2} x_{k} x_{l}} \quad \forall k \neq l xk22f(x)=(n1)n2xk2(i=1nxi)1/n,xkxl2f(x)=n2xkxl(i=1nxi)1/nk=l

因此 ∇ 2 f ( x ) \nabla^{2} f(x) 2f(x)具有如下表达式:

∇ 2 f ( x ) = − ∏ i = 1 n x i 1 / n n 2 ( n diag ⁡ ( 1 / x 1 2 , ⋯   , 1 / x n 2 ) − q q T ) \nabla^{2} f(x)=-\frac{\prod_{i=1}^{n} x_{i}^{1 / n}}{n^{2}}\left(n \operatorname{diag}\left(1 / x_{1}^{2}, \cdots, 1 / x_{n}^{2}\right)-q q^{T}\right) 2f(x)=n2i=1nxi1/n(ndiag(1/x12,,1/xn2)qqT)

其中, q i = 1 / x i q_{i}=1 / x_{i} qi=1/xi,要证明 ∇ 2 f ( x ) ⪯ 0 \nabla^{2} f(x) \preceq 0 2f(x)0,即对于任意的向量 v v v,有

v T ∇ 2 f ( x ) v = − ∏ i = 1 n x i 1 / n n 2 ( n ∑ i = 1 n v i 2 / x i 2 − ( ∑ i = 1 n v i / x i ) 2 ) ⩽ 0 v^{T} \nabla^{2} f(x) v=-\frac{\prod_{i=1}^{n} x_{i}^{1 / n}}{n^{2}}\left(n \sum_{i=1}^{n} v_{i}^{2} / x_{i}^{2}-\left(\sum_{i=1}^{n} v_{i} / x_{i}\right)^{2}\right) \leqslant 0 vT2f(x)v=n2i=1nxi1/n(ni=1nvi2/xi2(i=1nvi/xi)2)0

上述不等式可以应用Cauchy-Schwarz不等式 ( a T a ) ( b T b ) ≥ ( a T b ) 2 (a^Ta)(b^Tb)≥(a^Tb)^2 (aTa)(bTb)(aTb)2得到,只需令向量 a = 1 a=1 a=1,向量 b b b的分量为 b i = v i / x i b_{i}=v_{i} / x_{i} bi=vi/xi.

对数----行列式。 函数 f ( X ) = l o g d e t X f(X)= logdetX f(X)=logdetX在定义域 dom ⁡ f = S + + n \operatorname{dom} f=\mathbf{S}_{++}^n domf=S++n上是凹函数。

证明:可将其转化为任意直线上的单变量函数来验证它是凹的。令 X = Z + t V X= Z+tV X=Z+tV,其中 Z , V ∈ S n Z, V∈S^n Z,VSn,定义 g ( t ) = f ( Z + t V ) g(t)= f(Z+tV) g(t)=f(Z+tV),自变量 t t t满足 Z + t V > 0 Z+tV > 0 Z+tV>0。不失一般性, 假设 t = 0 t=0 t=0满足条件,即 Z > 0 Z> 0 Z>0。我们有

g ( t ) = log ⁡ det ⁡ ( Z + t V ) = log ⁡ det ⁡ ( Z 1 / 2 ( I + t Z − 1 / 2 V Z − 1 / 2 ) Z 1 / 2 ) = ∑ i = 1 n log ⁡ ( 1 + t λ i ) + log ⁡ det ⁡ Z \begin{aligned} g(t) &=\log \operatorname{det}(Z+t V) \\ &=\log \operatorname{det}\left(Z^{1 / 2}\left(I+t Z^{-1 / 2} V Z^{-1 / 2}\right) Z^{1 / 2}\right) \\ &=\sum_{i=1}^{n} \log \left(1+t \lambda_{i}\right)+\log \operatorname{det} Z \end{aligned} g(t)=logdet(Z+tV)=logdet(Z1/2(I+tZ1/2VZ1/2)Z1/2)=i=1nlog(1+tλi)+logdetZ

其中 λ 1 , ⋯   , λ n \lambda_{1}, \cdots, \lambda_{n} λ1,,λn是矩阵 Z − 1 / 2 V Z − 1 / 2 Z^{-1 / 2} V Z^{-1 / 2} Z1/2VZ1/2的特征值。因此下式成立

g ′ ( t ) = ∑ i = 1 n λ i 1 + t λ i , g ′ ′ ( t ) = − ∑ i = 1 n λ i 2 ( 1 + t λ i ) 2 g^{\prime}(t)=\sum_{i=1}^{n} \frac{\lambda_{i}}{1+t \lambda_{i}}, \quad g^{\prime \prime}(t)=-\sum_{i=1}^{n} \frac{\lambda_{i}^{2}}{\left(1+t \lambda_{i}\right)^{2}} g(t)=i=1n1+tλiλi,g(t)=i=1n(1+tλi)2λi2

因为 g ′ ′ ( t ) ⩽ 0 g^{\prime \prime}(t) \leqslant 0 g(t)0,所以函数 f f f是凹的。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羊冲呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值