分类目录:《深入理解机器学习》总目录
在前面的讨论中,我们一直假设训练样本所有属性变量的值都已被观测到,即训练样本是“完整”的。但在现实应用中往往会遇到“不完整”的训练样本。在这种存在“未观测”变量的情形下,是否仍能对模型参数进行估计呢?未观测变量的学名是“隐变量”(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∣Θ)=lnZ∑P(X∣Θ)
EM(Expectation-Maximization)算法是常用的估计参数隐变量的利器,它是一种送代式的方法,其基本想法是:若参数 Θ \Theta Θ已知,则可根据训练数据推断出最优隐变量 Z Z Z的值(E步);反之,若 Z Z Z的值已知,则可方便地对参数做极大似然估计(M步)。
于是,以初始值 Θ 0 \Theta^0 Θ0为起点,对上式,可选代执行以下步骤直至收敛:
这就是EM算法的原型。
进一步,若我们不是取 Z Z Z的期望,而是基于 Θ t \Theta^t Θt计算隐变量 Z Z Z的概率分布 P ( Z ∣ X , Θ t ) P(Z|X, \Theta^t) P(Z∣X,Θt),则EM算法的两个步骤是:
简要来说,EM算法使用两个步骤交替计算:第一步是期望E步,利用当前估计的参数值来计算对数似然的期望值;第二步是最大化M步,寻找能使E步产生的似然期望最大化的参数值。然后,新得到的参数值重新被用于E步。直至收敛到局部最优解。事实上,隐变量估计问题也可通过梯度下降等优化算法求解,但由于求和的项数将随着隐变量的数目以指数级上升,会给梯度计算带来麻烦;而EM算法则可看作一种非梯度优化方法
参考文献:
[1] 周志华. 机器学习[M]. 清华大学出版社, 2016.