0
点赞
收藏
分享

微信扫一扫

深入理解机器学习——EM算法/最大期望算法(Expectation-Maximization Algorithm, EM)


在前面的讨论中,我们一直假设训练样本所有属性变量的值都已被观测到,即训练样本是“完整”的。但在现实应用中往往会遇到“不完整”的训练样本。在这种存在“未观测”变量的情形下,是否仍能对模型参数进行估计呢?未观测变量的学名是“隐变量”(Latent Variable)。令表示已观测变量集,表示隐变量集,表示模型参数。若欲对做极大似然估计,则应最大化对数似然:

然而由于是隐变量,上式无法直接求解。此时我们可通过对计算期望,来最大化已观测数据的对数“边际似然:

EM(Expectation-Maximization)算法是常用的估计参数隐变量的利器,它是一种送代式的方法,其基本想法是:若参数已知,则可根据训练数据推断出最优隐变量的值(E步);反之,若的值已知,则可方便地对参数做极大似然估计(M步)。

于是,以初始值为起点,对上式,可选代执行以下步骤直至收敛:

  • 基于推断隐变量的期望,记为
  • 基于已观测变量对参数做极大似然估计,记为

这就是EM算法的原型。

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

  • E步(Expectation):以当前参数推断隐变量分布,并计算对数似然关于的期望:
  • M步卡(Maximization):寻找参数最大化期望似然,即:

简要来说,EM算法使用两个步骤交替计算:第一步是期望E步,利用当前估计的参数值来计算对数似然的期望值;第二步是最大化M步,寻找能使E步产生的似然期望最大化的参数值。然后,新得到的参数值重新被用于E步。直至收敛到局部最优解。事实上,隐变量估计问题也可通过梯度下降等优化算法求解,但由于求和的项数将随着隐变量的数目以指数级上升,会给梯度计算带来麻烦;而EM算法则可看作一种非梯度优化方法

参考文献:
[1] 周志华. 机器学习[M]. 清华大学出版社, 2016.


举报

相关推荐

0 条评论