算法:
输入:观测变量数据 Y,隐变量数据
输出:模型参数 θ .
(1) 选择参数的初值 θ(0),开始迭代;
(2) E 步:记 θ(i) 为第 i 次迭代参数
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))
这里,P(Z|Y,θ(i)) 是在给定观测数据 Y 和当前的参数估计 θ(i+1)=argmaxθQ(θ,θ(i))
(4) 重复第 (2) 步和第 (3) 步,直到收敛。
几点说明:
- 参数初值可以任意选择,但 EM 算法对初值敏感
- EM 算法不能保证找到全局最优值
- 常用的办法是选择几个不同的初值进行迭代,然后对得到的各个值比较,选择最好的。