浅谈高斯混合模型与EM算法 - An overview of GMM and EM algorithm

EM算法是一种用于含有隐变量的概率模型参数估计的迭代方法。本文详细介绍了EM算法的E-Step和M-Step,以及如何用EM算法学习高斯混合模型。通过实例展示了在高斯混合模型中,如何利用EM算法进行无监督学习来估计模型参数。

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

EM算法是一种迭代算法,用于含有隐变量(latent variable)的概率模型参数的极大似然估计,或极大后验概率估计。EM算法也是一种无监督机器学习算法与K-means算法十分类似。

Expectation-Maximization 算法简述

如果概率模型仅含有可观测变量,那么给定数据,可以直接用极大似然法估计模型参数,或用贝叶斯法估计模型参数。然而如果模型含有隐变量,就不能简单的使用这些估计方法。下面我们讨论含有隐变量的概率模型参数极大似然估计法,即EM算法。

变量定义:

  • Y Y Y:观测的随机变量数据,或称不完全数据(incomplete-data)。
  • Z Z Z:隐随机变量数据。 Y Y Y Z Z Z 连在一起成为完全数据(complete-data)。
  • θ \theta θ:需要估计的模型参数。

EM算法通过迭代的方式求不完全数据对数似然函数 L ( θ ) = log ⁡ P ( Y ∣ θ ) L(\theta)=\log P(Y|\theta) L(θ)=logP(Yθ) 的极大似然估计。介绍EM算法之前,我们首先介绍其核心——Q函数
Q ( θ , θ ( i ) ) = E Z [ log ⁡ P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] Q(\theta,\theta^{(i)}) = E_{Z}[\log P(Y,Z | \theta)|Y,\theta^{(i)}] Q(θ,θ(i))=EZ[logP(Y,Zθ)Y,θ(i)] 它是完全数据的对数似然函数 log ⁡ P ( Y , Z ∣ θ ) \log P(Y,Z | \theta) logP(Y,Zθ) 关于给定的观测数据 Y Y Y 和当前参数 θ ( i ) \theta^{(i)} θ(i) 下对隐藏数据 Z Z Z 的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i)) 的期望值。下面我们导出EM算法:


我们的目标是极大化观测数据关于参数的对数似然函数,即极大化1 L ( θ ) = log ⁡ P ( Y ∣ θ ) = log ⁡ ∑ Z P ( Y , Z ∣ θ ) = log ⁡ ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) L(\theta) = \log P(Y|\theta) = \log\sum_{Z}P(Y,Z|\theta) = \log\sum_{Z}P(Y |Z,\theta)P(Z|\theta) L(θ)=logP(Yθ)=logZP(Y,Zθ)=logZP(YZ,θ)P(Zθ)

由于包含了隐变量和求和(或积分)的对数,直接极大化非常困难。因此我们采用迭代的方法逐步近似,假设第 i i i 次迭代后参数的估计值是 θ ( i ) \theta^{(i)} θ(i)。我们希望新的估计值能提高 L ( θ ) L(\theta) L(θ) 的值,并逐步收敛到极大值。基于此思路,我们考虑更新后的增量:
L ( θ ) − L ( θ ( i ) ) = log ⁡ ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) − log ⁡ P ( Y ∣ θ ( i ) ) L(\theta)-L(\theta^{(i)}) = \log\left(\sum_{Z}P(Y |Z,\theta)P(Z|\theta)\right) - \log P(Y|\theta^{(i)}) L(θ)L(θ(i))=log(ZP(YZ,θ)P(Zθ))logP(Yθ(i))
利用Jensen不等式2进行放缩,可求出其下界:

L ( θ ) − L ( θ ( i ) ) = log ⁡ ( ∑ Z P ( Y ∣ Z , θ ( i ) ) P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Y ∣ Z , θ ( i ) ) ) − log ⁡ P ( Y ∣ θ ( i ) ) ≥ ∑ Z P ( Y ∣ Z , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Y ∣ Z , θ ( i ) ) − log ⁡ P ( Y ∣ θ ( i ) ) = ∑ Z P ( Y ∣ Z , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Y ∣ Z , θ ( i ) ) P ( Y ∣ θ ( i ) ) \begin{aligned} L(\theta)-L(\theta^{(i)}) &= \log\left(\sum_{Z}P(Y |Z,\theta^{(i)})\frac{P(Y |Z,\theta)P(Z|\theta)}{P(Y |Z,\theta^{(i)})}\right) - \log P(Y|\theta^{(i)}) \\ &\geq \sum_{Z}P(Y |Z,\theta^{(i)})\log\frac{P(Y |Z,\theta)P(Z|\theta)}{P(Y |Z,\theta^{(i)})} - \log P(Y|\theta^{(i)}) \\ &= \sum_{Z}P(Y |Z,\theta^{(i)})\log\frac{P(Y |Z,\theta)P(Z|\theta)}{P(Y |Z,\theta^{(i)})P(Y|\theta^{(i)})} \end{aligned} L(θ)L(θ(i))=log(ZP(YZ,θ(i))P(YZ,θ(i))P(YZ,θ)P(Zθ))logP(Yθ(i))ZP(YZ,θ(i))logP(YZ,θ(i))P(YZ,θ)P(Zθ)logP(Yθ(i))=ZP(YZ,θ(i))logP(YZ,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ) 到这里,我们得到了更新后的一个下界,当然不是下确界:
L ( θ ) ≥ L ( θ ( i ) ) + ∑ Z P ( Y ∣ Z , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Y ∣ Z , θ ( i ) ) P ( Y ∣ θ ( i ) ) L(\theta) \geq L(\theta^{(i)}) + \sum_{Z}P(Y |Z,\theta^{(i)})\log\frac{P(Y |Z,\theta)P(Z|\theta)}{P(Y |Z,\theta^{(i)})P(Y|\theta^{(i)})} L(θ)L(θ(i))+ZP(YZ,θ(i))logP(YZ,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ)

任何使这个下界增大的 θ \theta θ 都可以使我们的目标函数增大,此时我们希望使这个下界尽可能增大,即求解: θ ( i + 1 ) = arg ⁡ max ⁡ θ [ L ( θ ( i ) ) + ∑ Z P ( Y ∣ Z , θ ( i ) ) log ⁡ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Y ∣ Z , θ ( i ) ) P ( Y ∣ θ ( i ) ) ] \theta^{(i+1)} = \arg\max_{\theta}\left[ L(\theta^{(i)}) + \sum_{Z}P(Y |Z,\theta^{(i)})\log\frac{P(Y |Z,\theta)P(Z|\theta)}{P(Y |Z,\theta^{(i)})P(Y|\theta^{(i)})} \right] θ(i+1)=argθmax[L(θ(i))+ZP(YZ,θ(i))logP(YZ,θ(i))P(Yθ(i))P(YZ,θ)P(Zθ)] 求解过程非常直接,我们去掉与 θ \theta θ 无关的项,得到:
θ ( i + 1 ) = arg ⁡ max ⁡ θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y , Z ∣ θ ) ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta^{(i+1)} = \arg\max_{\theta} \left( \sum_{Z}P(Z|Y,\theta^{(i)})\log P(Y,Z|\theta) \right) = \arg\max_{\theta}Q(\theta,\theta^{(i)}) θ(i+1)=argθmax(ZP(ZY,θ(i))logP(Y,Zθ))=argθmaxQ(θ,θ(i)) 反复执行上述过程即可。EM算法的收敛性此处不做讨论。EM算法的另外一个推导参考此文


总结一下,EM算法可分为如下几步:

  1. 初始化参数 θ ( 1 ) \theta^{(1)} θ(1),注意EM算法对初值是敏感的。
  2. E 步:基于 θ ( i ) \theta^{(i)} θ(i),求出 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i))。即求期望。
  3. M 步:以 θ \theta θ 为参数极大化 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)),得到 θ ( i + 1 ) \theta^{(i+1)} θ(i+1)
  4. 当参数变化足够小时停止迭代,否则返回步骤2。

EM算法其实是在给定观测数据的情况下最大化完全数据的似然


这里给出一个混合伯努利分布的例子,简单展示一下EM算法的执行步骤。

假设有一类二值化的数据: x n = { 000110 …   } x_{n} = \{000110\dots\} xn={ 000110} 其中 [ x n ] i = 0  or  1 , i = 1 , 2 , … , D [x_{n}]_{i} = 0 \text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值