EM算法是为处理缺失数据的参数估计问题,由Dempster等人在1977年正式提出的。但是在这之前,就有一些专家,学者开始关注不完整数据的处理,并提出了自己的一些看法与意见。在1926年的时候,M’kendrick在医学领域最早开始关注这种方法。1970年Baum,Petri等人扩大的这一算法的应用范围,将其开始应用到数学领域。1974年Sundberg着重研究了指数分布下的不完整数据的似然函数,并给出了相应的计算,为后来EM算法的正式提出打下了一个基础。在后来研究过程中,专家学者们对EM算法又进行了一些定义与研究,规范了EM算法,形成了一套较为完整的理论。Wu就EM算法的收敛性质做出了一些研究,规范了EM算法的收敛性,提高了EM算法的可信度。30082
总的来说,EM算法是一种迭代处理算法,主要思想是通过一次次的迭代,使得最终的结果收敛。每一次迭代都是两部分组成,即E步(求期望)和M步(最大化)。虽然EM算法在有着很明显的优势和特点,但是自它被提出之后就相继出现了各种各样的问题,比如当缺失数据较为严重时,原有的这种EM处理方法的收敛速度 会减慢,所用的计算的时间将会变长,并且处理的结果也有较大的误差,一些中外的学者也在积极地研究和改进EM算法。对EM迭代算法的改进主要是针对E步和M步进行改进。后来Meng和Rubin 在原有的EM算法的基础上,提出了EM算法的改进算法GEM算法。该算法对原有的EM算法的M步进行了该进,使其收敛速度得到了提高,大大提高了EM算法的响应速度以及结果的准确性。到了20世纪70年代,Donald B.Rubin 提出了求解参数MLE估计的多重填补法,该方法主要是对原有的EM算法的E步进行了一些改进。原有的EM算法的E步中,只用一个值对缺失参数进行填补,算法的准确性较低。而改进后的EM算法,对每个缺失值的填补由原来的一个值改进为两个值,有时候甚至还可以填补更多。这样就把原来对单一的不完整数据的处理的问题转变为对多个完整数据的参数处理问题。并对这些完整的数据进行逐一的处理,最后对所有得到的结果进行综合处理,得到一个最佳的结果。由于该方法改变了原有的只对一组数据的处理,变为了同时对多组数据进行处理与研究,所以这种方法使得改进后的EM算法与原有的EM算法相比较,结果的准确性得到了提高。这种方法由于其准确高,所以也在现代生产生活中得到广泛的应用。除此之外,在某些特殊的情况下,在E步中很难计算出未知参
数的似然函数期望,有的时候甚至不能够计算出该期望。为了解决这个问题,Walker以原有的EM算法为基础,提出了MCEM (Monte Carlo EM)算法。MCEM算法主要是对EM算法的E步进行了改进,其采用蒙特卡洛模拟方法在E步中求解未知参数的似然函数期望,这样一来,使得期望的求解变得容易,大大扩大了EM算法的应用范围,改进了EM算法。论文网
不仅是国外的的专家,学者对EM算法的改进做出大量研究和贡献,国内的一些专家,学者也对EM算法提出了一些改进和提高的方法,为完善EM算法做出了一定的贡献。比如,虽然Walker提出的MCEM算法有效地解决了在E步中求解期望困难的问题,但是MCEM算法需要进行大量的计算,所以其在收敛速度上存在一定的缺陷。我国专家罗季就这一问题在MCEM算法的基础上,又提出了MCEM加速算法 ,通过将MCEM算法与N-R算法这两种算法相结合,提高了MCEM算法的收敛速度,大大提高了MCEM算法运算速度 ,减少了运算的时间。国内的专家除了对算法进行了改进,在EM算法的应用方面也作出了一些贡献,在国内许多的论文及研究中,对各种混合模型进行了参数估计以及聚类的分析研究,扩大了EM算法的应用面,推动了EM算法的发展。 EM算法国内外研发展及研究现状:http://www.youerw.com/yanjiu/lunwen_25616.html