天天看点

机器学习(十九)EM:期望最大算法

1 EM算法简介

最大期望算法(Expectation Maximization Algorithm,又译期望最大化算法),是一种迭代算法,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计。

在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。

未观测变量的学名是“隐变量”(latent variable)。EM算法是常用的估计参数隐变量的利器,它是一种迭代式的方法,其基本思想是:若参数θ已知,则可根据训练数据推断出最优隐变量Z的值(E步);反之,若Z的值已知,则可以方便地对参数θ做极大似然估计(M步)。

于是,以初始值θ0为起点,可迭代执行以下步骤直至收敛:

  • 基于θt推断隐变量Z的期望,记为Zt;
  • 基于已观测变量X和Zt对参数θ做极大似然估计,记为θt+1

2 抛硬币例子

我们现在考虑两个抛硬币的例子:

"给定两个硬币A和B,随机抛掷后正面朝上概率分别记为 p'和'q'。每次随机选择一个硬币并投掷。有以下观察序列:H A H A T B T A T B H B H B T A H B H A T A T A H A H B H A T B,从给定数据估计出'p'和'q'的值"。

我们很容易计算出p:

机器学习(十九)EM:期望最大算法

相似地可以计算出q:

机器学习(十九)EM:期望最大算法

这很容易,因为计算未知参数所需的所有信息都是可获得的。但是,如果硬币上的标签(A和B)被隐藏起来,不知道每次投掷哪个硬币。鉴于A和B硬币同样可能被选中,那我们如何估计未知参数'p'和'q'?

我们将尝试通过多次迭代计算来解决问题。在每次迭代中,我们有两个步骤,'E'步骤和'M'步骤。

“E”步骤(期望):

  1. 首先初始化p和q的值(初始猜测)。
  2. 我们不是说掷硬币来自特定的硬币,而是说它以概率为'x'来自硬币A,来自硬币B概率'1-x'。
  3. 计算每枚硬币的正反期望数量。

“M”步骤(最大化):

  1. 从“E”步骤计算步骤3中每个硬币的正反期望的对数似然,类似于MLE计算。
  2. 最大似然估计出隐变量,并重新估计p和q的新值
  3. 使用新的p和q值重复“E”步骤,直到它收敛为止。

让我们举一个例子,其中进行了5次实验并且在每次实验中进行了10次抛掷。(使用两个硬币)。

机器学习(十九)EM:期望最大算法

我们从对未知参数初步进行猜测:p = 0.6和q = 0.5。让我们进行第一次实验。将此观察称为'S',我们想要估计观察'S'来自硬币A的可能性是多少,即P(A | S)。回想贝叶斯定理:

机器学习(十九)EM:期望最大算法

P(A)是选择硬币A的概率,它是0.5(因此是P(B)),因为我们知道每个硬币具有相同的被拾取概率。P(S | A)是观察的概率,因为它来自硬币A,即使用二项分布,我们推断它是:

机器学习(十九)EM:期望最大算法

同样地有,

机器学习(十九)EM:期望最大算法

P(S)是观察的概率。由于观察可以来自硬币A或硬币B或两者,因此:

机器学习(十九)EM:期望最大算法

然后可以得到:

机器学习(十九)EM:期望最大算法

将初始猜测的值代入p = 0.6和q = 0.5,得到P(A | S)= 0.45,因此P(B | S)= 1-P(A | S)= 0.55。因此,给定观察1,它来自硬币A的概率是0.45并且来自硬币B的概率是0.55。因此,预期的头部数量来自硬币A = 5 * 0.45并且尾部= 5 * 0.45,类似地,来自硬币B的头部的预期数量= 5 * 0.55并且尾部= 0.5 * 0.55。对其他四个实验重复相同的期望(E)步骤,我们得到硬币A = 21.3和尾部= 8.6的预期头部总数,类似于硬币B,预期头部总数= 11.7,尾部= 8.4

机器学习(十九)EM:期望最大算法

因此,对未知参数p和q的新估计是

机器学习(十九)EM:期望最大算法

机器学习(十九)EM:期望最大算法

上一步是“M”步骤或最大化步骤。我们重复上述EM步骤,直到'p'和'q'的值收敛。在这个例子中,'p'和'q'的值在大约10步中收敛到最终值p = 0.8和q = 0.52。

机器学习(十九)EM:期望最大算法

以上是EM算法应用的一个非常简单的例子。它用于表明给定具有缺失数据的参数估计问题,EM算法可以通过生成对丢失数据的可能猜测来迭代地解决该问题,然后通过使用这些猜测来最大化观察的可能性。除了简单的投掷硬币示例之外,EM已成功用于训练隐藏状态的HMM,EM也用于 聚类应用 和 半监督学习