EM算法一般是使用在处理数据残缺的问题或者含有隐含变量的时候,这种算法在思路上比较类似于爬坡算法,每一个E步骤都确定了下一步迭代的方向,而M步骤则包含了下一个迭代的距离。
假设X1,X2...Xn为n个观察向量(每一个X代表一个被试,而向量的长度取决于题目个数),而Y1,Y2...Yn则是对应每一个X的缺失数据,我们要得到的参数Z是一个未知的,我们现在希望通过X和Y得到Z,我们定义一个概率模型p(X,Y|Z)。我们每一步都是一个最大化的过程:
在E步骤,我们希望在固定了上一次的Z之后,我们希望得到最大化的X分布概率;
而在M步,我们希望在X分布概率后,我们希望得到Z的最大化。在我们的问题上,我们M步是首先进行平均值和协方差矩阵的估计,E步则是计算缺失值在已知的条件下的最大化结果,然后重复以上的过程。
EM算法有一个问题,就是对于初始值的要求比较高,一旦初始值不好,很难收敛,因此我们要考虑初始值的问题。