EM算法是一种迭代算法,1977年有Dempster等人总结提出,用于含有**隐变量(hidden variable)**的概率模型参数的极大似然估计,或极大后验似然估计。EM算法的每次迭代由两步组成:E步,求期望(Expectation);M步,求极大(Maximization)。所以这一算法被称为期望极大算法(Expectation Maximization algorithm),简称EM算法。
在高斯混合模型中,求极大似然中log中存在加法难以计算,因此加入了隐变量,使用EM算法简化了计算。
EM算法
输入:观测变量数据X,隐变量数据Z,联合分布 P ( X , Z ∣ θ ) P(X,Z|\theta) P(X,Z∣θ),条件分布 P ( Z ∣ X , θ ) P(Z|X,\theta) P(Z∣X,θ)。
输出:模型参数 θ \theta θ。
- (1)选择模型的初始值 θ ( 0 ) \theta^{(0)} θ(0)。
- (2)E步:记 θ ( i ) \theta^{(i)} θ(i)为第i次迭代的参数 θ \theta θ的估值,计算第i+1次迭代的E步,计算
Q ( θ , θ ( i ) ) = E z [ l o g P ( X , Z ∣ θ ) ∣ X , θ ( i ) ] = ∑ Z l o g P ( X , Z