EM算法

EM算法用于寻找含潜在分布的参数的最大似然估计。在高斯混合模型(GMM)中,EM算法通过不断迭代优化,最大化完全对数似然,从而估计模型参数。E-step计算期望,M-step进行参数更新。GMM是多个高斯分布的组合,可用于复杂分布的拟合。

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

EM算法是一种通过观测到的数据,找到含潜在分布的参数的最大似然估计(MLE,Maximum Likelihood Estimate)的通用方法。一般我们称观测到的数据是incomplete的,或有missing values。

那EM算法如果要成功得到MLE,需要将不可观测的complete data和incomplete data联系起来,这样complete data可以被未知参数的函数所描述,MLE求解也变的简单。

EM框架中,我们通常将 logp(Xθ) 称为不完全对数似然(incomplete log data likelihood),而 log p(X,Z|θ) 称为完全对数似然(complete log data likelihood ),EM算法的目标是通过最大化完全对数似然找到参数的合理估计。然而由于我们对隐变量一无所知,因此没办法直接最大化完全对数似然,替代方案是最大化完全对数似然的后验数学期望,这里先给出该算法的参数迭代更新式:

θ(g+1)=argmaxθZlog p(X,Z|θ)p(Z|X,θ(g))dZ(1)

公式推导和解释

求参数 θ 的最大似然:

θMLE=argmaxθ(L(θ))=argmaxθ(log[p(Xθ)])

需要一些trick,上面公式中的 Z 成为模型的latent variable
要证明Eq(1)的EM迭代公式是有效的,那么就需要确保
logp(Xθ(g+1))logp(Xθ(g))

使得最终结果收敛。
所以先看如下证明,已知:
logp(X|θ)=logp(X,Z|θ)logp(Z|X,θ)(2)

Eq(2)式子两边同时对分布 p(Z|X,θ(g)) 在latent变量 Z 上求积分。
=Zlogp(X|θ)p(Z|X,θ(g))dZ=logp(X|θ)

=Zlogp(X,Z|θ)p(Z|X,θ(g))dZQ(θ,θ(g))Zlogp(Z|X,θ)p(Z|X,θ(g))dZH(θ,θ(g))

其中Q的形式和Eq(1)是一样的,如果参数从 θ(g) 迭代到 θ(g+1) ,那么 Q(θ,θ(g+1))Q(θ,θ(g)) ,那么为什么最大化这个Q就可以保证Eq(2)的左边也能增大呢,如果要确保这个关系就需要证明 H(θ,θ(g+1))H(θ,θ(g))
我们知道第g次迭代的时候, θ(g) 使得H值取到最大,即
argmaxθH(θ,θ(g))=argmaxθZlogp(Z|X,θ)p(Z|X,θ(g))dZ=θ(g)

证明对于任意的 θ (里面当然也包括了 θ(g+1) ), H(θ,θ(g))H(θ,θ(g))0
H(θ,θ(g))H(θ,θ(g))=Zlogp(Z|X,θ(g))p(Z|X,θ(g))dZZlogp(Z|X,θ)p(Z|X,θ(g))dZ=Zlogp(Z|X,θ(g))p(Z|X,θ)p(Z|X,θ(g))dZ=Zlogp(Z|X,θ)p(Z|X,θ(g))p(Z|X,θ(g))dZlogZp(Z|X,θ)p(Z|X,θ(g))p(Z|X,θ(g))dZ=logZp(Z|X,θ)dZ=log(1)=0

其中,上面推导过程 的出现是由于Jensus inequality的性质得到的:函数值的期望大于等于期望的函数值。这个性质仅在convex function下成立。

高斯混合模型(GMM)

高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同一类分布但参数不一样,或者是不同类型的分布,比如正态分布和伯努利分布)。

p(X|θ)=l=1kαl(X|μl,σl)l=1kαl=1

and θ={α1,,αk,μ1,,μk,σ1,,σk}

对于数据集 X={x1,,xn} ,引入latent变量 Z={z1,,zn} ,其中每个 zi 表示 xi 属于哪个mixture component。

重新看Eq(1),要通过EM算法来解决一个高斯混合模型的参数估计问题,需要定义 p(X,Z|θ) p(Z|X,θ)

note:下面公式中出现的 l , zi 是等价的

p(X,Z|θ)=l=1kαl(X|μl,σl)=i=1nl=1kαl(xi|μl,σl)

  • 定义 p(X,Z|θ)

    p(X,Z|θ)=i=1np(xi,zi|θ)=i=1np(xi,zi|θ)(μzi,σzi)p(zi|θ)αzi=i=1nαzi(μzi,σzi)

    可以看到 p(X,Z|θ) p(X|θ) 形式更简单。

  • 定义 p(Z|X,θ)

    p(Z|X,θ)=i=1np(zi|xi,θ)=i=1nαzi(μzi,σzi)kl=1αl(μl,σl)

那么,现在就可以把高斯混合模型放在Eq(1)所示的EM算法框架里了

θ(g+1)=argmaxθZlog p(X,Z|θ)p(Z|X,θ(g))dZExpectationMaxmization

  • E-step:
    由于 Z={z1,,zn} 是离散变量,所以积分形式变为求和形式(注意 zi 的取值有k个,n个样本每个样本都有对应的 zi
    z1=1kz2=1kzn=1ki=1nlogαzi+log(xi|μzi,σzi)fi(zi)i=1np(zi|xi,θ(g))p(Z)(3)

    拆开:
    =z1=1kz2=1kzn=1k(f1(z1)+f2(z2)++fn(zn))p(z1,,zn)

    观察第一个term:
    =z1=1kz2=1kzn=1kf1(z1)p(z1,,zn)=z1=1kf1(z1)z2=1kzn=1kp(z1,,zn)=z1=1kf1(z1)p(z1)

    每一个term都可以化简成这么简单的形式,所以
    Eq(3)=i=1nzi=1kfi(zi)p(zi)=i=1nzi=1k(logαzi+log(xi|μzi,σzi))p(zi|xi,θ(g))
  • M-step:
    参数有三个 αl , μl , σl ,分开来求解最大值:

maximizing α :

kl=1ni=1log(αl)p(l|xi,θ(g))α1,...αk=[0,...,0]subject tol=1kαl=1

这种式子的求解一般用Lagrange Multiplier。这里略过详细推导,直接给出结论:

αl=1Ni=1np(l|xi,θ(g))

maximizing μl , σl :

kl=1ni=1log(αl)p(l|xi,θ(g))μ1,...μk,σ1,...σk=[0,...,0]

还是直接给出结果:
μl=ni=1p(l|xi,θ(g))ni=1xip(l|xi,θ(g))

σl=ni=1(xiμl)(xμl)Tp(l|xi,θ(g))ni=1p(l|xi,θ(g))

如果对其中的推导感兴趣,要知道解决这个问题,需要知道一些线性代数恒等式,详细信息可以参考:

J. Bilmes. “A Gentle Tutorial on the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models”

Richard Yi Da Xu slices

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值