Processing math: 100%

Expectation Maximization Algorithm

在机器学习的领域里面,我们常常需要用极大似然估计【或极大化后验】的方法去做参数估计
θMLE=argmaxθ(L(θ))=argmaxθ(ln[p(X|θ)])
然而,当模型中含有隐变量,或者说观测数据不完整时,用极大似然估计往往不能得到一个闭式解【closed-form solution】。EM算法就是一种求解这种含有隐变量模型的迭代算法。

我们用Z表示所有的隐变量,X表示所有的观察到的变量,Θ表示所有的参数,则log likelihood可以写成:
L(Θ|X)=ln(p(X|Θ))=ln(p(X,Z|Θ)p(Z|X,Θ))=ln(p(X,Z|Θ)Q(Z)Q(Z)p(Z|X,Θ))=ln(p(X,Z|Θ)Q(Z))+ln(Q(Z)p(Z|X,Θ))
两边对Q(Z)这个分布求期望,左边因为不含变量Z,所以不会影响:
ln(p(X|Θ))=ZQ(Z)ln(p(X,Z|Θ)Q(Z))+ZQ(Z)ln(Q(Z)p(Z|X,Θ))=ZQ(Z)ln(p(X,Z|Θ)Q(Z))+KL(Q(Z)||p(Z|X,Θ))0=L(Θ,Q)+KL(Q(Z)||p(Z|X,Θ))L(Θ,Q)
也即L(Θ,Q)ln(p(X|Θ))的下界。引用PRML里的一幅图来形象说明它们之间的关系
EMEM
所以EM其实是一个Maximize-Maximize的过程【Θold表示上一次迭代Θ的值】:

    在E步,我们固定住Θold,优化下界【with respect to Q(Z)】,这时候下界最大当且仅当KL divergence为0,也即Q(Z)=p(Z|X,Θold)

    在M步,我们固定住Q(Z),优化下界【with respect to Θ】,得到Θnew

这样子,每一步优化下界都在改进,所以EM一定会收敛,但是EM并不保证收敛到最优解
另一种证明ln(p(X|Θ))F(Θ,Z)的方法是利用琴生不等式【Jensen’s Inequality】:
ln(p(X|Θ)=lnZp(X,Z|Θ)=ln(Zp(X,Z|Θ)Q(Z)Q(Z))lnEQ(Z)[f(Z)]Zln(p(X,Z|Θ)Q(Z))Q(Z)EQ(Z)ln[f(Z)]
接下来再讲一下M步里怎么优化下界,做完E步后KL divergence那一项变成0,即Q(Z)=p(Z|X,Θold),所以
L(Θ|X)=L(Θ,Q)=ZQ(Z)ln(p(X,Z|Θ)Q(Z))=Zp(Z,X|Θold)ln(p(X,Z|Θ))Q(Θ,Θold)Zp(Z|X,Θold)ln(p(Z|X,Θold))independent of Θ
也就是我们只需要最大化Q(Θ,Θold)
注意到现在我们要优化的参数Θ只存在于log里面,如果分布p(X,Z|Θ)是一个指数族分布,那么log和exp将会抵消,我们求解起来就会比原来直接求p(X|Θ)简单得多
类似地,EM也可以用来做极大后验估计:
ln(p(Θ|X)=ln(p(Θ,X))ln(p(X))=ln(p(X|Θ))+ln(p(Θ))ln(p(X))
ln(p(X|Θ))做和上面一样的分解即可

“Tagare” approach


另一种证明EM会收敛的方法,大同小异
L(Θ|X)=ln(p(X|Θ))=ln(p(X,Z|Θ)p(Z|X,Θ))
zln(p(X|Θ))p(Z|X,Θold)=Zln(p(Z,X|Θ))p(Z|X,Θold)dZZln(p(Z|X,Θ))p(Z|X,Θold)dZ
ln(p(X|Θ))=Zp(Z,X|Θold)ln(p(X,Z|Θ))Q(Θ,Θold)Zp(Z|X,Θold)ln(p(Z|X,Θ))H(Θ,Θold)
我们只maximize Q(Θ,Θold),因为可以证明
argmaxΘQ(Θ,Θold)=ΘnewH(Θnew,Θold)H(Θold,Θold)
这样子,我们就有
L(Θnew)=Q(Θnew,Θold)H(Θnew,Θold)Q(Θold,Θold)H(Θold,Θold)=L(Θold)
可以用琴生不等式证明H(Θold,Θold)H(Θ,Θold)0Θ