凸优化学习笔记 6:共轭函数

个人博客地址 Glooow,欢迎光临~~~

1. 共轭函数

1.1 定义

一个函数 ff共轭函数(conjugate function) 定义为
f(y)=supxdomf(yTxf(x)) f^*(y)=\sup_{x\in\text{dom}f}(y^Tx-f(x))
凸优化学习笔记 6:共轭函数

ff^* 是凸函数,证明也很简单,可以看成是一系列关于 yy 的凸函数取上确界。

Remarks:实际上共轭函数与前面讲的一系列支撑超平面包围 ff 很类似,通过 yy 取不同的值,也就获得了不同斜率的支撑超平面,最后把 ff 包围起来,就好像是得到了 epi f\text{epi }f 的一个闭包,如下图所示

凸优化学习笔记 6:共轭函数

1.2 性质

关于共轭函数有以下性质

  1. ff 为凸的且是闭的(epi f\text{epi }f 为闭集),则 f=ff^{**}=f (可以联系上面提到一系列支撑超平面)
  2. (Fenchel’s inequality) f(x)+f(y)xTyf(x)+f^*(y)\ge x^Ty,这可以类比均值不等式
  3. (Legendre transform)如果 fC1f\in C^1,且为凸的、闭的,设 x=argmax{yTxf(x)}x^*=\arg\max\{y^Tx-f(x)\},那么有 x=f(y)    y=f(x)x^*=\nabla f^*(y)\iff y=\nabla f(x^*)。这可以用来求极值,比如 minf(x)0=f(x)    x=f(0)\min f(x)\Longrightarrow 0=\nabla f(x)\iff x=\nabla f^*(0)

1.3 例子

常用的共轭函数的例子有

负对数函数 f(x)=logxf(x)=-\log x
f(y)=supx>0(xy+logx)={1log(y)y<0 otherwise  \begin{aligned} f^{*}(y) &=\sup _{x>0}(x y+\log x) \\ &=\left\{\begin{array}{ll} -1-\log (-y) & y<0 \\ \infty & \text { otherwise } \end{array}\right. \end{aligned}
凸二次函数 f(x)=(1/2)xTQxf(x)=(1 / 2) x^{T} Q x with QS++nQ \in \mathbf{S}_{++}^{n}
f(y)=supx(yTx(1/2)xTQx)=12yTQ1y \begin{aligned} f^{*}(y) &=\sup _{x}\left(y^{T} x-(1 / 2) x^{T} Q x\right) \\ &=\frac{1}{2} y^{T} Q^{-1} y \end{aligned}
指示函数 IS(y)=sup{yTxxS},IS(x)=0I_S^*(y)=\sup\{y^Tx|x\in S\},I_S(x)=0 on domIS=S\text{dom}I_S=S

log-sum-exp 函数 f(x)=logexpxif(x)=\log\sum\exp x_i
f(y)={i=1nyilogyi if y0 and 1Ty=1 otherwise.  f^{*}(y)=\left\{\begin{array}{ll} \sum_{i=1}^{n} y_{i} \log y_{i} & \text { if } y \succeq 0 \text { and } \mathbf{1}^{T} y=1 \\ \infty & \text { otherwise. } \end{array}\right.
范数 f(x)=xf(x)=\Vert x\Vert
f(y)={0y1 otherwise  f^{*}(y)=\left\{\begin{array}{ll} 0 & \|y\|_{*} \leq 1 \\ \infty & \text { otherwise } \end{array}\right.
范数平方 f(x)=(1/2)x2f(x)=(1/2)\Vert x\Vert^2
f(y)=(1/2)y2 f^*(y)=(1/2)\Vert y\Vert_*^2