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

分类目录:《深入理解机器学习》总目录


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

然而由于 Z Z Z是隐变量,上式无法直接求解。此时我们可通过对 Z Z Z计算期望,来最大化已观测数据的对数“边际似然:
L L ( Θ ∣ X ) = ln ⁡ P ( X ∣ Θ ) = ln ⁡ ∑ Z P ( X ∣ Θ ) LL(\Theta|X) = \ln P(X|\Theta) = \ln\sum_ZP(X|\Theta) LL(Θ∣X)=lnP(X∣Θ)=lnZP(X∣Θ)

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

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

  • 基于 Θ t \Theta^t Θt推断隐变量 Z Z Z的期望,记为 Z t Z^t Zt
  • 基于已观测变量 X X X Z t Z^t Zt对参数 Θ \Theta Θ做极大似然估计,记为 Θ t + 1 \Theta^{t+1} Θt+1

这就是EM算法的原型。

进一步,若我们不是取 Z Z Z的期望,而是基于 Θ t \Theta^t Θt计算隐变量 Z Z Z的概率分布 P ( Z ∣ X , Θ t ) P(Z|X, \Theta^t) P(ZX,Θt),则EM算法的两个步骤是:

  • E步(Expectation):以当前参数 Θ t \Theta^t Θt推断隐变量分布 P ( Z ∣ X , Θ t ) P(Z|X, \Theta^t) P(ZX,Θt),并计算对数似然 L L ( Θ ∣ X , Z ) LL(\Theta|X, Z) LL(Θ∣X,Z)关于 Z Z Z的期望: Q ( Θ ∣ Θ t ) = E Z ∣ X , Θ t L L ( Θ ∣ X , Z ) Q(\Theta|\Theta^t)=\mathbb{E}_{Z|X, \Theta^t}LL(\Theta|X, Z) Q(Θ∣Θt)=EZX,ΘtLL(Θ∣X,Z)
  • M步卡(Maximization):寻找参数最大化期望似然,即: Θ t + 1 = arg ⁡ max ⁡ Θ Q ( Θ ∣ Θ t ) \Theta^{t+1}=\arg\max_\Theta Q(\Theta|\Theta^t) Θt+1=argΘmaxQ(Θ∣Θt)

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

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

猜你喜欢

转载自blog.csdn.net/hy592070616/article/details/126712228
EM