EM 算法

EM 算法」(Expectation-Maximization)是Bayes 模型中常用的估计参数隐变量的方法,采用两个步骤交替迭代方式进行计算,其中 E 表示计算期望,M 表示寻找最大化参数。此算法大致可表示为

  1. 利用当前估计的参数值来计算对数似然的期望值
  2. 寻找能使上一步产生的似然期望最大化的参数值。然后新参数重新用于 E 步。以上两个步骤交替进行,直至满足收敛条件。

若参数 已知,则可根据训练数据推断出最优隐变量 的值(E 步),反之若 的值已知,则可方便地对参数 做最大似然估计(M 步)。

以初始值 为起点,对 ,迭代执行以下步骤直至收敛

  1. E 步:基于 推断隐变量 的期望,记作
  2. M 步:基于已观测变量 对参数 做最大似然估计,记为

进一步,若不是计算 的期望,而是基于 计算隐变量 的概率分布 ,则 EM 算法的两个步骤改写为

  1. E 步:以当前参数 推断隐变量分布 ,并计算对数似然 关于 的期望

  2. M 步:寻找参数最大化期望似然,即

例子

为了调查学校学生身高,随机抽样 个男生和 个女生,设男生女生的身高均服从Gaussian 分布,试确定男生女生对应的均值和方差。

解:

设待估计参数 。则

抽到上述 个男生的概率为

应该使此概率最大。亦等价于最大化对数似然函数

解得

同理可得

注意,此例中直接给定了男女数量,因此利用极大似然估计可以分别估计男女身高的高斯分布参数。当只知道总数而不知道男女各自的数目时,应该如何估计分布参数?

若上例中男女生数据无法区分,即只知道总人数 ,试确定男女生对应的均值和方差

分析:该问题包含两个正态分布,每个样本有 2 种参数需要估计,即

  1. 每个样本属于 1 还是 2?
  2. 每一类样本的均值和方差

其解决方法为

  1. 若隐藏的标签已知,则由极大似然估计易得均值与方差
  2. 若均值与方差已知,则可以进一步调整样本标签

样本标签已被隐藏,则可假设隐藏标签已知,写出似然函数表达式对隐藏的标签取期望后,再采用极大似然估计的均值与方差。

给定 个观测样本,满足如下混合形式的概率

其中

求混合分布的三组参数

记隐藏标签为 ,当 属于 类时值为 1,否则值为 0。于是第 类样本点数 ,且 。记 ,假设 已知,则观测到上述 个样本点的似然函数为

对数似然函数为

E 步:关于隐藏标签 取期望得

易知 。接下来执行 M 步,对 采用极大似然估计求参数

  • 首先初始化
  • E 步,给定样本 ,根据初始参数求取
  • M 步,根据 ,更新
  • 以上两步交替迭代执行,直至收敛。常用收敛条件包括