共轭函数是最优化问题中非常重要的概念,常用来在原问题和对偶问题之间进行转换。
本文从便于理解的角度对其进行介绍,并推导常见例子。
本文主要参考S. Boyd and L. Vandenberghe, Convex Optimization中3.3节。

定义

对于原函数f(x),xD,其共轭函数为:

f(y)=supxD(<y,x>f(x))

其中,<y,x>表示两个变量的内积

  • 对于标量:<y,x>=yx
  • 对于向量:<y,x>=yTx
  • 对于n×n对称矩阵:<y,x>=tr(yx)

特别注意,共轭函数的定义域要求对xD<y,x>f(x)有上界。即,f(y)不能为无穷大。

物理意义

对于共轭函数的每一个自变量y=y¯,其取值相当于一条直线与原函数之差的最大值:

f(y¯)=supxD(l(x)f(x))

这条直线l(x)=<y¯,x>,其斜率由y¯决定。
【优化】共轭函数(Conjugate Function)超简说明

两条曲线之差随着x变化,其最大值可以对x求导得到:

(<y,x>f(x))x=0f(x)=y

即:曲线斜率与直线斜率相同处的x,能够得到最大值。
f(y¯)=<y¯,x¯>f(x¯),subject to f(x¯)=y¯

【优化】共轭函数(Conjugate Function)超简说明

举例

Negative entropy

原函数:f(x)=xlogx,x>0

原函数为增函数。
对于y<0l(x)为减函数。则l(x)f(x)为减函数,不超过其在零点取值。
对于y0l(x)也是增函数

limxl(x)/f(x)=limxl(x)/f(x)=limxy/(logx+x)=0

l(x)增速小于f(x)增速,故其差有界。

故,f(y)的定义域为yR

找到最大值处x的表达式:

xyxlogxx=0x=ey1

代入共轭函数:
f(y)=yey1ey1(y1)=ey1

相关文章: