PRML第十章——变分推断(二)
上一篇博客提到了在变分推断中,常用的优化方法是通过将需要近似的目标分布 q ( Z ) q(\mathbf Z) q(Z)中的隐变量 Z \mathbf Z Z分解为多个因子,并最大化下界 L ( q ) \mathcal L(q) L(q)得到的。
因子近似的特性
考虑对高斯分布
p
(
z
)
=
N
(
z
∣
μ
,
Λ
−
1
)
p ( \mathbf { z } ) = \mathcal { N } ( \mathbf { z } | \boldsymbol { \mu } , \mathbf { \Lambda } ^ { - 1 } )
p(z)=N(z∣μ,Λ−1),并且两个相关性因子
z
=
(
z
1
,
z
2
)
\mathbf { z } = \left( z _ { 1 } , z _ { 2 } \right)
z=(z1,z2),其中均值与方差分别为:
μ
=
(
μ
1
μ
2
)
,
Λ
=
(
Λ
11
Λ
12
Λ
21
Λ
22
)
\boldsymbol { \mu } = \left( \begin{array} { c } { \mu _ { 1 } } \\ { \mu _ { 2 } } \end{array} \right) , \quad \boldsymbol { \Lambda } = \left( \begin{array} { c c } { \Lambda _ { 11 } } & { \Lambda _ { 12 } } \\ { \Lambda _ { 21 } } & { \Lambda _ { 22 } } \end{array} \right)
μ=(μ1μ2),Λ=(Λ11Λ21Λ12Λ22)
并且因式
q
(
Z
)
=
q
1
(
Z
1
)
q
2
(
Z
2
)
q(\mathbf Z) = q_1(\mathbf Z_1)q_2(\mathbf Z_2)
q(Z)=q1(Z1)q2(Z2)。首先考虑公式(10.9)的优化方法,得到:
ln
q
1
⋆
(
z
1
)
=
E
z
2
[
ln
p
(
z
)
]
+
const
=
E
z
2
[
−
1
2
(
z
1
−
μ
1
)
2
Λ
11
−
(
z
1
−
μ
1
)
Λ
12
(
z
2
−
μ
2
)
]
+
const
=
−
1
2
z
1
2
Λ
11
+
z
1
μ
1
Λ
11
−
z
1
Λ
12
(
E
[
z
2
]
−
μ
2
)
+
const.
\begin{aligned} \ln q _ { 1 } ^ { \star } \left( z _ { 1 } \right) & = \mathbb { E } _ { z _ { 2 } } [ \ln p ( \mathbf { z } ) ] + \text { const } \\ & = \mathbb { E } _ { z _ { 2 } } \left[ - \frac { 1 } { 2 } \left( z _ { 1 } - \mu _ { 1 } \right) ^ { 2 } \Lambda _ { 11 } - \left( z _ { 1 } - \mu _ { 1 } \right) \Lambda _ { 12 } \left( z _ { 2 } - \mu _ { 2 } \right) \right] + \text { const } \\ & = - \frac { 1 } { 2 } z _ { 1 } ^ { 2 } \Lambda _ { 11 } + z _ { 1 } \mu _ { 1 } \Lambda _ { 11 } - z _ { 1 } \Lambda _ { 12 } \left( \mathbb { E } \left[ z _ { 2 } \right] - \mu _ { 2 } \right) + \text { const. } \end{aligned}
lnq1⋆(z1)=Ez2[lnp(z)]+ const =Ez2[−21(z1−μ1)2Λ11−(z1−μ1)Λ12(z2−μ2)]+ const =−21z12Λ11+z1μ1Λ11−z1Λ12(E[z2]−μ2)+ const.
由于公式右侧为
z
1
z_1
z1的二次函数,因此我们假设
q
1
∗
(
z
1
)
q_1^*(z_1)
q1∗(z1)是服从高斯分布
q
1
⋆
(
z
1
)
=
N
(
z
1
∣
m
1
,
Λ
11
−
1
)
q _1^ { \star } \left( z _ { 1 } \right) = \mathcal { N } \left( z _ { 1 } | m _ { 1 } , \Lambda _ { 11 } ^ { - 1 } \right)
q1⋆(z1)=N(z1∣m1,Λ11−1)的,那么:
m
1
=
μ
1
−
Λ
11
−
1
Λ
12
(
E
[
z
2
]
−
μ
2
)
m _ { 1 } = \mu _ { 1 } - \Lambda _ { 11 } ^ { - 1 } \Lambda _ { 12 } \left( \mathbb { E } \left[ z _ { 2 } \right] - \mu _ { 2 } \right)
m1=μ1−Λ11−1Λ12(E[z2]−μ2)
那么,根据对称性,
q
2
∗
(
z
2
)
q_2^*(z_2)
q2∗(z2)也是高斯的,也就是:
q
2
⋆
(
z
2
)
=
N
(
z
2
∣
m
2
,
Λ
22
−
1
)
q _ { 2 } ^ { \star } \left( z _ { 2 } \right) = \mathcal { N } \left( z _ { 2 } | m _ { 2 } , \Lambda _ { 22 } ^ { - 1 } \right)
q2⋆(z2)=N(z2∣m2,Λ22−1)
m
2
=
μ
2
−
Λ
22
−
1
Λ
21
(
E
[
z
1
]
−
μ
1
)
m _ { 2 } = \mu _ { 2 } - \Lambda _ { 22 } ^ { - 1 } \Lambda _ { 21 } \left( \mathbb { E } \left[ z _ { 1 } \right] - \mu _ { 1 } \right)
m2=μ2−Λ22−1Λ21(E[z1]−μ1)
举一个具体的例子,假设在图10.2中,绿色的contour表示的是原分布
p
(
Z
)
p(\mathbf Z)
p(Z),红色contour表示的是近似的分布
q
(
Z
)
q(\mathbf Z)
q(Z)。在图10.2(a)中,二者的均值相互重叠,
q
(
Z
)
q(\mathbf Z)
q(Z)方差由
p
(
Z
)
p(\mathbf Z)
p(Z)的最小方差方向确定的。
在优化KL散度的过程中,我们选择了一种近似变分的框架,叫Expectation Propagation(EP)。p和q之间的KL散度的公式为:
K
L
(
p
∥
q
)
=
−
∫
p
(
Z
)
[
∑
i
=
1
M
ln
q
i
(
Z
i
)
]
d
Z
+
const.
\mathrm { KL } ( p \| q ) = - \int p ( \mathbf { Z } ) \left[ \sum _ { i = 1 } ^ { M } \ln q _ { i } \left( \mathbf { Z } _ { i } \right) \right] \mathrm { d } \mathbf { Z } + \text{const.}
KL(p∥q)=−∫p(Z)[i=1∑Mlnqi(Zi)]dZ+const.
其中的常数项为
p
(
Z
)
p(\mathbf Z)
p(Z)的熵值。
对于上式一种优化方式是,我们可以优化
q
(
Z
)
q(\mathbf Z)
q(Z)的每个因子
q
j
(
Z
j
)
q_j(\mathbf Z_j)
qj(Zj)。通过Lagrange乘子法,可以得到:
q
j
⋆
(
Z
j
)
=
∫
p
(
Z
)
∏
i
≠
j
d
Z
i
=
p
(
Z
j
)
q _ { j } ^ { \star } \left( \mathbf { Z } _ { j } \right) = \int p ( \mathbf { Z } ) \prod _ { i \neq j } \mathrm { d } \mathbf { Z } _ { i } = p \left( \mathbf { Z } _ { j } \right)
qj⋆(Zj)=∫p(Z)i̸=j∏dZi=p(Zj)
从中可以看到,每个因子的最优分布是相关的因子的边缘概率分布
p
(
Z
j
)
p(\mathbf Z_j)
p(Zj)。
如果是优化q和p之间的KL散度,也就是:
K
L
(
q
∥
p
)
=
−
∫
q
(
Z
)
ln
{
p
(
Z
)
q
(
Z
)
}
d
Z
\mathrm { KL } ( q \| p ) = - \int q ( \mathbf { Z } ) \ln \left\{ \frac { p ( \mathbf { Z } ) } { q ( \mathbf { Z } ) } \right\} \mathrm { d } \mathbf { Z }
KL(q∥p)=−∫q(Z)ln{q(Z)p(Z)}dZ
那么最终得到的分布则是如图10.2(b)所示。
最小化这种形式的KL散度,使得近似的分布
q
(
Z
)
q(\mathbf Z)
q(Z)避免了
p
(
Z
)
p(\mathbf Z)
p(Z)比较小的情况。
而在实际的分布中,我们通常使用EP,也就是优化
K
L
(
p
∣
∣
q
)
KL(p||q)
KL(p∣∣q),而不是
K
L
(
q
∣
∣
p
)
KL(q||p)
KL(q∣∣p)。真实的后验分布通常是多模态的,通常大多数后验分布都会集中于一个比较小的区域。这些多模态特性可能导致参数的复杂非线性依赖,而使用单高斯分布进行近似可能导致很差的拟合效果。具体见图10.3(a)。
而如若优化
K
L
(
p
∣
∣
q
)
KL(p||q)
KL(p∣∣q),则可以逐一优化每个模态的分布,如图10.3(b)©所示。而这种思想也是后面会讲到的Expectation Propagation 思想。
以上讨论的两种KL散度都是属于alpha 族的散度族,其具体形式为:
D
α
(
p
∥
q
)
=
4
1
−
α
2
(
1
−
∫
p
(
x
)
(
1
+
α
)
/
2
q
(
x
)
(
1
−
α
)
/
2
d
x
)
\mathrm { D } _ { \alpha } ( p \| q ) = \frac { 4 } { 1 - \alpha ^ { 2 } } \left( 1 - \int p ( x ) ^ { ( 1 + \alpha ) / 2 } q ( x ) ^ { ( 1 - \alpha ) / 2 } \mathrm { d } x \right)
Dα(p∥q)=1−α24(1−∫p(x)(1+α)/2q(x)(1−α)/2dx)
而当
α
=
0
\alpha = 0
α=0时,则是Hellinger distance:
D
H
(
p
∥
q
)
=
∫
(
p
(
x
)
1
/
2
−
q
(
x
)
1
/
2
)
d
x
\mathrm { D } _ { \mathrm { H } } ( p \| q ) = \int \left( p ( x ) ^ { 1 / 2 } - q ( x ) ^ { 1 / 2 } \right) \mathrm { d } x
DH(p∥q)=∫(p(x)1/2−q(x)1/2)dx