PRML读书笔记——混合模型与EM

如果观测变量上的边缘概率分布很复杂,可以引入潜在变量,得到观测变量和潜在变量的更加便于计算的联合概率分布。利用联合概率分布分析观测变量的概率。也就是说,潜在变量的引入是的复杂的概率分布可以由简单的分量组成。

EM算法是找到具有潜在变量的模型的最大似然解的方法,本章的主要目的是讲解EM算法。首先通过Kmeans聚类和混合高斯模型引出EM算法,最后给出EM算法的通用形式和理论说明。

K均值聚类

这里介绍K均值是因为它本质上是潜在变量的一个例子,本质也是在用EM算法求解。

所谓聚类,就是根据一定的准则将数据按照相似性归类到某个类别上。就K
均值而言,对于每个数据点 xn ,我们引⼊⼀组对应的⼆值指⽰变量 rnk{0,1} ,其中 k=1,...,K 表⽰数据点 xn 属于K个聚类中的哪⼀个(注意,这个 rnk 其实就是潜在变量),从⽽如果数据点 xn 被分配到类别k,那么 rnk=1 ,且对于 jk ,有 rnj=0 。这被称为“1-of-K”表⽰⽅式。之后我们可以定义⼀个⽬标函数,有时被称为失真度量:

J=n=1Nk=1Krnkxnuk2

它表⽰每个数据点与它被分配的向量 μk 之间的距离的平⽅和。我们的⽬标是找到 {rnk} {uk} 的值,使得 J 达到最⼩值。

下面用迭代的方法分别对两个变量进行优化。

首先确定rnk,即对每个数据分别进行最优化,只要满足 xnuk2 最小,则令 rnk=1 。这相当于E步

然后优化 uk ,固定 rnk ,则 J 是它的二次函数,直接求导计算最大值,可得:

uk=nrnkxnnrnk

所以对中心点的更新就是计算均值。

这里写图片描述

K均值算法经常被用于在EM算法之前初始化高斯混合模型的参数。它的基础是将平⽅欧⼏⾥得距离作为数据点与代表向量之间不相似程度的度量。这
不仅限制了能够处理的数据变量的类型(例如,它不能处理某些或全部变量表⽰类别标签的情形),⽽且使得聚类中⼼的确定对于异常点不具有鲁棒性。

推广的K均值算法:

(1)K中心点算法

(2)把硬分配转为软分配,如混合高斯、模糊聚类

混合高斯

考虑离散变量的混合高斯模型,对应的概率分布为:

p(x)=k=1KπkN(x|uk,Σk)

现在引入K维的二值随机变量z(潜在变量),其中一个特定的元素 zk 等于1,其余所有的元素等于0。于是 zk 的值满⾜ zk{0,1} kzk=1 ,并且我们看到根据哪个元素⾮零,向量 z K个可能的状态。我们根据边缘概率分布 p(z) 和条件概率分布 p(x|z) 定义联合概率分布 p(x,z) ,有:

p(x,z)=p(z)p(x|z)

则, z 的边缘概率分布根据混合系数πk进行赋值,即:

p(zk=1)=πk

因为z使用”1-of-K“的表示方法,因此有:

p(z)=k=1Kπzkk

类似地,有:

p(x|z)=p(x|zk=1)=N(x|uk,Σk)=k=1KN(x|uk,Σk)zk

因此,边缘概率分布:

p(x)=zp(z)p(x|z)=k=1KπkN(x|uk,Σk)

这就验证了如此引入 z 得到的模型是混合高斯模型,z对应的后验概率分布为:

r(zk)p(zk=1|x)=p(zk=1)p(x|zk=1)Kj=1p(zj=1)p(x|zj=1)=πkN(x|uk,Σk)Kj=1πjN(x|uj,Σk)

下面考虑求解对应的参数 uk Σk πk

如果用最大似然求解,则:

lnp(X|π,u,Σ)=n=1Nln{k=1KπkN(xn|uk,Σk)}

这里ln里面有求和的形式,求解困难,所以需要采用EM算法

EM算法基本步骤:

(1)初始化各个参数 uk Σk πk 。计算对数似然函数的初始值

(2)E步骤:使用当前参数计算潜在变量的后验概率

r(znk)=πkN(xn|uk,Σk)Kj=1πjN(xn|uj,Σk)

(3)M步骤:使用当前的潜在变量重新估计参数

unewk=1Nkn=1Nr(znk)xn

Σnewk=1Nkn=1Nr(znk)(xnunewk)(xnunewk)T

πnewk=NkN

其中

Nk=n=1Nr(znk)

(4)计算对数似然函数

lnp(X|π,u,Σ)=n=1Nln{k=1KπkN(xn|uk,Σk)}


从前面这两个例子可以看出,引入潜在变量,E步骤就是固定原有参数,计算潜在变量的值,使得似然函数最大,这个潜在变量往往就是对应的后验;M步骤在E步骤得到的潜在变量的前提下,重新计算似然函数的最大值,更新参数。

EM算法

EM算法的目标是找到具有潜在变量的模型的最大似然解

现在我们将所有观测数据的集合记作 X ,其中第n⾏表⽰xTn 。类似地,我们将所有潜在变量的集合记作 Z ,对应的⾏为zTn 。所有模型参数的集合被记作 θ ,因此对数似然函数为:

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

现在从另一个视角出发,分析EM算法的求解过程。

假定对于 X 中的每个观测,我们都有潜在变量Z的对应值。我们将 {X,Z} 称为完整数据集,并且我们称实际的观测数据集 X 是不完整的。完整数据集的对数似然函数的形式为ln p(X,Z|θ)并且我们假定对这个完整数据的对数似然函数进⾏最⼤化是很容易的

在实际应⽤中,我们往往没有完整数据集 {X,Z} ,只有不完整的数据 X 。我们关于潜在变量Z的取值的知识仅仅来源于后验概率分布 p(Z|X,θ) 。由于我们不能使⽤完整数据的对数
似然函数,因此我们反过来考虑在潜在变量的后验概率分布下,它的期望值,这对应于EM算法中的E步骤。在接下来的M步骤中,我们最⼤化这个期望。如果当前对于参数的估计为 θold ,那么⼀次连续的E步骤和M步骤会产⽣⼀个修正的估计 θnew

在E步骤中,我们使⽤当前的参数值 θold 寻找潜在变量的后验概率分布 p(Z|X,θold) 。然后,我们使⽤这个后验概率分布计算完整数据对数似然函数对于⼀般的参数值θ的期望。这个期望被记作 Q(θ,θold)

Q(θ,θold)=Zp(Z|X,θold)ln p(X,Z|θ)

在M步骤,最大化下式来确定修正后的参数 θnew

θnew=argmaxθQ(θ,θold)

所以,现在来说,EM算法的另一种求解方法的步骤如下:

(1)选择参数 θold 的一个初始设置

(2)E步骤,计算 p(Z|X,θold)

(3)M步骤,计算 θnew ,由下式给出。

θnew=argmaxθQ(θ,θold)

(4)检查对数似然函数或者参数值的收敛性。如果不满足收敛准则,那么更新参数 θ ,即 θoldθnew ,并回到步骤2

一般形式的EM算法

考虑⼀个概率模型,其中我们将所有的观测变量联合起来记作 X ,将所有的隐含变量记作Z。联合概率分布 p(X,Z|θ) 由⼀组参数控制,记作 θ 。我们的⽬标是最⼤化似然函数:

p(X|θ)=Zp(X,Z|θ)

我们假设直接最优化 p(X|θθ) ⽐较困难,但是最优化完整数据似然函数 p(X,Z|θ) 就容易得多。接下来,我们引⼊⼀个定义在潜在变量上的分布 q(Z) 。我们观察到,对于任意的 q(Z) ,下⾯的分解成⽴

ln p(X|θ)=L(q,θ)+KL(qp)

其中,我们定义:

L(q,θ)=Zq(Z)ln {p(X,Z|θ)q(Z)}

KL(qp)=Zq(Z)ln {p(Z|X,θ)q(Z)}

这里, L(q,θ) 是概率分布 q(Z) 的泛函,并且是参数 θ 的函数。注意, L(q,θ) 包含了X和Z的联合概率分布;而 KL(qp) 包含了给定X条件下,Z的条件概率分布。

因为 KL(qp) q(Z) p(Z|X,θ) 的KL散度,它是大于等于0的,当且仅当 q(Z)=p(Z|X,θ) 时等号成立。因此, L(q,θ)<=ln p(X|θ) ,即 L(q,θ) ln p(X|θ) 的一个下界。

EM算法是一个两阶段的迭代优化算法,可以使用上面定义的分解式来定义EM算法。

在E步骤时,下界 L(q,θold) 关于 q(Z) 被最大化,而 θold 保持固定。因为 ln p(X|θold) 本身不依赖 q(Z) ,所以 L(q,θold) 的最大值出现在KL散度为0的时候,也就是 q(Z)=p(Z|X,θold) 的时候,此时,下界是对数似然函数,如下:

这里写图片描述

在M步骤时, q(Z) 保持固定,下界 L(q,θ) 关于 θ 进行最大化,得到新的值 θnew ,这会使得下界 L 增大(除非已经达到极大值),然后导致对应的对数似然函数增加;由于概率分布q由旧的参数确定,并且在M步骤保持固定,因此它不会等于新的后验概率分布 p(Z|X,θnew) ,从而 KL 散度非零。于是,对数似然函数的增大量大于下界的增大量,如下:

这里写图片描述

EM算法的计算也可以被看做是参数空间的运算。这⾥,红⾊曲线表⽰(不
完整数据)对数似然函数,它的最⼤值是我们想要得到的。我们⾸先选择某个初始的参数值 θold ,然后在第⼀个E步骤中,我们计算潜在变量上的后验概率分布,得到了 L(q,θold) 的⼀个更⼩的下届,它的值等于在 θold 处的对数似然函数值,⽤蓝⾊曲线表⽰。注意,下界与对数似然函数在 θold 处以切线的⽅式连接。在M步骤中,下界被最⼤化,得到了新的值 θnew ,这个值给出了⽐ θold 处更⼤的对数似然函数值。接下来的E步骤构建了⼀个新的下界,它在 θnew 处与对数似然函数切线连接,⽤绿⾊曲线表⽰。

这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值