EM算法是一种通过观测到的数据,找到含潜在分布的参数的最大似然估计(MLE,Maximum Likelihood Estimate)的通用方法。一般我们称观测到的数据是incomplete的,或有missing values。
那EM算法如果要成功得到MLE,需要将不可观测的complete data和incomplete data联系起来,这样complete data可以被未知参数的函数所描述,MLE求解也变的简单。
EM框架中,我们通常将 logp(X∣θ) 称为不完全对数似然(incomplete log data likelihood),而 log p(X,Z|θ) 称为完全对数似然(complete log data likelihood ),EM算法的目标是通过最大化完全对数似然找到参数的合理估计。然而由于我们对隐变量一无所知,因此没办法直接最大化完全对数似然,替代方案是最大化完全对数似然的后验数学期望,这里先给出该算法的参数迭代更新式:
θ(g+1)=argmaxθ∫Zlog p(X,Z|θ)⋅p(Z|X,θ(g))dZ(1)
公式推导和解释
求参数 θ 的最大似然:
θMLE=argmaxθ(L(θ))=argmaxθ(log[p(X∣θ)])
需要一些trick,上面公式中的 Z 成为模型的latent variable
要证明Eq(1)的EM迭代公式是有效的,那么就需要确保
logp(X∣θ(g+1))⩾logp(X∣θ(g))
使得最终结果收敛。
所以先看如下证明,已知:
logp(X|θ)=logp(X,Z|θ)−logp(Z|X,θ)(2)
Eq(2)式子两边同时对分布 p(Z|X,θ(g)) 在latent变量 Z 上求积分。
左边=∫Zlogp(X|θ)p(Z|X,θ(g))dZ=logp(X|θ)
右边=∫Zlogp(X,Z|θ)p(Z|X,θ(g))dZQ(θ,θ(g))−∫Zlogp(Z|X,θ)p(Z|X,θ(g))dZH(θ,θ(g))
其中Q的形式和Eq(1)是一样的,如果参数从 θ(g) 迭代到 θ(g+1) ,那么 Q(θ,θ(g+1))⩾Q(θ,θ(g)) ,那么为什么最大化这个Q就可以保证Eq(2)的左边也能增大呢,如果要确保这个关系就需要证明 H(θ,θ(g+1))⩽H(θ,θ(g))
我们知道第g次迭代的时候, θ(g) 使得H值取到最大,即
argmaxθH(θ,θ(g))=argmaxθ∫Zlogp(Z|X,θ)p(Z|X,