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

数学 专栏收录该内容
11 篇文章 3 订阅

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

定义

对于原函数 f ( x ) , x ∈ D f(x),x\in D f(x),xD,其共轭函数为:
f ∗ ( y ) = sup ⁡ x ∈ D ( < y , x > − f ( x ) ) f^*(y)=\sup_{x\in D} (<y,x>-f(x)) f(y)=xDsup(<y,x>f(x))

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

  • 对于标量: < y , x > = y ⋅ x <y,x>=y\cdot x <y,x>=yx
  • 对于向量: < y , x > = y T x <y,x>=y^Tx <y,x>=yTx
  • 对于 n × n n\times n n×n对称矩阵: < y , x > = tr ( y x ) <y,x>=\textbf{tr} (yx) <y,x>=tr(yx)

特别注意,共轭函数的定义域要求对 x ∈ D x\in D xD < y , x > − f ( x ) <y,x>-f(x) <y,x>f(x)有上界。即, f ∗ ( y ) f^*(y) f(y)不能为无穷大。

物理意义

对于共轭函数的每一个自变量 y = y ˉ y=\bar{y} y=yˉ,其取值相当于一条直线与原函数之差的最大值:
f ∗ ( y ˉ ) = sup ⁡ x ∈ D ( l ( x ) − f ( x ) ) f^*(\bar y)=\sup_{x\in D}(l(x)-f(x)) f(yˉ)=xDsup(l(x)f(x))
这条直线 l ( x ) = < y ˉ , x > l(x)=<\bar y,x> l(x)=<yˉ,x>,其斜率由 y ˉ \bar y yˉ决定。
这里写图片描述

两条曲线之差随着 x x x变化,其最大值可以对 x x x求导得到:
∂ ( < y , x > − f ( x ) ) ∂ x = 0 ⇒ f ′ ( x ) = y \frac{\partial(<y,x>-f(x))}{\partial x}=0 \Rightarrow f'(x)=y x(<y,x>f(x))=0f(x)=y
即:曲线斜率与直线斜率相同处的 x x x,能够得到最大值。
f ∗ ( y ˉ ) = < y ˉ , x ˉ > − f ( x ˉ ) , s u b j e c t   t o   f ( x ˉ ) = y ˉ f^*(\bar y)=<\bar y, \bar x>-f(\bar x), subject\ to\ f(\bar x)=\bar y f(yˉ)=<yˉ,xˉ>f(xˉ),subject to f(xˉ)=yˉ
这里写图片描述

举例

Negative entropy

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

原函数为增函数。
对于 y < 0 y<0 y<0 l ( x ) l(x) l(x)为减函数。则 l ( x ) − f ( x ) l(x)-f(x) l(x)f(x)为减函数,不超过其在零点取值。
对于 y ≥ 0 y\geq 0 y0 l ( x ) l(x) l(x)也是增函数
lim ⁡ x → ∞ l ( x ) / f ( x ) = lim ⁡ x → ∞ l ′ ( x ) / f ′ ( x ) = lim ⁡ x → ∞ y / ( log ⁡ x + x ) = 0 \lim_{x\to \infty} l(x)/f(x)=\lim_{x \to \infty} l'(x)/f'(x)=\lim_{x\to \infty} y/(\log x + x)=0 xliml(x)/f(x)=xliml(x)/f(x)=xlimy/(logx+x)=0

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

故, f ∗ ( y ) f^*(y) f(y)的定义域为 y ∈ R y\in R yR

找到最大值处 x x x的表达式:
x y − x log ⁡ x ∂ x = 0 ⇒ x = e y − 1 \frac{xy - x\log x}{\partial x}=0 \Rightarrow x=e^{y-1} xxyxlogx=0x=ey1
代入共轭函数:
f ∗ ( y ) = y ⋅ e y − 1 − e y − 1 ( y − 1 ) = e y − 1 f^*(y)=y\cdot e^{y-1}-e^{y-1}(y-1)=e^{y-1} f(y)=yey1ey1(y1)=ey1

  • 27
    点赞
  • 6
    评论
  • 51
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值