在机器学习的领域里面,我们常常需要用极大似然估计【或极大化后验】的方法去做参数估计
θ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里的一幅图来形象说明它们之间的关系EM
所以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|Θ)=ln∫Zp(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)dZ−∫Zln(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)=Θnew⇒H(Θ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∀Θ