尽管最大似然估计(MLE)和EM都可以找到“最佳拟合”参数,但是它们查找模型的方式却大不相同。 MLE首先累积所有数据,然后使用该数据构建最可能的模型。 EM首先对参数进行猜测(考虑丢失的数据),然后对模型进行调整以适合猜测和观察到的数据。该算法的基本步骤是:
- 对模型的参数进行初步猜测,并创建概率分布。有时将其称为“预期”分发的“ E步骤”。
- 新观察到的数据被输入到模型中。
- 调整了来自E步骤的概率分布,以包括新数据。有时称为“ M步”。
- 重复执行第2步到第4步,直到达到稳定性(即从E步到M步不变的分布)为止。
EM算法通过此多步骤过程始终可以改善参数的估算。但是,有时该算法需要一些随机的开始才能找到最佳模型,因为该算法可以适应与(最佳)全局最大值不相近的局部最大值。换句话说,如果您强制它重新启动并再次执行步骤1中的“初始猜测”,则它的性能会更好。然后,从所有可能的参数中,选择可能性最大的参数。
例子:
最经典的翻硬币问题
假设我们有两个硬币A和B
同时这只两集X_a {𝑥1,𝐴,…,𝑥𝑚𝐴,𝐴 }以及 X_𝐵 = {𝑥1,𝐵,…,𝑥𝑚𝐵,𝐵}
当x等于1 那个硬币为上
当x为0硬币为其余情况
首先先看等我们知晓全部信息时,如何求得,两枚硬币被抛出正面的概率:
更具公式:
我们一下就能得出A,B两个硬币被泡出正面的概率,这就是极大似然。
那么在EM问题中我们假设我们只知道不停的抛硬币,但是不知道自己抛到时A还是B
这样就有了缺失的条件。
先给出算法的公式步骤:
代入到我们的问题中,
首先第0步,我们要自己预估一个初始的值,这里我们的预估是:θA=0.6, θB= 0.5。
使用当前参数计算数据可能完成的概率分布。
然后开始第一步 E步骤,也就是预估:
由此可以开始M步骤:
总的来说由我们的一个初始随机预估的值我们可以求到新的极大似然值,比较发现,这个值更接近我们的真实答案0.8,0.45,那么我们继续轮回迭代知道达到我们的最终目标