Skip to content

重要凸函数 ​

基本初等函数 ​

  • 指数函数:对任意 a∈R,函数 f(x)=eax 在 R 上是凸的。
  • 对数函数:函数 f(x)=log⁡x 在 R++ 上是凸函数。
  • 幂函数:当 a⩾1 或 a⩽0 时,f(x)=xa 在 R++ 上是凸函数;当 0⩽a⩽1,函数 xa 在 R++ 上是凹函数。

复合函数 ​

负熵 ​

函数 f(x)=xlog⁡x 在其定义域上是凸函数。其定义域为 R++,但也可以定义在 R+ 上(f(0)=0),这是因为

limx→0+xlog⁡x=limx→0+log⁡x1/x=limx→0+1/x−1/x2=0

函数 f 的导数和二阶导数为

f′(x)=log⁡x+1,f′′(x)=1x>0

范数 ​

Rn 上的任意范数均为凸函数。由三角不等式与正齐次性,

∥θx+(1−θ)y∥⩽θ∥x∥+(1−θ)∥y∥

即可验证。事实上,∥⋅∥ 还是凸函数的典型代表:若 ∥⋅∥ 凸且 ∥tx∥=|t|∥x∥ 对所有标量 t 成立,则 ∥⋅∥ 一定是范数。

二次-线性分式函数 ​

二元函数 f(x,y)=x2y 是凸函数,其定义域为

domf=R×R++={(x,y)∈R2∣y>0}

TikZ 代码
tex
\begin{tikzpicture}[line cap=round,line join=round,scale=0.62,
  xq/.style={gray!60}]
  % wireframe of f(x,y) = x^2 / y (affine 3D projection)
  \foreach \yy in {0.6,1,1.6,2.4,3.6,5.4,8}
    \draw[xq] plot[domain=-4:4,samples=33]
      ({0.9*\x + 0.6*\yy}, {0.25*\x*\x/\yy - 0.35*\x + 0.3*\yy});
  \foreach \xx in {-4,-3,-2,-1,0,1,2,3,4}
    \draw[xq] plot[domain=0.6:8,samples=25]
      ({0.9*\xx + 0.6*\x}, {0.25*\xx*\xx/\x - 0.35*\xx + 0.3*\x});
  % axes
  \draw[->] (-3.6,1.4) -- (4.14,-1.61) node[right] {$x$};
  \draw[->] (0,0) -- (5.16,2.58) node[above right] {$y$};
  \draw[->] (0,0) -- (0,5.92) node[above] {$z$};
\end{tikzpicture}

二次-线性分式函数是二次函数 x2 的透视函数,由透视运算的保凸性可知它是凸的(见保凸运算一节)。

指数和的对数 ​

函数 f(x)=log⁡(ex1+⋯+exn) 在 Rn 上是凸函数。

下面是函数 f(x)=log⁡(ex+ey) 的图像。

TikZ 代码
tex
\begin{tikzpicture}[line cap=round,line join=round,scale=0.62,
  xq/.style={gray!60}]
  % wireframe of f(x,y) = log(e^x + e^y) (affine 3D projection)
  \foreach \yy in {-6,-3,0,3,6}
    \draw[xq] plot[domain=-6:6,samples=33]
      ({0.9*\x + 0.6*\yy}, {0.8*ln(exp(\x) + exp(\yy)) - 0.35*\x + 0.3*\yy});
  \foreach \xx in {-6,-3,0,3,6}
    \draw[xq] plot[domain=-6:6,samples=33]
      ({0.9*\xx + 0.6*\x}, {0.8*ln(exp(\xx) + exp(\x)) - 0.35*\xx + 0.3*\x});
  % axes
  \draw[->] (-5.4,2.1) -- (6.12,-2.1) node[right] {$x$};
  \draw[->] (0,0) -- (4.08,2.04) node[above right] {$y$};
  \draw[->] (0,0) -- (0,5.0) node[above] {$z$};
\end{tikzpicture}

凸性可以通过 Hessian 矩阵验证:记 z=(ex1,⋯,exn),1⊤z=ex1+⋯+exn,则

∇2f(x)=11⊤zdiag(z)−1(1⊤z)2zz⊤

对任意 v,v⊤∇2f(x)v=∑iz¯ivi2−(∑iz¯ivi)2⩾0,其中 z¯i=zi/1⊤z 构成一个概率分布,上式即“平方的期望不小于期望的平方”。

几何平均数 ​

几何平均数函数 f(x)=(∏i=1nxi)1/n 在定义域 domf=R++n 上是凹函数。

分段函数 ​

绝对值幂函数 ​

当 p⩾1 时,函数 |x|p 在 R 上是凸函数。

最大值 ​

最大值函数 f(x)=max{x1,⋯,xn} 是凸函数,因为它是若干线性函数的逐点最大(见保凸运算一节)。特别地,f(x)=max{0,x} 是凸的。

证明 ​

判断上述函数的凸性可以通过多种途径。可以直接验证一阶条件是否成立,亦可以验证其 Hessian 矩阵是否半正定,或者可以将函数转换到与其定义域相交的任意直线上,通过得到的单变量函数判断原函数的凸性。