EM算法简介
1 使用场景
EM算法(expectation maximization algorithm)用于含有隐变量概率模型参数的极大似然估计。在不含有隐变量(未观测变量)的概率模型参数估计,最常用的就是极大似然估计。在含有未观测变量时,一般使用EM算法。
2 目标
EM算法还是要极大化观测数据(不完全数据)的对数似然函数。假设有m个观测样本 ( y 1 , z 1 ) , ( y 2 , z 2 ) , . . . , ( y m , z m ) (y_1,z_1),(y_2,z_2),...,(y_m,z_m) (y1,z1),(y2,z2),...,(ym,zm)Y是观测变量,Z是隐变量。则观测数据的对数似然为:
L
L
(
θ
)
=
∑
i
=
1
m
l
o
g
(
p
(
y
i
∣
θ
)
)
=
∑
i
=
1
m
l
o
g
∑
Z
p
(
y
i
,
z
∣
θ
)
LL(\theta)=\sum_{i=1}^mlog(p(y_i|\theta))=\sum_{i=1}^mlog\sum_Zp(y_i,z|\theta)
LL(θ)=i=1∑mlog(p(yi∣θ))=i=1∑mlogZ∑p(yi,z∣θ)
上式后面的变换用到联合概率分布的边缘分布。我们的目标也就是求解使得
L
L
(
θ
)
LL(\theta)
LL(θ)最大
θ
\theta
θ的值:
θ
~
=
a
r
g
m
a
x
θ
L
L
(
θ
)
\tilde{\theta}=\mathop{argmax}\limits_\theta LL(\theta)
θ~=θargmaxLL(θ)
3 迭代求解
3.1 算法导出
如果已知 θ \theta θ,那么可以直接估计 z z z的分布。或者
如果已知 z z z,那么问题就退化成不包含隐变量的概率模型参数估计,可以直接使用极大似然估计。
但是由于 θ \theta θ和 z z z都不知道。那么能否用一种迭代的思想去求解,先给出 θ \theta θ的值,然后计算z的分布,在根据z的分布,去得到 θ t + 1 \theta^{t+1} θt+1。并且在迭代的过程中要不断确保 L L ( θ ) LL(\theta) LL(θ)不断增大。
1.4算法导出
L
L
(
θ
)
=
∑
i
=
1
m
l
o
g
(
p
(
y
i
∣
θ
)
)
=
∑
i
=
1
m
l
o
g
∑
Z
p
(
y
i
,
z
∣
θ
)
LL(\theta)=\sum_{i=1}^mlog(p(y_i|\theta))=\sum_{i=1}^mlog\sum_Zp(y_i,z|\theta)
LL(θ)=i=1∑mlog(p(yi∣θ))=i=1∑mlogZ∑p(yi,z∣θ)
= ∑ i = 1 m l o g ∑ Z Q i ( z ) p ( y i , z ∣ θ ) Q i ( z ) =\sum_{i=1}^mlog\sum_ZQ_i(z)\frac{p(y_i,z|\theta)}{Q_i(z)}\\ =i=1∑mlogZ∑Qi(z)Qi(z)p(yi,z∣θ)
其中
Q
i
(
z
)
>
0
,
∑
Q
i
(
z
)
=
1
Q_i(z)>0,\sum Q_i(z)=1
Qi(z)>0,∑Qi(z)=1。由jensen不等式可得到
L
L
(
θ
)
LL(\theta)
LL(θ)的下界函数。
≥
∑
i
=
1
m
∑
z
Q
i
(
z
)
l
o
g
p
(
y
i
,
z
∣
θ
)
Q
i
(
z
)
\ge\sum_{i=1}^m\sum_zQ_i(z)log\frac{p(y_i,z|\theta)}{Q_i(z)}
≥i=1∑mz∑Qi(z)logQi(z)p(yi,z∣θ)
jensen不等式等号成立的条件是
E
(
x
)
=
1
E(x)=1
E(x)=1。即
p
(
y
i
,
z
∣
θ
)
Q
i
(
z
)
=
c
\frac{p(y_i,z|\theta)}{Q_i(z)}=c
Qi(z)p(yi,z∣θ)=c。并且由于
∑
Q
i
(
z
)
=
1
\sum Q_i(z)=1
∑Qi(z)=1可推出
p
(
y
i
,
z
∣
θ
)
Q
i
(
z
)
=
c
p
(
y
i
,
z
∣
θ
)
=
Q
i
(
z
)
c
∑
z
p
(
y
i
,
z
∣
θ
)
=
∑
z
Q
i
(
z
)
c
=
c
Q
i
(
z
)
=
p
(
y
i
,
z
∣
θ
)
∑
z
p
(
y
i
,
z
∣
θ
)
=
p
(
y
i
,
z
∣
θ
)
p
(
y
i
∣
θ
)
=
p
(
z
∣
y
i
,
θ
)
\frac{p(y_i,z|\theta)}{Q_i(z)}=c\\p(y_i,z|\theta)=Q_i(z)c\\\sum_zp(y_i,z|\theta)=\sum_zQ_i(z)c=c\\ Q_i(z)=\frac{p(y_i,z|\theta)}{\sum_zp(y_i,z|\theta)}=\frac{p(y_i,z|\theta)}{p(y_i|\theta)}=p(z|y_i,\theta)
Qi(z)p(yi,z∣θ)=cp(yi,z∣θ)=Qi(z)cz∑p(yi,z∣θ)=z∑Qi(z)c=cQi(z)=∑zp(yi,z∣θ)p(yi,z∣θ)=p(yi∣θ)p(yi,z∣θ)=p(z∣yi,θ)
即
Q
i
(
z
)
Q_i(z)
Qi(z)就是给定
θ
\theta
θ和y时,z的条件概率分布。如果令
B
(
θ
∣
θ
t
)
=
∑
i
=
1
m
∑
Z
p
(
z
∣
y
i
,
θ
t
)
l
o
g
p
(
y
i
,
z
∣
θ
)
p
(
z
∣
y
i
,
θ
t
)
B(\theta|\theta^t)=\sum_{i=1}^m\sum_Zp(z|y_i,\theta^t)log\frac{p(y_i,z|\theta)}{p(z|y_i,\theta^t)}
B(θ∣θt)=i=1∑mZ∑p(z∣yi,θt)logp(z∣yi,θt)p(yi,z∣θ)
则有以下关系:
L
L
(
θ
∣
θ
t
)
≥
∑
i
=
1
m
∑
Z
p
(
z
∣
y
i
,
θ
t
)
l
o
g
p
(
y
i
,
z
∣
θ
)
p
(
z
∣
y
i
,
θ
t
)
=
B
(
θ
∣
θ
t
)
LL(\theta|\theta^t)\ge\sum_{i=1}^m\sum_Zp(z|y_i,\theta^t)log\frac{p(y_i,z|\theta)}{p(z|y_i,\theta^t)}=B(\theta|\theta^t)
LL(θ∣θt)≥i=1∑mZ∑p(z∣yi,θt)logp(z∣yi,θt)p(yi,z∣θ)=B(θ∣θt)
B
(
θ
∣
θ
t
)
B(\theta|\theta^t)
B(θ∣θt)是
L
L
(
θ
∣
θ
t
)
LL(\theta|\theta^t)
LL(θ∣θt)的下界函数。并且在
θ
=
θ
t
\theta=\theta^t
θ=θt时等号成立。
在迭代中不断极大化下界函数
B
(
θ
∣
θ
t
)
B(\theta|\theta^t)
B(θ∣θt)达到使对数似然
L
L
(
θ
∣
θ
t
)
LL(\theta|\theta^t)
LL(θ∣θt)不断增大的目的。当
θ
t
\theta^t
θt给定时,
p
(
y
i
,
z
∣
θ
t
)
p(y_i,z|\theta^t)
p(yi,z∣θt)是常数,可忽略。令
Q
(
θ
∣
θ
t
)
Q(\theta|\theta^t)
Q(θ∣θt):
Q
(
θ
∣
θ
t
)
=
∑
i
=
1
m
∑
Z
p
(
z
∣
y
i
,
θ
t
)
l
o
g
p
(
y
i
,
z
∣
θ
)
Q(\theta|\theta^t)=\sum_{i=1}^m\sum_Zp(z|y_i,\theta^t)logp(y_i,z|\theta)
Q(θ∣θt)=i=1∑mZ∑p(z∣yi,θt)logp(yi,z∣θ)
所以只需在每轮迭代极大化Q函数即可。
3.2 EM算法过程
- 给定初始值 θ 0 \theta^0 θ0
- E步:根据当前参数值 θ t \theta^t θt,计算在给定观测数据Y和当前估计参数 θ t \theta^t θt下,隐变量z的条件概率分布 p ( z ∣ Y , θ t ) p(z|Y,\theta^t) p(z∣Y,θt),并计算完全数据在给定观测数据Y和当前估计参数 θ t \theta^t θt下,对隐变量z条件概率分布的期望 Q ( θ ∣ θ t ) Q(\theta|\theta^t) Q(θ∣θt)。
- M步:极大化 Q ( θ ∣ θ t ) Q(\theta|\theta^t) Q(θ∣θt)得到t+1次迭代的参数估计值 θ t + 1 \theta^{t+1} θt+1
- 重复2,3步,直到收敛。
4 收敛性证明
4.1 单调性证明
L L ( θ ∣ θ t ) LL(\theta|\theta^t) LL(θ∣θt)在每次迭代的值时单调递增的
证明:
设有f(x),g(x),其中g(x)是f(x)的下界函数。即 f ( x ) ≥ g ( x ) f(x)\ge g(x) f(x)≥g(x)。如果有 f ( x 1 ) = g ( x 1 ) , g ( x 2 ) > g ( x 1 ) f(x_1)=g(x_1),g(x_2)>g(x_1) f(x1)=g(x1),g(x2)>g(x1),那么 f ( x 2 ) > f ( x 1 ) f(x_2)>f(x_1) f(x2)>f(x1)。
证:
f
(
x
2
)
≥
g
(
x
2
)
≥
g
(
x
1
)
=
f
(
x
1
)
f(x_2)\ge g(x_2)\ge g(x_1)=f(x_1)
f(x2)≥g(x2)≥g(x1)=f(x1)
在EM算法的每轮迭代中。
B
(
θ
∣
θ
t
)
B(\theta|\theta^t)
B(θ∣θt)是
L
L
(
θ
∣
θ
t
)
LL(\theta|\theta^t)
LL(θ∣θt)的下界函数,并且有
B
(
θ
t
∣
θ
t
)
=
L
L
(
θ
t
∣
θ
t
)
,
B
(
θ
t
+
1
∣
θ
t
)
≥
B
(
θ
t
∣
θ
t
)
B(\theta^t|\theta^t)=LL(\theta^t|\theta^t),B(\theta^{t+1}|\theta^t)\ge B(\theta^t|\theta^t)
B(θt∣θt)=LL(θt∣θt),B(θt+1∣θt)≥B(θt∣θt)。所以有
L
L
(
θ
t
+
1
∣
θ
t
)
≥
L
L
(
θ
t
∣
θ
t
)
LL(\theta^{t+1}|\theta^t)\ge LL(\theta^t|\theta^t)
LL(θt+1∣θt)≥LL(θt∣θt),即在每一轮迭代中
L
L
(
θ
∣
θ
t
)
LL(\theta|\theta^t)
LL(θ∣θt)是单调递增的。
4.2 收敛性
(1)如果 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ)有上界,则收敛。
(2)