EM算法的深入理解

本文深入浅出地介绍了EM算法的原理与应用,探讨了如何处理含有隐变量的概率模型,并通过手写数字图像的非监督聚类实例进行详细解读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在现实应用中,我们往往会遇到“不完整”的训练样本,如某些样本的属性值未知(未观测),而这些未知的属性值统称为隐变量。由于EM算法在这些未观测属性的情形下仍能对模型参数进行估计,所以其应用及其广泛,比如高斯混合模型,隐马尔可夫模型的非监督学习。本文将从不同角度理解并解释EM算法,最后通过手写数字图像的非监督聚类对EM算法进行进一步解释。

1. EM算法的理解

假设X为观测变量,Z表示未观测变量,θ为模型参数。在概率模型中,我们常常根据最大似然估计方法进行参数的估计,即极大化观测数据关于参数的对数似然函数:

logP(X|θ)=logZP(X,Z|θ)

注意到上式包含隐变量以及和的对数,而无法有效求解。而EM算法这一利器正是避开了上式的求解,而是通过Jensen不等式(logjλjyjjλjlogyj,其中λj0,且jλj=1)找到其下界(lower bound),通过不断求解下界的极大化来逼近求解对数似然函数极大化。为了使用Jensen不等式,我们必须把对数似然函数构造成类似的式子如下:
logZP(X,Z|θ)=logZq(Z)P(X,Z|θ)q(Z)

其中上式中q(Z)为概率分布,很显然满足Jensen不等式的条件,因此我们进一步得到
logZP(X,Z|θ)=logZq(Z)P(X,Z|θ)q(Z)Zq(Z)logP(X,Z|θ)q(Z)

那么对数似然函数的下界是L(q,θ)=Zq(Z)logP(X,Z|θ)q(Z)。可以看出下界是关于q(Z)θ的函数,因此EM算法分为两步:
  • 固定θ,得到q(Z)的分布。如果进一步求隐变量Z的期望,则对应EM算法的E-step。这里值得注意的是,q(Z)的分布该如何确定。现在我们回顾一下在Jensen不等式当中,只有当y为常数时,等式成立,也即当P(X,Z|θ)q(Z)=C。通过这个条件,我们能轻易得到q(Z)=p(Z|X,θ)

  • 固定q(Z),优化θ,对应EM算法的M-step。这两个步骤不断重复,直至收敛到局部最优解。

一般来讲,EM算法主要用于含有隐变量的概率模型的学习,针对不完全数据X的最大对数似然函数找到局部最优解。下面从另一个角度解释EM算法:在现实中,我们很难得到完全数据{X,Z},但是我们能根据已有知识能得到隐变量Z的后验概率分布P(Z|X,θ)。虽然我们不能建立完全数据的对数似然函数,但是可以考虑隐变量在其后验分布下的期望值,这样有了隐变量的期望值,则可以构建完全数据的对数似然函数。进一步,参数的优化目标为

maxθEp(Z|X,θold)[logp(X,Z|θ)]=maxθZp(Z|X,θold)logp(X,Z|θ)

我们首先利用当前参数θold来得到隐变量的后验分布,在根据完全数据的对数似然函数在后验分布下的期望下更新θ

如果我们对对数似然函数的Jensen不等式进行进一步的分析,我们会发现如下等式成立:

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

其中
L(q,θ)=Zq(Z)logp(X,Z|θ)q(Z)KL(q||p)=Zq(Z)logp(Z|X,θ)q(Z)

L(q,θ)为下界,包含XZ的联合概率分布;而KL(q||p)包含Z的条件分布。Kullback-Leibler divergene 具有非负性,KL(q||p)0,且只有当q(Z)=p(Z|X,θ)时,等号成立。则此时下界L(q,θ)等于不完全数据的对数似然函数。
2. 优化最大后验概率

EM算法不仅能优化求解不完全数据的对数似然函数,还能优化求解在不完全数据下参数的后验概率。一般,根据参数的最大后验概率估计属于频率学派,往往需要事先给定参数的先验分布p(θ)。待优化的目标函数为最大化后验概率的对数:

logp(θ|X)=logp(X|θ)+logp(θ)logp(X)

根据前面的Jensen不等式,我们能得到logp(X|θ)的下界L(q,θ),则
logp(θ|X)L(q,θ)+logp(θ)logp(X)

其中logp(X)为常数项。上式的优化又可交替的优化qθ。与标准的最大似然对比,紧紧只增加了参数的先验项。
3. 手写数字图像的建模

下面通过一个手写数字图像的非监督分类来加深对EM算法的理解。假设手写数字图像中笔画所占像素点取值为1,而其它像素点取值为0。那么,整个图像向量(将像素点矩阵取值拉成一列向量)x为一个服从伯努力分布的多元随机变量。假设给定无标签数据集X={xn}Nn=1,其中xnRD,现在我们的任务是对其进行分类。

由于给定的数据集中有0~9等10个类别,因此我们引入混合的伯努力分布对数据集进行模型建立,这里我们取K=10个伯努力分布。那么观测数据集X的对数似然函数为

logp(X|u,π)=n=1Nlog{k=1Kπkp(xn|uk)}

同样,由于和对数的存在,使得最大似然解没有闭合表达式。因此我们采用EM算法进行求解。针对每一个数据xn,我们引入显示的隐变量zn,且znRK,其中zn中尤且只有一个元素对应为1,其它为0,即表示对应数据xn所属类别。根据EM算法,我们构造完全数据{X,Z}的对数形式:

logp(X,Z|u,π)=nNlogp(xn,zn|u,π)=nNlogp(xn|zn,u)p(zn|π)

其中
p(xn|zn,u)=kp(xn|uk)znkp(xn|uk)=iDuxniki(1uki)(1xni)p(zn|π)=kπznkk

其中,值得注意的是xn中属性值之间在类别确定的情况下假设相互独立,也即没有考虑像素点之间的邻域相关性。接下来,我们构造完全数据的对数形式的期望
EZ[logp(X,Z|u,π)]=nNkKE[znk]{logπk+iD[xniloguki+(1xni)log(1uki)]}

最后我们通过EM算法的步骤即可对参数{uk,πk}Kk=1的估计。这里值得指出的是E[znk]的计算,由于znk为一个二值(0/1)变量,所以E[znk]=p(znk=1|xn,u,π),那么
p(znk=1|xn,u,π)=p(xn|znk=1,u)p(znk=1|π)znkp(xn|znk=1,u)p(znk=1|π)

注意当znk=0时,表示对应数据xn不属于k类,则属于其他类别。因此上式转化为
p(znk=1|xn,u,π)=p(xn|uk)πkkp(xn|uk)πk

这样有了E[znk],我们就得到了完全数据的对数似然函数,只需要对参数uk,πk分别求偏导数,令其等于0,就能得到其闭合解形式。需要注意的是kπk=1约束。有了模型的参数,我们就能通过数据对应的隐变量zn得到其后验概率,进而判别数据xn的类别。

EM算法使用两个步骤交替计算:第一步期望步,利用当前估计参数来计算对数似然的期望值;第二部最大化步,寻找能使第一步产生的似然期望最大化的参数值。通俗的讲,EM算法首先对缺失数据进行估计,再对整个完全数据进行参数估计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值