期望最大化算法EM

  EM算法的目标就是找到具有潜在变量模型的最大似然解。设随机变量x的所有观测数据为{x1,x2,},xiRd×1,所有这些数据用矩阵表示XRn×d,其中第i行就是前面集合中的第i个列向量的转置。类似地,将随机变量z与上述随机变量观测值一一对应的取值构成的集合记为Z。所有模型的参数记为θ,因此对数似然函数为

(9.29)log p(X|θ)=log {Zp(X,Z|θ)}

   一个关键现象: 潜在变量求和位于求对数内部,这就造成了计算的不便。即使联合分布p(X,Z|θ)属于指数族,但是求和形式的存在得到的结果也不会是指数族。

   假设上述的X,Z都是已知的,那么我们称{X,Z}是完整的数据集,如果潜在的变量z的取值无法获取,则称观测数据X是不完整的。如图9.5所示。

  • 图左:数据X用二维点表示,数据Z用绘制在二维点上颜色表示。都可以观测到,是完整的数据
  • 图中:数据X用二维点表示,无法获取其它信息。这里的粉色仅仅用于二维数据点的展示,不具有区分性

   一个假设: 完整数据集的对数似然函数形式为log p(X,Z|θ),假设对这个似然函数进行最大化是容易的。

   在实际的应用中,我们没有完整的数据集{X,Z},只有不完整的数据X。我们关于潜在变量z的取值z=Z的知识仅来源于后验概率分布p(Z|X,θ),(其实还要依赖关于变量z的先验分布,实际问题中都会做一个初始假设,比如服从均值分布或者高斯分布。)由于我们不能使用完整数据的对数似然函数,因此考虑在潜在变量的后验概率分布下,使用它的期望值来代替[注1]。 它的期望表示如下:

(9.30)EZp(Z|X,θold)[log p(X,Z|θ)]=Zp(Z|X,θold)log p(X,Z|θ)

这里的期望,对应EM算法的E步骤,接下来的M步骤就是最大化这个期望。正好与EM算法名称所表达相符。
  在E步骤中,使用当前参数值θold寻找潜在变量的后验概率分布p(Z|X,θold).然后,使用这个后验概率分布计算完整数据对数似然期望[注2]

在M步骤中,最大化下式

(9.31)θnew=arg maxθEZp(Z|X,θold)[log p(X,Z|θ)]

来确定修正后的参数θnew。在上述定义中,对数操作时直接作用与联合概率分布p(X,Z|θ),并没有像公式(9.29)那样作用于和式。而且根据上述假设,对于这个式子的最大化是容易的。一般的EM算法总结如下:

  • 选择参数θold的一个初始设置
  • E步骤。计算后验概率及期望

p(Z|X,θold)

(9.30)EZp(Z|X,θold)[log p(X,Z|θ)]=Zp(Z|X,θold)log p(X,Z|θ)

  • M步骤。计算θnew,由下式给出。

(9.31)θnew=arg maxEZp(Z|X,θold)[log p(X,Z|θ)]

  • 检查对数似然函数或者参数的收敛性。如果不满足收敛条件,则

θoldθnew

[注1]

   如何理解原文中“由于我们不能使用完整数据的对数似然函数,因此我考虑在潜在变量的后验概率分布下,使用它的期望代替。”它的期望表示如下:

EZp(Z|X,θold)[log p(X,Z|θ)]=Zp(Z|X,θold)log p(X,Z|θ)

开始的困惑:不是不能使用完整数据的对数似然函数吗?为什么期望公式还是对p(X,Z|θ)取对数操作(上述的它是指联合变量X,Z的分布的似然函数)。我的理解:对函数取对数操作是不依赖函数自变量,函数自变量的取值仅仅是影响最后的结果,但不影响取对数操作本身。举个最简单的例子。函数f(x)=ex, 对这个函数取对数,可以得到logf(x)=x。这里并没有因为不知x的取值,而影响到取对数操作本身,但是x的取却影响最终的结果。

[注2]
  文中提到,在潜在变量的后验分布下,使用联合变量X,Z分布的似然函数的期望,来代表完整数据{X,Z}的对数似然。这个期望

EZp(Z|X,θold)[log p(X,Z|θ)]=Zp(Z|X,θold)log p(X,Z|θ)

是一个关于参数θ的函数

  问题:为什么EM算法还可以求解最大后验概率解?

posted @   星辰大海,绿色星球  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示