本文需要对 E M EM EM算法有一定的了解。若对 E M EM EM算法之前没有了解过,不建议看本文。这里给出常用的推导EM算法的案例:高斯混合算法(GMM)与最大期望算法(EM)的推导
假设隐变量为
Z
Z
Z,可观测变量为
X
X
X,要求解的未知参数为
θ
\theta
θ。
在EM算法框架中,
(
X
,
Z
)
(X,Z)
(X,Z)称为完全数据。EM算法其实还是为了求解最大似然解,但是并不是最大似然的解析解,而是近似解。所以我们还是要推导出未知参数
θ
\theta
θ的最大似然形式。
EM算法推导方式(一)
第一种方式使用
K
L
KL
KL散度推导。最终形式是这样:
l
o
g
p
(
X
;
θ
)
=
E
L
B
O
+
D
K
L
(
q
∣
∣
p
)
logp(X;\theta) = ELBO+D_{KL}(q||p)
logp(X;θ)=ELBO+DKL(q∣∣p)
完全数据的联合概率分布:
p
(
X
,
Z
;
θ
)
=
p
(
X
;
θ
)
p
(
Z
∣
X
;
θ
)
(1)
\tag{1}p(X,Z;\theta) = p(X;\theta)p(Z|X;\theta)
p(X,Z;θ)=p(X;θ)p(Z∣X;θ)(1)
由(1)式可得未知参数
θ
\theta
θ的似然函数为:
l
o
g
p
(
X
;
θ
)
=
l
o
g
p
(
X
,
Z
;
θ
)
−
l
o
g
p
(
Z
∣
X
;
θ
)
=
l
o
g
p
(
X
,
Z
;
θ
)
−
l
o
g
q
(
Z
)
−
[
l
o
g
p
(
Z
∣
X
;
θ
)
−
l
o
g
q
(
Z
)
]
=
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
−
l
o
g
p
(
Z
∣
X
;
θ
)
q
(
Z
)
(2)
\begin{aligned} \tag{2}logp(X;\theta) = & logp(X,Z;\theta)-logp(Z|X;\theta) \\ = & logp(X,Z;\theta)-logq(Z)-[logp(Z|X;\theta)-logq(Z)] \\ = & log{p(X,Z;\theta) \over q(Z)} - log{p(Z|X;\theta) \over q(Z)} \end{aligned}
logp(X;θ)===logp(X,Z;θ)−logp(Z∣X;θ)logp(X,Z;θ)−logq(Z)−[logp(Z∣X;θ)−logq(Z)]logq(Z)p(X,Z;θ)−logq(Z)p(Z∣X;θ)(2)
注意在上式第二行引入了关于
Z
的
一
个
分
布
q
(
Z
)
Z的一个分布q(Z)
Z的一个分布q(Z)。
同时在(2)式两边乘以
q
(
Z
)
q(Z)
q(Z),并对
Z
Z
Z积分。
左
边
=
∫
Z
q
(
Z
)
l
o
g
p
(
X
;
θ
)
d
Z
=
l
o
g
p
(
X
;
θ
)
左边=\int_{Z}q(Z)logp(X;\theta)dZ = logp(X;\theta)
左边=∫Zq(Z)logp(X;θ)dZ=logp(X;θ)
右
边
=
∫
Z
q
(
Z
)
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
−
q
(
Z
)
l
o
g
p
(
Z
∣
X
;
θ
)
q
(
Z
)
d
Z
=
∫
Z
q
(
Z
)
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
d
Z
−
∫
Z
q
(
Z
)
l
o
g
p
(
Z
∣
X
;
θ
)
q
(
Z
)
d
Z
\begin{aligned} 右边= & \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}-q(Z) log{p(Z|X;\theta) \over q(Z)}dZ \\ = & \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ -\int_{Z}q(Z) log{p(Z|X;\theta) \over q(Z)}dZ \end{aligned}
右边==∫Zq(Z)logq(Z)p(X,Z;θ)−q(Z)logq(Z)p(Z∣X;θ)dZ∫Zq(Z)logq(Z)p(X,Z;θ)dZ−∫Zq(Z)logq(Z)p(Z∣X;θ)dZ
上式中,第二项连同负号式KL散度的形式,恒大于等于0。第一项常称作ELBO,所以我们可以得到
l
o
g
p
(
X
;
θ
)
=
E
L
B
O
+
D
K
L
[
q
(
Z
∣
∣
p
(
Z
∣
X
;
θ
)
)
]
logp(X;\theta) = ELBO +D_{KL}[q(Z||p(Z|X;\theta))]
logp(X;θ)=ELBO+DKL[q(Z∣∣p(Z∣X;θ))]
由于第二项KL散度项恒大于等于0,所以有下式成立:
l
o
g
p
(
X
;
θ
)
>
=
∫
Z
q
(
Z
)
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
d
Z
=
E
q
(
Z
)
[
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
]
(3)
\tag{3} logp(X;\theta) >= \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ = E_{q(Z)}[log{p(X,Z;\theta) \over q(Z)}]
logp(X;θ)>=∫Zq(Z)logq(Z)p(X,Z;θ)dZ=Eq(Z)[logq(Z)p(X,Z;θ)](3)
当分布
q
(
Z
)
=
p
(
Z
∣
X
;
θ
)
q(Z) = p(Z|X;\theta)
q(Z)=p(Z∣X;θ)的时候取等号。
令
E
L
B
O
=
∫
Z
q
(
Z
)
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
d
Z
ELBO= \int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ
ELBO=∫Zq(Z)logq(Z)p(X,Z;θ)dZ。
E
L
B
O
ELBO
ELBO函数是最大似然
l
o
g
p
(
X
;
θ
)
logp(X; \theta)
logp(X;θ)的紧下界,最大化
l
o
g
p
(
X
;
θ
)
logp(X; \theta)
logp(X;θ),只需要最大化
E
L
B
O
ELBO
ELBO函数即可。
θ
^
=
a
r
g
m
a
x
θ
E
B
L
O
=
a
r
g
m
a
x
θ
∫
Z
q
(
Z
)
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
d
Z
=
a
r
g
m
a
x
θ
∫
Z
p
(
Z
∣
X
;
θ
o
l
d
)
l
o
g
p
(
X
,
Z
;
θ
)
p
(
Z
∣
X
;
θ
o
l
d
)
d
Z
=
a
r
g
m
a
x
θ
∫
Z
p
(
Z
∣
X
;
θ
o
l
d
)
l
o
g
p
(
X
,
Z
;
θ
)
d
Z
−
∫
Z
p
(
Z
∣
X
;
θ
o
l
d
)
l
o
g
p
(
Z
∣
X
;
θ
o
l
d
)
d
Z
=
a
r
g
m
a
x
θ
∫
Z
p
(
Z
∣
X
;
θ
o
l
d
)
l
o
g
p
(
X
,
Z
;
θ
)
d
Z
(4)
\begin{aligned} \tag{4} \hat{\theta} = & argmax_{\theta}EBLO \\ = & argmax_{\theta}\int_{Z}q(Z)log{p(X,Z;\theta) \over q(Z)}dZ \\ = & argmax_{\theta} \int_{Z}p(Z|X;\theta^{old})log{p(X,Z;\theta) \over p(Z|X;\theta^{old})}dZ \\ = & argmax_{\theta} \int_{Z}p(Z|X;\theta^{old})log{p(X,Z;\theta)} dZ -\int_{Z}p(Z|X;\theta^{old})logp(Z|X;\theta^{old})dZ \\ = & argmax_{\theta}\int_{Z}p(Z|X;\theta^{old})log{p(X,Z;\theta)} dZ \end{aligned}
θ^=====argmaxθEBLOargmaxθ∫Zq(Z)logq(Z)p(X,Z;θ)dZargmaxθ∫Zp(Z∣X;θold)logp(Z∣X;θold)p(X,Z;θ)dZargmaxθ∫Zp(Z∣X;θold)logp(X,Z;θ)dZ−∫Zp(Z∣X;θold)logp(Z∣X;θold)dZargmaxθ∫Zp(Z∣X;θold)logp(X,Z;θ)dZ(4)
在(4)式中第3行引入了
Z
Z
Z的后验分布,因为
q
(
Z
)
=
p
(
Z
∣
X
;
θ
)
q(Z)=p(Z|X;\theta)
q(Z)=p(Z∣X;θ)时(3)式取等号。倒数第二行的第二项是与
θ
\theta
θ无关的, 所以在argmax操作中可以省去。
最终,求解(4)式得到的 θ ^ \hat{\theta} θ^就是使 l o g p ( X ; θ ) logp(X;\theta) logp(X;θ)最大的 θ \theta θ。(4)式最后的积分部分也可以记为 E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] Ep(Z∣X;θold)[logp(X,Z;θ)]。
仔细观察(4)式,我们引入了
Z
Z
Z的后验分布
p
(
Z
∣
X
;
θ
o
l
d
)
p(Z|X;\theta^{old})
p(Z∣X;θold),所以我们要先计算出
p
(
Z
∣
X
;
θ
o
l
d
)
p(Z|X;\theta^{old})
p(Z∣X;θold)。通常
Z
Z
Z的后验的计算是通过贝叶斯公式来完成的。也就是:
p
(
Z
∣
X
;
θ
o
l
d
)
=
p
(
Z
,
X
;
θ
o
l
d
)
p
(
X
;
θ
o
l
d
)
p(Z|X;\theta^{old}) = {p(Z,X;\theta^{old}) \over p(X;\theta^{old})}
p(Z∣X;θold)=p(X;θold)p(Z,X;θold)
在首次进行计算时,
θ
o
l
d
\theta^{old}
θold是随机初始化的。
下面总结EM算法框架:
- 随机初始化未知参数,初始化值记为 θ o l d \theta^{old} θold
- E-STEP:
- 求隐变量 Z Z Z的后验: p ( Z ∣ X ; θ o l d ) p(Z|X;\theta^{old}) p(Z∣X;θold)
- 求完全数据 ( X , Z ) (X,Z) (X,Z)的对数似然关于 Z Z Z的后验的期望: E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] Ep(Z∣X;θold)[logp(X,Z;θ)]
- M-STEP:
最大化期望: E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] Ep(Z∣X;θold)[logp(X,Z;θ)],也就是 θ ^ = a r g m a x θ E p ( Z ∣ X ; θ o l d ) [ l o g p ( X , Z ; θ ) ] \hat{\theta}=argmax_{\theta} E_{p(Z|X;\theta^{old})}[logp(X,Z;\theta)] θ^=argmaxθEp(Z∣X;θold)[logp(X,Z;θ)]
令 θ o l d = θ ^ \theta^{old} = \hat{\theta} θold=θ^,并开启下一轮迭代。
重复上面的2,3步,直到满足收敛条件。这样就求得了最后的参数 θ \theta θ。最后还要提醒一下,这样求得的 θ \theta θ其实还是根据最大似然的方法得到的近似解。另外EM算法不能保证得到全局最优解,能保证得到局部最优。
EM算法推导(二)
第二种方法使用
J
e
n
s
e
n
Jensen
Jensen不等式来推导。
l
o
g
p
(
X
;
θ
)
=
l
o
g
∫
Z
p
(
X
,
Z
;
θ
)
d
Z
=
l
o
g
∫
z
p
(
X
,
Z
;
θ
)
q
(
Z
)
q
(
Z
)
d
Z
=
l
o
g
E
q
(
Z
)
[
p
(
X
,
Z
;
θ
)
q
(
Z
)
]
≥
E
q
(
Z
)
[
l
o
g
p
(
X
,
Z
;
θ
)
q
(
Z
)
]
(5)
\begin{aligned} \tag{5} logp(X;\theta) = & log\int_Z p(X,Z;\theta)dZ \\ = & log \int_z {p(X,Z;\theta)q(Z) \over q(Z)}dZ \\ = & log E_{q(Z)}[{p(X,Z;\theta) \over q(Z)}] \\ \ge & E_{q(Z)}[log{p(X,Z;\theta) \over q(Z)}] \\ \end{aligned}
logp(X;θ)===≥log∫Zp(X,Z;θ)dZlog∫zq(Z)p(X,Z;θ)q(Z)dZlogEq(Z)[q(Z)p(X,Z;θ)]Eq(Z)[logq(Z)p(X,Z;θ)](5)
这样我们就直接推导出了ELBO,那么
q
(
Z
)
q(Z)
q(Z)等于什么呢?
(5)式中用到了
J
e
n
s
e
n
Jensen
Jensen不等式,取等式的条件是
p
(
X
,
Z
;
θ
)
q
(
Z
)
=
C
,
C
是
一
个
常
数
{p(X,Z;\theta) \over q(Z)}=C,C是一个常数
q(Z)p(X,Z;θ)=C,C是一个常数。
那么有
q
(
Z
)
=
1
C
p
(
X
,
Z
;
θ
)
(6)
\tag{6}q(Z)={1 \over C}p(X,Z;\theta)
q(Z)=C1p(X,Z;θ)(6),
两边同时对
Z
Z
Z积分得到
1
=
1
C
p
(
X
;
θ
)
1 = {1 \over C}p(X;\theta)
1=C1p(X;θ)
也就是
C
=
p
(
X
;
θ
)
C=p(X;\theta)
C=p(X;θ),带入(6)式得:
q
(
Z
)
=
p
(
X
,
Z
;
θ
)
p
(
X
;
θ
)
=
p
(
Z
∣
X
;
θ
)
q(Z) = {p(X,Z;\theta) \over p(X;\theta)} = p(Z|X;\theta)
q(Z)=p(X;θ)p(X,Z;θ)=p(Z∣X;θ)
所以(5)取等号的条件和(3)式取等号的条件一样。其他部分和第一种推导方式一样,这里不再赘述。