关于EM算法的一些心得感悟

来源:互联网 发布:为什么需要云计算 编辑:程序博客网 时间:2024/06/05 20:48

最近因为准备面试,重新看了下EM算法。觉得还是有了新的收获。大家都知道EM算法是用来解决含有隐含变量的不完全数据问题。一般博客中举的最多的例子就是男生女生身高的问题。具体为:假如有一批人,我们已经测得了每个人的身高,这些人中包含男生和女生,问如何分别求解得到男生和女生的身高分布的参数(一般假设都是服从正态分布)。前人的博客都说了因为log在求和符号的外面,一般的极大似然法没法求解这个问题,原因就在于我们并不知道每一个身高数据到底是男生的还是女生的。而EM算法的提出了一种迭代求解的思路:我们首先假设我们知道每个身高是来自男生分布还是女生分布;然后在已知隐含变量的情况下,即我们已经可以把这批人分成两半,每一半利用极大似然估计就可以求得均值和方差了;然后把求得的均值和方差再带回去估计每个样本是属于男性还是女性。
EM算法的英文名称叫做Expectation Maximization。通常分为两步,即常说的E步和M步。一般E步的作用是求期望,M步即将E步求得的期望最大化,然后得到新的参数(如混合高斯分布里的均值和方差)。实际上E步干的事应该是求得每个隐含变量的后验分布,即p(zi|xi;θ),这就是所谓的Q函数,基于每个样本的这个分布我们就可以得到每个样本的隐含变量值zi。当我们得到了每个样本的隐含变量后,就可以把期望公式计算好了,这就是我们常说的计算期望。

0 0
原创粉丝点击