期望最大
期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)。MLE 对
p
(
x
∣
θ
)
p(x|\theta)
p(x∣θ) 参数的估计记为:
θ
M
L
E
=
a
r
g
m
a
x
θ
log
p
(
x
∣
θ
)
\theta_{MLE}=\mathop{argmax}\limits_\theta\log p(x|\theta)
θMLE=θargmaxlogp(x∣θ)。EM 算法对这个问题的解决方法是采用迭代的方法:
θ
t
+
1
=
a
r
g
m
a
x
θ
∫
z
log
[
p
(
x
,
z
∣
θ
)
]
p
(
z
∣
x
,
θ
t
)
d
z
=
E
z
∣
x
,
θ
t
[
log
p
(
x
,
z
∣
θ
)
]
\theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz=\mathbb{E}_{z|x,\theta^t}[\log p(x,z|\theta)]
θt+1=θargmax∫zlog[p(x,z∣θ)]p(z∣x,θt)dz=Ez∣x,θt[logp(x,z∣θ)]
这个公式包含了迭代的两步:
- E step:计算 log p ( x , z ∣ θ ) \log p(x,z|\theta) logp(x,z∣θ) 在概率分布 p ( z ∣ x , θ t ) p(z|x,\theta^t) p(z∣x,θt) 下的期望
- M step:计算使这个期望最大化的参数得到下一个 EM 步骤的输入
求证: log p ( x ∣ θ t ) ≤ log p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(x∣θt)≤logp(x∣θt+1)
证明: log p ( x ∣ θ ) = log p ( z , x ∣ θ ) − log p ( z ∣ x , θ ) \log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta) logp(x∣θ)=logp(z,x∣θ)−logp(z∣x,θ),对左右两边求积分:
L e f t : ∫ z p ( z ∣ x , θ t ) log p ( x ∣ θ ) d z = log p ( x ∣ θ ) Left:\int_zp(z|x,\theta^t)\log p(x|\theta)dz=\log p(x|\theta) Left:∫zp(z∣x,θt)logp(x∣θ)dz=logp(x∣θ)R i g h t : ∫ z p ( z ∣ x , θ t ) log p ( x , z ∣ θ ) d z − ∫ z p ( z ∣ x , θ t ) log p ( z ∣ x , θ ) d z = Q ( θ , θ t ) − H ( θ , θ t ) Right:\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta)dz=Q(\theta,\theta^t)-H(\theta,\theta^t) Right:∫zp(z∣x,θt)logp(x,z∣θ)dz−∫zp(z∣x,θt)logp(z∣x,θ)dz=Q(θ,θt)−H(θ,θt)
所以:
log p ( x ∣ θ ) = Q ( θ , θ t ) − H ( θ , θ t ) \log p(x|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t) logp(x∣θ)=Q(θ,θt)−H(θ,θt)
由于 Q ( θ , θ t ) = ∫ z p ( z ∣ x , θ t ) log p ( x , z ∣ θ ) d z Q(\theta,\theta^t)=\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz Q(θ,θt)=∫zp(z∣x,θt)logp(x,z∣θ)dz,而 θ t + 1 = a r g m a x θ ∫ z log [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz θt+1=θargmax∫zlog[p(x,z∣θ)]p(z∣x,θt)dz,所以 Q ( θ t + 1 , θ t ) ≥ Q ( θ t , θ t ) Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t) Q(θt+1,θt)≥Q(θt,θt)。要证 log p ( x ∣ θ t ) ≤ log p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(x∣θt)≤logp(x∣θt+1),需证: H ( θ t , θ t ) ≥ H ( θ t + 1 , θ t ) H(\theta^t,\theta^t)\ge H(\theta^{t+1},\theta^t) H(θt,θt)≥H(θt+1,θt):
H ( θ t + 1 , θ t ) − H ( θ t , θ t ) = ∫ z p ( z ∣ x , θ t ) log p ( z ∣ x , θ t + 1 ) d z − ∫ z p ( z ∣ x , θ t ) log p ( z ∣ x , θ t ) d z = ∫ z p ( z ∣ x , θ t ) log p ( z ∣ x , θ t + 1 ) p ( z ∣ x , θ t ) = − K L ( p ( z ∣ x , θ t ) , p ( z ∣ x , θ t + 1 ) ) ≤ 0 \begin{array}{rl} H(\theta^{t+1},\theta^t)-H(\theta^{t},\theta^t)&=\int_zp(z|x,\theta^{t})\log p(z|x,\theta^{t+1})dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta^{t})dz\\ &=\int_zp(z|x,\theta^t)\log\frac{p(z|x,\theta^{t+1})}{p(z|x,\theta^t)}=-KL(p(z|x,\theta^t),p(z|x,\theta^{t+1}))\le0 \end{array} H(θt+1,θt)−H(θt,θt)=∫zp(z∣x,θt)logp(z∣x,θt+1)dz−∫zp(z∣x,θt)logp(z∣x,θt)dz=∫zp(z∣x,θt)logp(z∣x,θt)p(z∣x,θt+1)=−KL(p(z∣x,θt),p(z∣x,θt+1))≤0
综合上面的结果:
log p ( x ∣ θ t ) ≤ log p ( x ∣ θ t + 1 ) \log p(x|\theta^t)\le\log p(x|\theta^{t+1}) logp(x∣θt)≤logp(x∣θt+1)
根据上面的证明,我们看到,似然函数在每一步都会增大。进一步的,我们看 EM 迭代过程中的式子是怎么来的:
log
p
(
x
∣
θ
)
=
log
p
(
z
,
x
∣
θ
)
−
log
p
(
z
∣
x
,
θ
)
=
log
p
(
z
,
x
∣
θ
)
q
(
z
)
−
log
p
(
z
∣
x
,
θ
)
q
(
z
)
\log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)=\log \frac{p(z,x|\theta)}{q(z)}-\log \frac{p(z|x,\theta)}{q(z)}
logp(x∣θ)=logp(z,x∣θ)−logp(z∣x,θ)=logq(z)p(z,x∣θ)−logq(z)p(z∣x,θ)
分别对两边求期望
E
q
(
z
)
\mathbb{E}_{q(z)}
Eq(z):
L
e
f
t
:
∫
z
q
(
z
)
log
p
(
x
∣
θ
)
d
z
=
log
p
(
x
∣
θ
)
R
i
g
h
t
:
∫
z
q
(
z
)
log
p
(
z
,
x
∣
θ
)
q
(
z
)
d
z
−
∫
z
q
(
z
)
log
p
(
z
∣
x
,
θ
)
q
(
z
)
d
z
=
E
L
B
O
+
K
L
(
q
(
z
)
,
p
(
z
∣
x
,
θ
)
)
\begin{array}{rl} &Left:\int_zq(z)\log p(x|\theta)dz=\log p(x|\theta)\\ &Right:\int_zq(z)\log \frac{p(z,x|\theta)}{q(z)}dz-\int_zq(z)\log \frac{p(z|x,\theta)}{q(z)}dz=ELBO+KL(q(z),p(z|x,\theta)) \end{array}
Left:∫zq(z)logp(x∣θ)dz=logp(x∣θ)Right:∫zq(z)logq(z)p(z,x∣θ)dz−∫zq(z)logq(z)p(z∣x,θ)dz=ELBO+KL(q(z),p(z∣x,θ))
上式中,Evidence Lower Bound(ELBO),是一个下界,所以
log
p
(
x
∣
θ
)
≥
E
L
B
O
\log p(x|\theta)\ge ELBO
logp(x∣θ)≥ELBO,等于号取在 KL 散度为0是,即:
q
(
z
)
=
p
(
z
∣
x
,
θ
)
q(z)=p(z|x,\theta)
q(z)=p(z∣x,θ),EM 算法的目的是将 ELBO 最大化,根据上面的证明过程,在每一步 EM 后,求得了最大的ELBO,并根据这个使 ELBO 最大的参数代入下一步中:
θ
^
=
a
r
g
m
a
x
θ
E
L
B
O
=
a
r
g
m
a
x
θ
∫
z
q
(
z
)
log
p
(
x
,
z
∣
θ
)
q
(
z
)
d
z
\hat{\theta}=\mathop{argmax}_{\theta}ELBO=\mathop{argmax}_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz
θ^=argmaxθELBO=argmaxθ∫zq(z)logq(z)p(x,z∣θ)dz
由于 $ q(z)=p(z|x,\theta^t)$ 的时候,这一步的最大值才能取等号,所以:
θ
^
=
a
r
g
m
a
x
θ
E
L
B
O
=
a
r
g
m
a
x
θ
∫
z
q
(
z
)
log
p
(
x
,
z
∣
θ
)
q
(
z
)
d
z
=
a
r
g
m
a
x
θ
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
,
z
∣
θ
)
p
(
z
∣
x
,
θ
t
)
d
z
=
a
r
g
m
a
x
θ
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
,
z
∣
θ
)
\hat{\theta}=\mathop{argmax}_{\theta}ELBO=\mathop{argmax}_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathop{argmax}_\theta\int_zp(z|x,\theta^t)\log\frac{p(x,z|\theta)}{p(z|x,\theta^t)}d z\\ =\mathop{argmax}_\theta\int_z p(z|x,\theta^t)\log p(x,z|\theta)
θ^=argmaxθELBO=argmaxθ∫zq(z)logq(z)p(x,z∣θ)dz=argmaxθ∫zp(z∣x,θt)logp(z∣x,θt)p(x,z∣θ)dz=argmaxθ∫zp(z∣x,θt)logp(x,z∣θ)
这个式子就是上面 EM 迭代过程中的式子。
从 Jensen 不等式出发,也可以导出这个式子:
log
p
(
x
∣
θ
)
=
log
∫
z
p
(
x
,
z
∣
θ
)
d
z
=
log
∫
z
p
(
x
,
z
∣
θ
)
q
(
z
)
q
(
z
)
d
z
=
log
E
q
(
z
)
[
p
(
x
,
z
∣
θ
)
q
(
z
)
]
≥
E
q
(
z
)
[
log
p
(
x
,
z
∣
θ
)
q
(
z
)
]
\log p(x|\theta)=\log\int_zp(x,z|\theta)dz=\log\int_z\frac{p(x,z|\theta)q(z)}{q(z)}dz\\ =\log \mathbb{E}_{q(z)}[\frac{p(x,z|\theta)}{q(z)}]\ge \mathbb{E}_{q(z)}[\log\frac{p(x,z|\theta)}{q(z)}]
logp(x∣θ)=log∫zp(x,z∣θ)dz=log∫zq(z)p(x,z∣θ)q(z)dz=logEq(z)[q(z)p(x,z∣θ)]≥Eq(z)[logq(z)p(x,z∣θ)]
其中,右边的式子就是 ELBO,等号在 $ p(x,z|\theta)=Cq(z)$ 时成立。于是:
∫
z
q
(
z
)
d
z
=
1
C
∫
z
p
(
x
,
z
∣
θ
)
d
z
=
1
C
p
(
x
∣
θ
)
=
1
⇒
q
(
z
)
=
1
p
(
x
∣
θ
)
p
(
x
,
z
∣
θ
)
=
p
(
z
∣
x
,
θ
)
\int_zq(z)dz=\frac{1}{C}\int_zp(x,z|\theta)dz=\frac{1}{C}p(x|\theta)=1\\ \Rightarrow q(z)=\frac{1}{p(x|\theta)}p(x,z|\theta)=p(z|x,\theta)
∫zq(z)dz=C1∫zp(x,z∣θ)dz=C1p(x∣θ)=1⇒q(z)=p(x∣θ)1p(x,z∣θ)=p(z∣x,θ)
我们发现,这个过程就是上面的最大值取等号的条件。
广义 EM
EM 模型解决了概率生成模型的参数估计的问题,通过引入隐变量
z
z
z,来学习
θ
\theta
θ,具体的模型对
z
z
z 有不同的假设。对学习任务
p
(
x
∣
θ
)
p(x|\theta)
p(x∣θ),就是学习任务
p
(
x
,
z
∣
θ
)
p
(
z
∣
x
,
θ
)
\frac{p(x,z|\theta)}{p(z|x,\theta)}
p(z∣x,θ)p(x,z∣θ)。在这个式子中,我们假定了在 E 步骤中,
q
(
z
)
=
p
(
z
∣
x
,
θ
)
q(z)=p(z|x,\theta)
q(z)=p(z∣x,θ),但是这个
p
(
z
∣
x
,
θ
)
p(z|x,\theta)
p(z∣x,θ) 如果无法求解,那么必须使用采样(MCMC)或者变分推断等方法来近似推断这个后验。我们观察 KL 散度的表达式,为了最大化 ELBO,在固定的
θ
\theta
θ 时,我们需要最小化 KL 散度,于是:
q
^
(
z
)
=
a
r
g
m
i
n
q
K
L
(
p
,
q
)
=
a
r
g
m
a
x
q
E
L
B
O
\hat{q}(z)=\mathop{argmin}_qKL(p,q)=\mathop{argmax}_qELBO
q^(z)=argminqKL(p,q)=argmaxqELBO
这就是广义 EM 的基本思路:
-
E step:
q ^ t + 1 ( z ) = a r g m a x q ∫ z q t ( z ) log p ( x , z ∣ θ ) q t ( z ) d z , f i x e d θ \hat{q}^{t+1}(z)=\mathop{argmax}_q\int_zq^t(z)\log\frac{p(x,z|\theta)}{q^t(z)}dz,fixed\ \theta q^t+1(z)=argmaxq∫zqt(z)logqt(z)p(x,z∣θ)dz,fixed θ -
M step:
θ ^ = a r g m a x θ ∫ z q t + 1 ( z ) log p ( x , z ∣ θ ) q t + 1 ( z ) d z , f i x e d q ^ \hat{\theta}=\mathop{argmax}_\theta \int_zq^{t+1}(z)\log\frac{p(x,z|\theta)}{q^{t+1}(z)}dz,fixed\ \hat{q} θ^=argmaxθ∫zqt+1(z)logqt+1(z)p(x,z∣θ)dz,fixed q^
对于上面的积分:
E
L
B
O
=
∫
z
q
(
z
)
log
p
(
x
,
z
∣
θ
)
q
(
z
)
d
z
=
E
q
(
z
)
[
p
(
x
,
z
∣
θ
)
]
+
E
n
t
r
o
p
y
(
q
(
z
)
)
ELBO=\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathbb{E}_{q(z)}[p(x,z|\theta)]+Entropy(q(z))
ELBO=∫zq(z)logq(z)p(x,z∣θ)dz=Eq(z)[p(x,z∣θ)]+Entropy(q(z))
因此,我们看到,广义 EM 相当于在原来的式子中加入熵这一项。
EM 的推广
EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再一遍一遍的迭代。如果在 EM 框架中,无法求解 z z z 后验概率,那么需要采用一些变种的 EM 来估算这个后验。
- 基于平均场的变分推断,VBEM/VEM
- 基于蒙特卡洛的EM,MCEM