转载自 期望最大化(EM)
〇、说明
在看到的资料里,包括周志华教授的《机器学习》[1]、李航博士的《统计学习方法》[2],大多数材料把期望最大化算法看做是一个解决含有隐变量优化问题的算法,我认为这是对期望最大化算法的狭义理解;而在吴军博士的《数学之美》[3]中,吴军博士将交替优化参数和模型直到最优的这一类算法(书中没有这样表述,我自己对书中内容的理解),称作期望最大化算法,我认为这是对期望最大化算法的广义理解。对于对算法的宏观理解,个人认为吴军博士的广义理解更好理解;但对于解决实际问题,还是要具体到每一个可以编程实现的算法。
一、一句话简介
期望最大化算法(Expectation Maximization),是一种渐进逼近算法;定义一个最优化函数后,分为两步:根据参数调整模型(E步);根据模型调整参数(M步);E步和M步交替进行,直至最优(局部)。
二、最简单的例子
一个不是很恰当的例子,塔吊盖楼房。
目标函数:盖楼房盖到预定高度。E步:根据楼房现有高度调整塔吊高度(根据参数调整模型);M步:根据现有塔吊高度将楼房盖到尽可能高(根据模型调整参数);交替进行直到楼房达到预定高度。
三、广义期望最大化算法包括
狭义期望最大化算法,K均值算法[3],Baum-Welch算法[3],GIS算法[3],等等。
四、狭义期望最大化算法
1、算法引出
在考虑求对于模型参数,使样本结果极大似然估计的算法中,如果存在隐变量而使得极大似然估计无法直接求解,则这时候可以使用期望最大化(EM)算法来求解。
2、算法描述[2]
3、注意
EM算法对初值是敏感的,并且收敛到局部极值。常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的[2]。
五、参考
1、《机器学习》,周志华著
2、《统计学习方法》,李航著
3、《数学之美》,吴军著