EM算法

一般来说,如果我们要估计一个模型参数,很多情况下极大似然估计就可以满足我们。
EM出现的原因,是因为很多时候无法直接使用极大似然。

网上流传比较多的例子是:
男生,女生的身高各自服从自己的分布(假设是正态分布)。
如果数据没有混合在一起,那么MLE直接分别对男生数据和女生数据应用即可。现在的问题是:男生女生的身高数据混合在一起了。此时该怎么办?

此时,我们除了识别这两个分布各自的均值、方差我们其实还面临着一个问题这个数据是来自男生还是女生?(我们将其看作一个隐含参数)

下面就是EM算法的例子了。不再给出数学公式的描述,其实网路上有很多。

E阶段

第一步,初始化各自分布的参数【只是第一次时,需要该初始化】。这一步我们可以利用一些常见先验分布(如果容易得到的话,比如全国男生、女生身高分布:一方面,这总比我们瞎猜好;另一方面,因为是猜测,所以我们要求也并不严格。)

此时我们有了模型参数(但是注意我们并没有估计隐含参数)以及观测数据。此时我们就可以计算每个学生更可能是属于男生,还是属于女生(隐含参数)其实就是隐性变量的期望->作为隐藏变量的现估计值。
EM算法_第1张图片
这个是属于Expectation 一步。

M阶段

E阶段已经将这 200 个人分为男生和女生->隐藏变量的现估计值。虽然并不准,此时我们依然根据该划分,对男生女生的身高的模型参数:均值和方差进行MLE估计。由此显式地更新模型参数。并再次回到E阶段。

后记

EM是我之前学过的一个部分,不过最近没看,大概也是理解不够深刻。今天一个学弟跟我交流了一番。感觉自己没有很好的很明白的给人家讲懂,在这里记录一下,以供反思。

你可能感兴趣的:(DL,ML)