【优化】共轭函数(Conjugate Function)超简说明
【优化】共轭函数(Conjugate Function)超简说明
共轭函数是最优化问题中非常重要的概念,常用来在原问题和对偶问题之间进行转换。 本文主要参考S. Boyd and L. Vandenberghe, Convex Optimization中3.3节。
定义
对于原函数
f
(
x
)
,
x
∈
D
f(x),x\in D
f(x),x∈D,其共轭函数为:<br>
f
∗
(
y
)
=
sup
x
∈
D
(
<
y
,
x
>
−
f
(
x
)
)
f^*(y)=\sup_{x\in D} (<y,x>-f(x))
f∗(y)=x∈Dsup(<y,x>−f(x))
其中,
<
y
,
x
>
<y,x>
<y,x>表示两个变量的内积
<
y
,
x
>
=
y
⋅
x
<y,x>=y\cdot x
<y,x>=y⋅x</li><li>对于向量:
<
y
,
x
>
=
y
T
x
<y,x>=y^Tx
<y,x>=yTx</li><li>对于
n
×
n
n\times n
n×n对称矩阵:
<
y
,
x
>
=
tr
(
y
x
)
<y,x>=\textbf{tr} (yx)
<y,x>=tr(yx)</li>
特别注意,共轭函数的定义域要求对
x
∈
D
x\in D
x∈D,
<
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ˉ,其取值相当于一条直线与原函数之差的最大值:<br>
f
∗
(
y
ˉ
)
=
sup
x
∈
D
(
l
(
x
)
−
f
(
x
)
)
f^*(\bar y)=\sup_{x\in D}(l(x)-f(x))
f∗(yˉ)=x∈Dsup(l(x)−f(x))<br> 这条直线
l
(
x
)
=
<
y
ˉ
,
x
>
l(x)=<\bar y,x>
l(x)=<yˉ,x>,其斜率由
y
ˉ
\bar y
yˉ决定。<br> <img src="https://img-blog.csdnimg.cn/img_convert/0a8b6711f36f1a713e13e2d52b3f29df.png" alt="这里写图片描述">
两条曲线之差随着
x
x
x变化,其最大值可以对
x
x
x求导得到:<br>
∂
(
<
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))=0⇒f′(x)=y<br> 即:曲线斜率与直线斜率相同处的
x
x
x,能够得到最大值。<br>
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ˉ<br> <img src="https://img-blog.csdnimg.cn/img_convert/2360b31a33849eeed01571b5c8055b89.png" alt="这里写图片描述">
举例
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)为减函数,不超过其在零点取值。<br> 对于
y
≥
0
y\geq 0
y≥0,
l
(
x
)
l(x)
l(x)也是增函数<br>
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
x→∞liml(x)/f(x)=x→∞liml′(x)/f′(x)=x→∞limy/(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
y∈R。
找到最大值处
x
x
x的表达式:<br>
x
y
−
x
log
x
∂
x
=
0
⇒
x
=
e
y
−
1
\frac{xy - x\log x}{\partial x}=0 \Rightarrow x=e^{y-1}
∂xxy−xlogx=0⇒x=ey−1
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)=y⋅ey−1−ey−1(y−1)=ey−1
转载于网络 侵权联系作者立即删除QAQ

浙公网安备 33010602011771号