8.5 EM 算法¶
原文 | The Elements of Statistical Learning |
---|---|
翻译 | szcf-weiya |
发布 | 2017-02-08 |
更新 | 2025-03-20 |
状态 | Done |
EM 算法是简化复杂极大似然问题的一种很受欢迎的工具.我们首先在一个简单的混合模型中讨论它.
两个组分的混合模型¶
这一节我们描述一个密度估计的简单混合模型,以及对应的求解极大似然估计的 EM 算法.这与贝叶斯推断中的 Gibbs 取样方法有着本质的联系.混合模型在本书其他部分的章节有讨论,特别是 6.8,12.7 和 13.2.3 节.
weiya注:Gibbs sampling
假设我们需要从 X=(x1,x2,…,xn)X=(x1,x2,…,xn) 中得到 kk 个样本,联合分布为 p(x1,x2,…,xn)p(x1,x2,…,xn).
记第 ii 个样本为 X(i)=(x(i)1,…,x(i)n)X(i)=(x(i)1,…,x(i)n).我们按下列步骤进行:
-
以初始值 X(i)X(i) 开始
-
需要下一个样本,记为 X(i+1)X(i+1).因为 X(i+1)=(x(i+1)1,…,x(i+1)n)X(i+1)=(x(i+1)1,…,x(i+1)n) 是向量,我们需要对向量的每一个组分进行抽样,基于 p(x(i+1)j∣x(i+1)1,…,x(i+1)j−1,x(i)j+1,…,x(i)n)p(x(i+1)j∣x(i+1)1,…,x(i+1)j−1,x(i)j+1,…,x(i)n) 的分布对 x(i+1)jx(i+1)j 抽样.
-
重复上述步骤 kk 次.
图 8.5 的左图显示了表 8.1 中的 20 个模拟数据的直方图.
图 8.5. 混合模型的例子.(左图:)数据的直方图.(右图:)高斯密度的最大似然拟合(红色实线)和观测值 yy 的左边成分的解释度(绿色点线)作为 yy 的函数.
表 8.1. 图 8.5 中两个组分混合的例子中使用的 20 个模拟数据.
我们想要建立数据点的密度模型,然后由于数据点呈现明显的双峰,高斯分布不是合适的选择.这里似乎有两个潜在的分开的形式,所以我们将 YY 看成两个正态分布混合的模型: Y1∼N(μ1,σ21)Y2∼N(μ2,σ22)Y=(1−Δ)⋅Y1+Δ⋅Y2 其中 Δ∈{0,1},且 Pr(Δ=1)=π.产生过程是很显然的:以概率 π 产生 Δ∈{0,1},然后根据输出结果,分配给 Y1 或 Y2.令 ϕθ(x) 记为参数为θ=(μ,σ2) 的正态分布.则 Y 的密度为 gY(y)=(1−π)ϕθ1(y)+πϕθ2(y) 现在假设我们希望通过极大似然估计来拟合图 8.5 中数据的模型.参数为 θ=(π,θ1,θ2)=(π,μ1,σ21,μ2,σ22) 基于 N 个训练集的对数概率为 ℓ(θ;Z)=N∑i=1log[(1−π)ϕθ1(yi)+πϕθ2(yi)] 直接对 ℓ(θ;Z) 进行最大化在数值上是很困难的,因为求和项在 log 函数里面.然而,这里有一个更简单的方式.我们考虑一个类似 (8.36) 中取 0 或 1 的潜变量 Δi:若 Δi=1 则 Yi 来自模型 2,否则来自模型 1.假设我们已经知道了 Δi 的值.则对数概率为 ℓ0(θ;Z,Δ)=N∑i=1[(1−Δi)logϕθ1(yi)+Δilogϕθ2(yi)]+N∑i=1[(1−Δi)log(1−π)+Δilogπ]
weiya 注:
L(θ,Z,Δ)=n∏i=1[(1−π)ϕθ1(yi)]1−Δi[πϕθ2(yi)]Δi.
而且 μ1 和 σ21 的极大似然估计为 Δi=0 时样本均值和方差,类似地对于 μ2 和 σ22 的极大似然估计为 Δi=1 时的样本均值和方差.π 的估计为 Δi=1 的比例.
因为 Δi 的值实际上是不知道的,我们用一种迭代方式,替换 (8.40) 中的每个 Δi,它的期望值 γi(θ)=E(Δi∣θ,Z)=Pr(Δi=1∣θ,Z) 也称为模型 2 对于每个观测 i 的责任 (responsibility).我们用一种称作 EM 算法(算法 8.1 中给出)的过程来求解这个特殊的高斯混合模型.在期望 (expectation) 这一步,我们对每一个模型的每一个观测做一个软赋值:根据每个模型下训练集点的相对密度,参数的当前估计用来给 responsibilities 赋值.在最大化(maximization) 那一步,对极大似然估计中使用的 responsibilities 进行加权用来更新参数估计.
构造初始的 ˆμ1 和 ˆμ2 的一种很好的方式便是简单地随机选择 yi 中的两个值.ˆσ21 和 ˆσ22 都等于整体的样本方差 ∑Ni=1(yi−ˉy)2/N.最大比例的 ˆπ 可以从 0.5 开始.
注意到实际中概率的最大值发生在当我们固定一个数据点,换句话说,对于一些 i 令 ˆμ1=yi,ˆσ21=0.这给出了无限大的概率,但是这不是一个有用的解.
weiya 注:无界的似然函数
因此实际上我们寻找概率的一个良好的局部最大值,满足 ˆσ21,ˆσ22>0.进一步,可以有多个局部最大值满足ˆσ21,ˆσ22>0.在我们例子中,我们用一系列不同的初始参数值来运行 EM 算法,所有的都满足 ˆσ2k>0.5,然后选择使得概率最大的那个.图 8.6 显示了在最大化对数概率的 EM 算法的过程.表 8.2 显示了在给定迭代次数的 EM 过程下 ˆπ=∑iˆγi/N 是类别 2 中观测值比例的极大似然估计.
表 8.2. 对于混合模型选定的几次迭代的 EM 算法结果
图 8.6. EM算法:观测数据的对数似然关于迭代次数的函数
最后的极大似然估计为 ˆμ1=4.62σ21=0.87ˆμ2=1.06σ22=0.77ˆπ=0.546 图 8.5 的右图显示了从这个过程估计的混合高斯分布的密度(实心红色曲线),以及 responsibilities(绿色点曲线).注意到混合在监督学习中也很有用;在 6.7 节我们显示了高斯混合模型怎样导出 radial 基函数的版本.
weiya 注: Fig. 8.6 + Tab. 8.2
已重现,详见 Issue 249
广义 EM 算法¶
上面的过程是对于特定问题的类别下最大化概率的 EM(或者 Baum-Welch)算法.这些问题的概率最大化是困难的,但是通过运用潜在数据(未观测)增大样本会变得简单.这也称作数据增广.这里潜在数据是模型成员 Δi.在其它问题中,潜在数据是理应被观测到的实际数据但是缺失了.
算法 8.2 给出了 EM 算法的一般形式.我们的观测数据是 Z,其对数概率 ℓ(θ;Z) 取决于参数 θ.潜在数据或者缺失数据为 Zm,因此完整数据为 T=(Z,Zm),对数似然函数为 ℓ0(θ;T),ℓ0 基于完整的密度函数.在混合问题中,(Z,Zm)=(y,Δ),且 ℓ0(θ;T) 由 (8.40) 式给出.
在我们的混合例子中,E(ℓ0(θ′;T)∣Z,ˆθ(j)) 是将式 (8.40) 中的 Δi 替换成了解释度 ˆγi(ˆθ).第三步的最大化仅仅是加权均值和方差.
我们现在给出一个为什么一般情况下 EM 算法有用的解释.
因为 Pr(Zm∣Z,θ′)=Pr(Zm,Z∣θ′)Pr(Z∣θ′) 我们可以写成 Pr(Z∣θ′)=Pr(T∣θ′)Pr(Zm∣Z,θ′) 表示成对数似然函数,我们有 ℓ(θ′;Z)=ℓ0(θ′;T)−ℓ1(θ′;Zm∣Z),其中 ℓ1 是基于条件密度 Pr(Zm∣Z,θ′).取关于由参数 θ 确定的 T∣Z 分布的条件期望有 ℓ(θ′;Z)=E[ℓ0(θ′;T)∣Z,θ]−E[ℓ1(θ′;Zm∣Z)∣Z,θ]≡Q(θ′,θ)−R(θ′,θ) 在最大化那一步,EM 算法最大化关于 θ′ 的 Q(θ′,θ),而不是实际的目标函数 ℓ(θ′;Z).为什么这样能成功地最大化 ℓ(θ′;Z)?注意到 R(θ∗,θ) 是关于 θ∗ 的对数密度的期望,得到的密度是关于 θ 的,因此(由琴生不等式)当 θ∗=θ 时(见练习 8.1)最大化关于 θ∗ 的函数.
Ex. 8.1
已解决,详见 Issue 125: Ex. 8.1.
所以如果 θ′ 最大化 Q(θ′,θ),我们可以看到 ℓ(θ′;Z)−ℓ(θ;Z)=[Q(θ′,θ)−Q(θ,θ)]−[R(θ′,θ)−R(θ,θ)]≥0 因此 EM 迭代不会降低对数似然值.
这个论据也让我们明白在最大化那一步整体最大化不是必要的:我们仅仅需要找到一个值 ˆθ(j+1) 使得 Q(θ′,ˆθ(j)) 关于第一个变量是增的,也就是 Q(ˆθ(j+1),ˆθ(j))>Q(ˆθ(j),ˆθ(j)).这一过程称之为 GEM(广义 EM)算法.EM 算法也可以看成是最小化的过程:见练习 8.7.
Ex. 8.7
已解决,详见 Issue 126: Ex. 8.7.
EM 作为一个最大化-最大化的过程¶
这里从一个不同的角度来看 EM 过程,看成一个 联合最大化 (joint maximization) 算法.考虑函数 F(θ′,˜P)=E˜P[ℓ0(θ′;T)]−E˜P[log˜P(Zm)] 这里 ˜P(Zm) 是潜在数据 Zm 的任意分布.在混合例子中,˜P(Zm) 构成了概率 γi=Pr(Δi=1∣θ,Z) 的集合.注意到从 (8.46) 式看,F 是观测数据的对数似然函数(在 ˜P(Zm)=Pr(Zm∣Z,θ′) 上取值).函数 F 扩大了对数似然的定义域来,使得能够进行最大化.
原书脚注:
(8.46) 式对所有 θ 都成立,包含 θ=θ′.
EM 算法可以看成 F 关于 θ′ 和 ˜P(Zm) 的联合最大化,通过固定一个变量来最大化另外一个变量.固定 θ′ 来对 ˜P(Zm) 最大化可以证明是 ˜P(Zm)=Pr(Zm∣Z,θ′) (练习 8.2).
weiya 注:Ex. 8.2
已解决,详见 Issue 127: Ex. 8.2.
这是在求期望的步骤 E 计算得到的分布,举个例子,如在混合的例子中计算得到的 (8.42).在 M 步骤时,我们固定 ˜P 来对 θ′ 最大化 F(θ′,˜P):因为第二项不涉及 θ′,所以这与最大化第一项 E˜P[ℓ0(θ′;T)∣Z,θ] 是一样的.
最后,因为当 ˜P(Zm)=Pr(Zm∣Z,θ′) 时,F(θ′,˜P) 和观测数据的对数似然函数是一致的,对前者的最大化也实现了对后者的最大化.图 8.7 展现了这一过程的示意图.
图 8.7. EM 算法的最大化-最大化角度.图中画出了(增广)观测数据对数似然函数 F(θ′,˜P) 的等高线.步骤 E 等价于在潜在数据分布的参数上最大化对数似然函数.步骤 M 在对数似然参数上进行最大化.红色曲线对应观测数据的对数似然函数,这是对每个 θ′ 值进行最大化 F(θ′,˜P) 得到的曲线.
EM 算法的这个角度导出了 轮换最大化过程 (alternative maximization procedure).举个例子,虽然不需要一次性对所有潜在数据参数进行最大化,但是可以每次最大化其中的一个,通过在步骤 M 来 轮换 (alternate).
weiya 注
有点类似于 坐标轮换 (univariate search),关于坐标轮换及其其他优化方法的介绍,可以参见nlpm.