假设 f f f可微,则函数 f f f是凸函数的充要条件是 d o m f dom f domf是凸集且对于任意 x , y ∈ d o m f x, y∈domf x,y∈domf, 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 f f二阶可微,则函数 f f f是凸函数的充要条件是:其 H e s s i a n Hessian Hessian矩阵是半正定阵,即对于所有的 x ∈ d o m f x∈domf x∈domf,有 ∇ 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:Rn→R,其定义域为 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} P∈Sn,q∈Rn,r∈R。
一阶导为 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 P⪰0时,函数 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=x∈R∣x=0,对于所有 x ∈ d o m f x∈domf x∈domf均满足 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 a∈R,函数 e a x e^{ax} eax在 R R R上是凸的。
●幂函数。当 a ≥ 1 a≥1 a≥1或 a ≤ 0 a≤0 a≤0时, x a x^a xa在 R + + {R}_{++} R++上是凸函数,当 0 ≤ a ≤ 1 0≤a≤1 0≤a≤1时, a x a a^{xa} axa在 R + + {R}_{++} R++上是凹函数。
●绝对值幂函数。当 p ≥ 1 p≥1 p≥1时,函数 ∣ x ∣ P |x|P ∣x∣P在 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:Rn→R是范数,任取 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)∈R2∣y>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[y2−xy−xyx2]=y32[y−x][y−x]T⪰0
●指数和的对数。函数 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 vT∇2f(x)v⩾0,即
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 vT∇2f(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 ∂xk2∂2f(x)=−(n−1)n2xk2(∏i=1nxi)1/n,∂xk∂xl∂2f(x)=n2xkxl(∏i=1nxi)1/n∀k=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)=−n2∏i=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 vT∇2f(x)v=−n2∏i=1nxi1/n(n∑i=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,V∈Sn,定义 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+tZ−1/2VZ−1/2)Z1/2)=i=1∑nlog(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} Z−1/2VZ−1/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是凹的。