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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenxiaolu1984/article/details/78194053

共轭函数是最优化问题中非常重要的概念,常用来在原问题和对偶问题之间进行转换。
本文从便于理解的角度对其进行介绍,并推导常见例子。
本文主要参考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¯ 决定。
这里写图片描述

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

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

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

这里写图片描述

举例

Negative entropy

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

原函数为增函数。
对于 y<0 l(x) 为减函数。则 l(x)f(x) 为减函数,不超过其在零点取值。
对于 y0 l(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

猜你喜欢

转载自blog.csdn.net/shenxiaolu1984/article/details/78194053
今日推荐