一句话: EM算法的精华在于 EM——期望最大化,把一个不好MLE的问题用迭代方法解决掉,思路清晰,计算简单。
首先,明确我们的目标是什么:那就是要求解一个最大似然估计问题。
所谓的最大似然估计问题就是——给定一组数据和一个参数待定的模型,如何确定模型的参数,使得这个确定参数后的模型在所有模型中产生已知数据的概率最大。
如果你还是对最大似然估计不了解,那么你可以参看如下的资料:
好了,现在咱们继续下面的问题:假如我们要求解的最大似然估计问题中存在着未知的隐含变量,那么我们又该如何求解这个最大似然估计问题呢??
而这也就是应用到EM算法的时候了。
——EM算法是一种解决隐含变量优化问题的有效方法!
比如:给定训练样本{x1 - xm},想找到每个样例隐含类别z,能使p(x,z)最大,p(x,z)的最大似然估计如下:
在原本的最大似然估计当中,我们是通过求偏导来求解theta的。但是,现在我们多了一个未知量z,那么就无法通过求偏导的方法得到theta的最优值。
那么对这个问题我们该怎么办呢??
一个办法:通过EM算法解决!这也就体现出EM算法的高超技艺
——因为无法求解得出L(theta)的最优(大)值,那么就通过不断地构造下界,然后再通过优化下界的方法来逐步逼近下界极大值,简单的说就是:当不能得到一个函数的最大值时,我们就可以通过不断地构建这个函数的下界,来一步步迭代地逼近最大值。
关于EM算法的数学推导,详见文献[1]。
参考文献:
[1] JerryLead (EM算法)The EM Algorithm 首席推荐tutorial(非正规版)
[2] Stanford ML 第12课K-Means中段到第13课首段 和[1]的内容一样,不过有一些细微的讲解(学生提问)可以解惑