推导EM算法,并证明收敛性。
Jensen’s inequality
定理:若 f f f是凸函数, X X X是随机变量,我们有: E [ f ( X ) ] ≥ f ( E X ) \mathrm{E}[f(X)] \geq f(\mathrm{E} X) E[f(X)]≥f(EX)
- 若 f f f是严格凸函数,也就是 f ′ ′ > 0 f^{''} > 0 f′′>0恒成立,同时 X = E [ X ] X=E[X] X=E[X](也就是概率为1),则等号成立。
- 若 f f f是凹函数,则该定理也成立,只不过将大于等于换成小于等于。
忽略证明,该定理并不直观,可以用一个简单的例子帮助记忆:
收敛性证明
我们想用模型拟合数据,也就是求似然函数:
ℓ
(
θ
)
=
∑
i
=
1
m
log
p
(
x
;
θ
)
=
∑
i
=
1
m
log
∑
z
p
(
x
,
z
;
θ
)
\begin{aligned} \ell(\theta) &=\sum_{i=1}^{m} \log p(x ; \theta) \\ &=\sum_{i=1}^{m} \log \sum_{z} p(x, z ; \theta) \end{aligned}
ℓ(θ)=i=1∑mlogp(x;θ)=i=1∑mlogz∑p(x,z;θ)
其中,
z
z
z是隐变量。如果
z
z
z已知,那么直接用MLE求解即可,如果未知,则需要用EM算法迭代求解。
EM算法分为两步:
- E step:每次得到似然函数 ℓ \ell ℓ的一个下界。
- M step:对该下界进行优化。
我们首先可以假设 Q Q Q是 z z z的分布,也就是满足: ∑ z Q i ( z ) = 1 , Q i ( z ) ≥ 1 \sum_{z} Q_{i}(z)=1, Q_{i}(z) \geq 1 ∑zQi(z)=1,Qi(z)≥1
因此可以得到:
∑
i
log
p
(
x
(
i
)
;
θ
)
=
∑
i
log
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
=
∑
i
log
∑
z
(
i
)
Q
i
(
z
(
i
)
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\begin{aligned} \sum_{i} \log p\left(x^{(i)} ; \theta\right) &=\sum_{i} \log \sum_{z^{(i)}} p\left(x^{(i)}, z^{(i)} ; \theta\right) \\ &=\sum_{i} \log \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \end{aligned}
i∑logp(x(i);θ)=i∑logz(i)∑p(x(i),z(i);θ)=i∑logz(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)≥i∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
这里用到了期望就是概率
的思想。我们将
Q
Q
Q函数看成是在随机变量
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}
Qi(z(i))p(x(i),z(i);θ)上的概率分布,将函数
f
f
f看成是log function
。因此,第二个等式可以看作是
f
(
E
X
)
f(EX)
f(EX)。而由于
f
f
f函数是凹函数,因此根据Jensen’s inequality,可以得到不等式三。
这样,对于任意的分布 Q Q Q,我们给出了似然函数的下界。因此,我们如何选择一个合适的 Q Q Q呢?
我们如果对当前的
θ
\theta
θ有一个估计值,那么很自然的思想就是用这个估计值来得到不等式的下界。根据之前Jensen’s inequality不等式的分析,如果我们的随机变量是一个常量,那么等式一定成立,即:
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
=
c
\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}=c
Qi(z(i))p(x(i),z(i);θ)=c
因此,我们只需要
Q
i
(
z
(
i
)
)
∝
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q_{i}\left(z^{(i)}\right) \propto p\left(x^{(i)}, z^{(i)} ; \theta\right)
Qi(z(i))∝p(x(i),z(i);θ)即可。同时,由于
∑
z
Q
i
(
z
(
i
)
)
=
1
\sum_{z} Q_{i}\left(z^{(i)}\right)=1
∑zQi(z(i))=1的条件需要满足,因此构造一个
Q
Q
Q函数为:
Q
i
(
z
(
i
)
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
∑
z
p
(
x
(
i
)
,
z
;
θ
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
p
(
x
(
i
)
;
θ
)
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
\begin{aligned} Q_{i}\left(z^{(i)}\right) &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{\sum_{z} p\left(x^{(i)}, z ; \theta\right)} \\ &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{p\left(x^{(i)} ; \theta\right)} \\ &=p\left(z^{(i)} | x^{(i)} ; \theta\right) \end{aligned}
Qi(z(i))=∑zp(x(i),z;θ)p(x(i),z(i);θ)=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)∣x(i);θ)
实际上,这个
Q
Q
Q函数就是我们熟悉的在给定
θ
\theta
θ下的后验分布。
如何证明收敛性呢?也就是需要证明 ℓ ( θ ( t ) ) ≤ ℓ ( θ ( t + 1 ) ) \ell\left(\theta^{(t)}\right) \leq \ell\left(\theta^{(t+1)}\right) ℓ(θ(t))≤ℓ(θ(t+1))始终成立。
由于我们选择的
Q
Q
Q函数能使得等式成立,因此在第
t
t
t次迭代时,有:
ℓ
(
θ
(
t
)
)
=
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
\ell\left(\theta^{(t)}\right)=\sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)}
ℓ(θ(t))=i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))
在第
t
+
1
t+1
t+1次时,我们的
θ
(
t
+
1
)
\theta^{(t+1)}
θ(t+1)是最大化右边的式子的来的,因此:
ℓ
(
θ
(
t
+
1
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
+
1
)
)
Q
i
(
t
)
(
z
(
i
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
=
ℓ
(
θ
(
t
)
)
\begin{aligned} \ell\left(\theta^{(t+1)}\right) & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t+1)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)} \\ &=\ell\left(\theta^{(t)}\right) \end{aligned}
ℓ(θ(t+1))≥i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))≥i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))=ℓ(θ(t))
其中,第一个不等式是根据Jensen’s inequality,第二个不等式是根据最大化
θ
\theta
θ的性质来的。
如果我们定义:
J
(
Q
,
θ
)
=
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
J(Q, \theta)=\sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}
J(Q,θ)=i∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
那么,EM算法也可以看作是在
J
J
J上进行coordinate ascent
:
- E step 时,固定
θ
\theta
θ,根据
Q
Q
Q最大化
J
J
J
- 实际上是通过Jensen’s inequality的性质,定义 Q Q Q函数为后验概率满足等式)
- M step 时,固定
Q
Q
Q,根据
θ
\theta
θ最大化
J
J
J
- 实际上是通过MLE进行最大化
GMM revisited
GMM的思想不再阐述,这里主要进行推导closed form。
E step
E step相对容易一些,我们对于当前步估计的所有参数值,计算
z
z
z的后验分布:
w
j
(
i
)
=
Q
i
(
z
(
i
)
=
j
)
=
P
(
z
(
i
)
=
j
∣
x
(
i
)
;
ϕ
,
μ
,
Σ
)
w_{j}^{(i)}=Q_{i}\left(z^{(i)}=j\right)=P\left(z^{(i)}=j | x^{(i)} ; \phi, \mu, \Sigma\right)
wj(i)=Qi(z(i)=j)=P(z(i)=j∣x(i);ϕ,μ,Σ)
M step
根据上一步得到的
z
z
z的分布,我们最大化
ℓ
\ell
ℓ的下界:
∑
i
=
1
m
∑
z
(
i
)
Q
i
(
z
(
i
)
)
log
p
(
x
(
i
)
,
z
(
i
)
;
ϕ
,
μ
,
Σ
)
Q
i
(
z
(
i
)
)
=
∑
i
=
1
m
∑
j
=
1
k
Q
i
(
z
(
i
)
=
j
)
log
p
(
x
(
i
)
∣
z
(
i
)
=
j
;
μ
,
Σ
)
p
(
z
(
i
)
=
j
;
ϕ
)
Q
i
(
z
(
i
)
=
j
)
=
∑
i
=
1
m
∑
j
=
1
k
w
j
(
i
)
log
1
(
2
π
)
n
/
2
∣
Σ
j
∣
1
/
2
exp
(
−
1
2
(
x
(
i
)
−
μ
j
)
T
Σ
j
−
1
(
x
(
i
)
−
μ
j
)
)
⋅
ϕ
j
w
j
(
i
)
\begin{aligned} \sum_{i=1}^{m} & \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \phi, \mu, \Sigma\right)}{Q_{i}\left(z^{(i)}\right)} \\ &=\sum_{i=1}^{m} \sum_{j=1}^{k} Q_{i}\left(z^{(i)}=j\right) \log \frac{p\left(x^{(i)} | z^{(i)}=j ; \mu, \Sigma\right) p\left(z^{(i)}=j ; \phi\right)}{Q_{i}\left(z^{(i)}=j\right)} \\ &=\sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \log \frac{\frac{1}{(2 \pi)^{n / 2}\left|\Sigma_{j}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right)\right) \cdot \phi_{j}}{w_{j}^{(i)}}\end{aligned}
i=1∑mz(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);ϕ,μ,Σ)=i=1∑mj=1∑kQi(z(i)=j)logQi(z(i)=j)p(x(i)∣z(i)=j;μ,Σ)p(z(i)=j;ϕ)=i=1∑mj=1∑kwj(i)logwj(i)(2π)n/2∣Σj∣1/21exp(−21(x(i)−μj)TΣj−1(x(i)−μj))⋅ϕj
我们只需要分别对三个参数进行求导,即可得到:
μ
l
:
=
∑
i
=
1
m
w
l
(
i
)
x
(
i
)
∑
i
=
1
m
w
l
(
i
)
ϕ
j
:
=
1
m
∑
i
=
1
m
w
j
(
i
)
Σ
j
:
=
∑
i
=
1
m
w
j
(
i
)
(
x
(
i
)
−
μ
j
)
(
x
(
i
)
−
μ
j
)
T
∑
i
=
1
m
w
j
(
i
)
\mu_{l} :=\frac{\sum_{i=1}^{m} w_{l}^{(i)} x^{(i)}}{\sum_{i=1}^{m} w_{l}^{(i)}}\\ \phi_{j} :=\frac{1}{m} \sum_{i=1}^{m} w_{j}^{(i)}\\ \Sigma_{j} :=\frac{\sum_{i=1}^{m} w_{j}^{(i)}\left(x^{(i)}-\mu_{j}\right)\left(x^{(i)}-\mu_{j}\right)^{T}}{\sum_{i=1}^{m} w_{j}^{(i)}}
μl:=∑i=1mwl(i)∑i=1mwl(i)x(i)ϕj:=m1i=1∑mwj(i)Σj:=∑i=1mwj(i)∑i=1mwj(i)(x(i)−μj)(x(i)−μj)T
这也就是我们上一个博客给出的EM算法的迭代过程。