初识EM算法

参考:http://mp.weixin.qq.com/s/NbM4sY93kaG5qshzgZzZIQ
Chuong B Do & Serafim Batzoglou的Tutorial论文“What is the expectation maximization algorithm?”

EM算法:

  1. 是PCA外的另一个无监督学习的经典
  2. 具体来说EM是个方法学,并不是一种具体的算法
  3. EM解决的是对不完全数据的参数估计问题

EM算法第一层境界:EM就是E期望 + M最大化

最经典的例子是抛三个硬币:抛硬币1,根据其结果决定抛硬币2还是硬币3,最后由硬币2或者硬币3决定正反面结果。这里,需要我们估算这三个硬币的正反面概率值。(注意:和下面用到的例子略微不同)

思考:什么是隐变量?为什么要引入隐变量?

下面这张图说明了什么是Maximum likelihood:
这里写图片描述
我们由上图可以看到,每次抛掷什么硬币以及它们出现正面还是反面,这些数据我们都是知道的,即完全数据。我们可以根据这些结果进行MLE。
这里写图片描述
这里写图片描述

可是如果我们只知道抛掷的是正面还是反面,而不知道是硬币A还是硬币B呢,我们如何对参数(即硬币A出现正面的概率,硬币B出现正面的概率)进行估计?即在不完全数据的情况下的参数估计问题
这种情况下,我们把抛掷的是硬币A还是硬币B作为隐变量。如果我们可以通过某种方式得到完全数据,那么问题就由不完全数据的参数估计转变为完全数据的极大似然估计。
我们接下来介绍所提到的某种方式:

  1. 将要求的参数随机初始化:这里写图片描述,用来决定用硬币A还是硬币B可以更可能地产生观测到的正反面序列。
  2. 接下来使用我们的猜测来构成完全数据,把MLE应用到上面,得出这里写图片描述
  3. 重复上面两步,直至收敛。

EM算法是上面的思想一个修正。在每次迭代的时候不是选择最有可能的缺失数据序列,而是利用当前的参数这里写图片描述计算出每种缺失数据序列的可能性,这些可能性用来构造a weighted training set consisting of all possible completions of the data。然后在这个training set上使用MLE产生新的参数估计这里写图片描述
总体来说,EM有两步:

  1. E步–guess a probability distribution over completions of missing data given the current model
  2. M步–re-estimate the model parameters using these completions

‘E-step’ comes from the fact that one does not usually need to form the probability distribution over completions explicitly, but rather need only compute ‘expected’ sufficient statistics over these completions. Similarly, the name ‘M-step’ comes from the fact that model re-estimation can be thought of as ‘maximization’ of the expected log-likelihood of the data.

我们可以用下面这张图片对EM算法有一个直观的认识:
这里写图片描述

到此为止,是对EM算法的第一层认识。

猜你喜欢

转载自blog.csdn.net/yqmind/article/details/78834553