EM算法及其推广
EM是一种迭代算法,用于 含有隐含量的 概率模型的 极大似然估计,或 极大后验概率估计。EM算法的每次迭代由两步组成: E步求期望;M步求极大。所以这一算法称为期望极大算法,简称EM算法。
EM算法的引入
概率模型有时既含有观测变量,又含有隐变量或潜在变量。当模型含有隐变量时,就不能简单地使用这些估计方法。EM 算法就是含有隐变量的概率模型参数的估计似然估计法。
将观测数据表示为
Y
=
{
Y
1
,
Y
2
,
.
.
.
,
Y
n
}
Y=\lbrace Y_1,Y_2,...,Y_n \rbrace
Y={Y1,Y2,...,Yn},未观测数据表示为
Z
=
(
Z
1
,
Z
2
,
.
.
.
,
Z
n
)
T
Z=(Z_1,Z_2,...,Z_n)^T
Z=(Z1,Z2,...,Zn)T,则观测数据的似然函数为
P
(
Y
∣
θ
)
=
∑
Z
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
)
P(Y|\theta)=\sum_ZP(Z|\theta)P(Y|Z,\theta)
P(Y∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)考虑求模型参数
θ
=
(
π
,
p
,
q
)
\theta=(\pi,p,q)
θ=(π,p,q)的极大似然估计,即
θ
^
=
arg max
θ
l
o
g
P
(
Y
∣
θ
)
\hat{\theta}=\argmax_{\theta}logP(Y|\theta)
θ^=θargmaxlogP(Y∣θ)这个问题没有解析解,只能通过迭代的方法求解。EM算法就是可以用于求解这个问题的一种迭代算法。
算法如下:
输入:观测变量数据
Y
Y
Y,隐变量数据
Z
Z
Z,联合分布
P
(
Y
,
Z
∣
θ
)
P(Y,Z|\theta)
P(Y,Z∣θ),条件分布
P
(
Z
∣
Y
,
θ
)
P(Z|Y,\theta)
P(Z∣Y,θ)
输出:模型参数
θ
\theta
θ
- 选择参数初值 θ ( 0 ) \theta(0) θ(0),开始迭代
- E步:记 θ ( i ) \theta(i) θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i+1 i+1次迭代的E步,计算 Q ( θ , θ ( i ) ) = E Z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) Q(\theta,\theta^{(i)})=E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}]=\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))这里, P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(Z∣Y,θ(i))是在给定观测数据 Y Y Y和当前的参数估计 θ ( i ) \theta^{(i)} θ(i)下隐变量数据 Z Z Z的条件概率分布
- M步:求使 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))极大化的 θ \theta θ,确定第 i + 1 i+1 i+1次迭代的参数的估计值 θ ( i + 1 ) \theta^{(i+1)} θ(i+1) θ ( i + 1 ) = arg max θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=\argmax_{\theta}Q(\theta,\theta^{(i)}) θ(i+1)=θargmaxQ(θ,θ(i))
- 重复第2步和第3步,直到收敛。