EM算法-使用硬币实验的例子理解
EM算法,即最大期望算法(Expectation-Maximization algorithm, EM),是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法 ,通常作为牛顿迭代法的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计 。
EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值 。
由于迭代规则容易实现并可以灵活考虑隐变量 ,EM算法被广泛应用于处理数据的缺测值 ,以及很多机器学习算法,包括高斯混合模型和隐马尔可夫模型的参数估计。
本文通过一个实例讲讲EM算法在具体实例中的使用和体现。
一、硬币实验概述
- 首先要明确硬币实验本身的问题是
两块硬币A、B与我们熟知的硬币不同,它们形状不是均匀分布的,所以抛出正面的概率并不是简单的50%,现在我们想知道这两块硬币分别抛出正面的概率 - 探究的方法:做实验,将A硬币抛 n n n次,记正面次数为 n h n_h nh,在n足够大情况下的,硬币A抛出正面的概率为实验出现的频率,即 p A = n h n p_A = \frac{n_h}{n} pA=nnh。B硬币同理。
- 遇到的问题:研究员做实验的时候对A、B硬币分别做实验,但是他忘记记录他每次抛的时候抛的硬币是A还是B了。也就是说我们只有一堆正面、反面的事件记录,但是我们不知道发生该事件的硬币是A还是B,问怎么求原来的问题。
二、解决方案
1. 情况a:可以观测到实验数据中每次选择的是A还是B
解:直接计算实验数据,A硬币、B硬币出现正面的频率作为概率即可,即
θ A = 24 / ( 24 + 6 ) = 0.80 θ B = 9 / ( 9 + 11 ) = 0.45 \theta_A = 24/(24+6) = 0.80\\ \theta_B = 9/(9+11) = 0.45 θA=24/(24+6)=0.80θB=9/(9+