在人工智能,数理统计,机器学习,模式识别中有许多的应用都要进行模型的参数估计,也就是要进行极大似然估计或极大后验似然估计。当模型中的变量均为可以直接观察的变量时,极大似然或极大后验似然是显然的。但是当某些变量是隐藏的,进行极大似然估计就比较复杂,此时似然函数将很复杂,求导后很难计算。在存在潜在变量的情况下,对模型参数进行估计的方法有很多种,一种非常流行的极大似然估计方法是Expectation一Maximization算法,通常简称为期望最大算法,即EM算法。
EM算法是基于模型的聚类方法,是一种从不完全数据中求参数极大似然估计的迭代算法,通过求解似然函数基于隐含变量期望的极值以获得模型的参数向量。算法在概率模型中寻找参数最大似然估计,其中概率模型依赖于无法观测的隐藏变量。E步估计隐含变量,M步估计其他参数,交替将极值推向最大。
EM算法是一种存在缺失数据情况下参数估计的特别算法。其基本思想是首先在给出缺失数据初值的条件下,估计出模型参数的值:然后再根据参数值估计出缺失数据的值。根据估计出的缺失数据的值再对参数值进行更新,如此反复迭代,直至收敛,迭代结束。
该算法的每一次迭代由两步组成:第一步是求对数似然函数的条件期望(E步),第二步是最大化步计算所得的条件期望(M步)。该算法利用数据扩张,将比较复杂的似然函数最优化问题化成一系列比较简单的函数的优化问题。
算法是把一个难以处理的似然函数最大化问题用一个易于最大化的序列取代,而其极限就是原始问题的解。
一种情况是由于问题本身的原因或观察条件的限制导致观察数据存在缺失变量。
另一种情况得到的数据是完全数据,缺失变量本身并不存在,但是由于似然函数方程过于复杂,难以用传统的极大似然估计方法进行处理,如果添加额外的变量(或称为缺失变量)后的完全数据似然估计则比较简单,于是定义原来数据加上额外数据组成完全数据,而原来观察的原始数据就成为不完整数据,这样就使得相当一部分参数估计问题能够用算法来处理。
根据这种思想可以把许多统计模型纳入到EM算法的框架中来.比如说,混合模型(Mixture model),对数线性模型(log linear model),以及潜变量结构(latent variables structure)等,在这些情况下利用EM算法可以使得复杂的极大似然估计变得简单.EM算法可以运用到几乎所有的统计问题或那些统计技术可以运用到的领域。
EM算法比K-means算法计算复杂,收敛也较慢,不适于大规模数据集和高维数据,但比K-means算法计算结果稳定、准确。