期望最大化算法EM

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

\[log \ p(X|\theta) = log \ \{ \sum_Z p(X,Z|\theta)\} \tag{9.29} \]

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

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

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

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

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

\[E_{Z \sim p(Z|X, \theta^{old})}[log \ p(X,Z|\theta)] = \sum_{Z}p(Z|X, \theta^{old}) log \ p(X,Z|\theta) \tag{9.30} \]

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

在M步骤中,最大化下式

\[\theta^{new} = \underbrace{arg\ max}_{\theta} E_{Z \sim p(Z|X, \theta^{old})}[log \ p(X,Z|\theta)] \tag{9.31} \]

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

  • 选择参数\(\theta^{old}\)的一个初始设置
  • E步骤。计算后验概率及期望

\[p(Z|X, \theta^{old}) \]

\[E_{Z \sim p(Z|X, \theta^{old})}[log \ p(X,Z|\theta)] = \sum_{Z}p(Z|X, \theta^{old}) log \ p(X,Z|\theta) \tag{9.30} \]

  • M步骤。计算\(\theta^{new}\),由下式给出。

\[\theta^{new} = arg\ max E_{Z \sim p(Z|X, \theta^{old})}[log \ p(X,Z|\theta)] \tag{9.31} \]

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

\[\theta^{old} \leftarrow \theta^{new} \]

[注1]

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

\[E_{Z \sim p(Z|X, \theta^{old})}[log \ p(X,Z|\theta)] = \sum_{Z}p(Z|X, \theta^{old}) log \ p(X,Z|\theta) \]

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

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

\[E_{Z \sim p(Z|X, \theta^{old})}[log \ p(X,Z|\theta)] = \sum_{Z}p(Z|X, \theta^{old}) log \ p(X,Z|\theta) \]

是一个关于参数\(\theta\)的函数

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

posted @ 2023-05-21 19:45  星辰大海,绿色星球  阅读(48)  评论(0编辑  收藏  举报