模式识别——EM算法

本文深入探讨了EM算法的原理,包括密度估计、EM算法的具体步骤及其一般形式,通过GMM特例引出EM算法的一般流程,详细解析了如何通过E步和M步迭代优化参数,最终达到似然函数最大化的目标。

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

一、密度估计
  对于某些有一定意义的数据,其可能不服从于任何标准的概率分布,使用密度估计算法估计其概率密度。一般的,一个非标准的分布都可以使用多个高斯函数进行拟合,称为高斯混合模型【GMM】。
  考虑未知的随机变量z\bm{z}z,其可能是隐藏的,或者未知的。考虑x(i),z(i)\bm{x}^{(i)}, \bm{z}^{(i)}x(i),z(i)的联合概率分布p(x(i),z(i))=p(x(i)∣z(i))p(z(i))p(\bm{x}^{(i)}, \bm{z}^{(i)}) = p(\bm{x}^{(i)}|\bm{z}^{(i)})p(\bm{z}^{(i)})p(x(i),z(i))=p(x(i)z(i))p(z(i))z(i)∼B(k,ϕ)\bm{z}^{(i)}\sim B(k, \phi)z(i)B(k,ϕ)代表k个高斯分布的概率,以及x(i)∣z(i)=j∼N(μj,Σj)\bm{x}^{(i)}|\bm{z}^{(i)} = j \sim N(\bm\mu_j, \bm\Sigma_j)x(i)z(i)=jN(μj,Σj)代表已知的第j个高斯分布的数据概率分布。
  如果z(i)\bm{z}^{(i)}z(i)是已知的,则可以使用极大似然估计,形如lnL(ϕ,μ,Σ)=∑i=1mlog p(x(i),z(i);ϕ,μ,Σ)lnL(\phi, \bm\mu, \bm\Sigma) = \sum_{i =1}^m log\ p(\bm{x}^{(i)}, \bm{z}^{(i)};\phi, \bm\mu, \bm\Sigma)lnL(ϕ,μ,Σ)=i=1mlog p(x(i),z(i);ϕ,μ,Σ)可以得到ϕj=∑i=1m1{z(i)=j}/mμj=∑i=1m1{c(i)=j}x(i)/∑i=1m1{c(i)=j}\phi_j = \sum_{i=1}^m 1\{z^{(i)} = j\}/m \\ \bm\mu_j = \sum_{i = 1}^m 1\{c^{(i)} = j\}\bm{x}^{(i)}/ \sum_{i = 1}^m 1\{c^{(i)} = j\}ϕj=i=1m1{z(i)=j}/mμj=i=1m1{c(i)=j}x(i)/i=1m1{c(i)=j}其称为高斯判别模型【GDA】。然而z(i)\bm{z}^{(i)}z(i)是未知的,可以考虑尝试使用模型猜测z(i)\bm{z}^{(i)}z(i)的值,使用极大似然拟合出更好的参数的值,再去猜测z(i)\bm{z}^{(i)}z(i)的值,并进行迭代,该算法称为最大期望算法。


二、EM算法
  EM算法的步骤如下:
  (1)猜测未知的z(i)\bm{z}^{(i)}z(i)的值,称为E步;
  (2)最大似然估计参数的值,称为M步。
  (3)迭代(1)-(2),直到收敛。

2.1 E步
  E步用于猜测未知的z(i)\bm{z}^{(i)}z(i)的值,形如wj(i)=p(z(i)=j∣x(i);ϕ,μ,Σ)w_j^{(i)} = p(\bm{z}^{(i)} = j|\bm{x}^{(i)}; \phi, \bm\mu, \bm\Sigma)wj(i)=p(z(i)=jx(i);ϕ,μ,Σ)该步计算了z(i)=j\bm{z}^{(i)} = jz(i)=j的概率,即wj(i)w_j^{(i)}wj(i)表示了x(i)\bm{x}^{(i)}x(i)由第j个高斯分布生成占所有高斯分布生成的概率,根据贝叶斯公式p(Bi∣A)=P(Bi)P(A∣Bi)/∑j=1nP(Bj)P(A∣Bj)p(B_i|A) = P(B_i)P(A|B_i)/\sum_{j=1}^n P(B_j)P(A|B_j)p(BiA)=P(Bi)P(ABi)/j=1nP(Bj)P(ABj)形如z^(j)=p(x(i)∣z(i)=j)p(z(i)=j)/∑l=1cp(x(i)∣z(i)=l)p(z(i)=l)\hat\bm{z}^{(j)} = p(\bm{x}^{(i)}|\bm{z}^{(i)} = j)p(\bm{z}^{(i)} = j)/\sum_{l=1}^cp(\bm{x}^{(i)}|\bm{z}^{(i)} = l)p(\bm{z}^{(i)} = l)z^(j)=p(x(i)z(i)=j)p(z(i)=j)/l=1cp(x(i)z(i)=l)p(z(i)=l)
2.2 M步
  M步用于更新对参数ϕ\phiϕ的更新,形如ϕj=∑i=1mwj(i)/mμj=∑i=1mwj(i)x(i)/∑i=1mx(i)Σj=∑i=1mwj(i)(x(i)−μj)(x(i)−μj)T/∑i=1mx(i)\phi_j = \sum_{i=1}^m w_j^{(i)} / m \\ \bm\mu_j = \sum_{i=1}^m w_j^{(i)}\bm{x}^{(i)}/\sum_{i=1}^m \bm{x}^{(i)} \\ \bm\Sigma_j = \sum_{i=1}^m w_j^{(i)}(\bm{x}^{(i)} - \bm\mu_j)(\bm{x}^{(i)} - \bm\mu_j)^T/\sum_{i=1}^m \bm{x}^{(i)}ϕj=i=1mwj(i)/mμj=i=1mwj(i)x(i)/i=1mx(i)Σj=i=1mwj(i)(x(i)μj)(x(i)μj)T/i=1mx(i)  其与z(i)\bm{z}^{(i)}z(i)已知情况的区别仅仅是第i个点不是由第j个高斯分布生成的指示函数,而是概率,这对应了z(i)\bm{z}^{(i)}z(i)已知与z(i)\bm{z}^{(i)}z(i)未知的情况。


三、EM算法的一般形式
  GMM只是EM算法的一个特例,接下来介绍EM算法的一般形式。

3.1 琴生不等式
  首先介绍琴生【Jensen】不等式。考虑凸函数fff,取随机变量x\bm{x}x,那么有f(E[x])≤E[f(x)]f(E[\bm{x}]) \le E[f(\bm{x})]f(E[x])E[f(x)]其直观理解为凸函数的割线在函数曲线上方。若fff是严格凸的,即d2f/dx2>0d^2f/dx^2 > 0d2f/dx2>0,那么上述等号当且仅当x=E[x]\bm{x} = E[\bm{x}]x=E[x]时成立,即x\bm{x}x以1的概率取得某常数值。

3.2 最大似然下界理论
  考虑模型的概率分布p(x,z;θ)p(\bm{x}, \bm{z};\bm\theta)p(x,z;θ),其中,仅有x\bm{x}x可以被观测,尝试最大似然lnL(θ)=∑i=1mlog p(x(i);θ)=∑i=1mlog∑z(i)p(x(i),z(i);θ)\begin{aligned}lnL(\bm\theta) &= \sum_{i=1}^mlog\ p(\bm{x}^{(i)};\bm\theta)\\&= \sum_{i=1}^mlog \sum_{\bm{z}^{(i)}}p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)\end{aligned}lnL(θ)=i=1mlog p(x(i);θ)=i=1mlogz(i)p(x(i),z(i);θ)EM算法就是极大似然估计的过程,但其并非直接求解最大似然导数,其迭代的对似然函数创造了一个下界并寻找下界的最大值,从而靠近似然函数的最大值。由于z\bm{z}z未被观测,因此似然函数的变量仅有x\bm{x}x,因此,有maxθ lnL(θ)=maxθ ∑i=1mlog p(x(i);θ)=maxθ ∑i=1mlog∑z(i)p(x(i),z(i);θ)\begin{aligned}max_\bm\theta\ lnL(\bm\theta) &= max_\bm\theta\ \sum_{i=1}^mlog\ p(\bm{x}^{(i)};\bm\theta) \\&=max_\bm\theta\ \sum_{i=1}^mlog \sum_{\bm{z}^{(i)}}p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)\end{aligned}maxθ lnL(θ)=maxθ i=1mlog p(x(i);θ)=maxθ i=1mlogz(i)p(x(i),z(i);θ)引入辅助函数Qi(z(i))Q_i(\bm{z}^{(i)})Qi(z(i)),其是未知随机变量z(i)\bm{z}^{(i)}z(i)的概率分布,有Qi(z(i))≥0∑z(i)Qi(z(i))=1Q_i(\bm{z}^{(i)}) \ge 0 \\ \sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)}) = 1Qi(z(i))0z(i)Qi(z(i))=1再考虑数学期望公式EX=∑k=1mXkpkEX = \sum_{k=1}^m X_kp_kEX=k=1mXkpk那么有∑i=1mlog∑z(i)p(x(i),z(i);θ)=∑i=1mlog∑z(i)Qi(z(i))p(x(i),z(i);θ)/Qi(z(i))=∑i=1mlogE[p(x(i),z(i);θ)/Qi(z(i))]\begin{aligned}\sum_{i=1}^mlog \sum_{\bm{z}^{(i)}}p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)& = \sum_{i=1}^mlog \sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)})p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)}) \\&= \sum_{i=1}^mlog E[p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)})] \end{aligned}i=1mlogz(i)p(x(i),z(i);θ)=i=1mlogz(i)Qi(z(i))p(x(i),z(i);θ)/Qi(z(i))=i=1mlogE[p(x(i),z(i);θ)/Qi(z(i))]这里是对所有的z(i)\bm{z}^{(i)}z(i)对其概率分布乘以其函数进行求和,即该函数的期望。
  对数函数log(x)log(x)log(x)是一个凹函数,那么根据琴生不等式,有log(EX)≥E[log(X)]log(EX) \ge E[log(X)]log(EX)E[log(X)]∑i=1mlogE[p(x(i),z(i);θ)/Qi(z(i))]≥∑i=1mE[logp(x(i),z(i);θ)/Qi(z(i))]=∑i=1m∑z(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))\begin{aligned}\sum_{i=1}^mlog E[p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)})]& \ge \sum_{i=1}^mE[log p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)})] \\&= \sum_{i=1}^m \sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)})log(p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)})) \end{aligned}i=1mlogE[p(x(i),z(i);θ)/Qi(z(i))]i=1mE[logp(x(i),z(i);θ)/Qi(z(i))]=i=1mz(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))lnL(θ)≥∑i=1m∑z(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))lnL(\bm\theta) \ge \sum_{i=1}^m \sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)})log(p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)}))lnL(θ)i=1mz(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))为了取得下界的最优值,即等号成立,即需∑i=1mlogE[p(x(i),z(i);θ)/Qi(z(i))]=∑i=1mE[logp(x(i),z(i);θ)/Qi(z(i))]\sum_{i=1}^mlog E[p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)})] = \sum_{i=1}^mE[log p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)})] i=1mlogE[p(x(i),z(i);θ)/Qi(z(i))]=i=1mE[logp(x(i),z(i);θ)/Qi(z(i))]又需要对任何数据均有等式成立,因此需要选择可能的分配QQQ来保证。根据等号成立的条件,需要p(x(i),z(i);θ)/Qi(z(i))=Constp(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)}) = Constp(x(i),z(i);θ)/Qi(z(i))=Const即对任何z(i)\bm{z}^{(i)}z(i)都取得相同的值,即Qi(z(i))=Θ(p(x(i),z(i);θ)) Q_i(\bm{z}^{(i)}) = \Theta(p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta))Qi(z(i))=Θ(p(x(i),z(i);θ))∑z(i)Qi(z(i))=1\sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)}) = 1z(i)Qi(z(i))=1因此Qi(z(i))=p(x(i),z(i);θ)/∑z(i)p(x(i),z(i);θ)=p(x(i),z(i);θ)/p(x(i);θ)=p(z(i)∣x(i);θ)\begin{aligned}Q_i(\bm{z}^{(i)})& = p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/\sum_{\bm{z}^{(i)}}p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta) \\&= p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/p(\bm{x}^{(i)};\bm\theta) \\&= p(\bm{z}^{(i)}|\bm{x}^{(i)};\bm\theta) \end{aligned}Qi(z(i))=p(x(i),z(i);θ)/z(i)p(x(i),z(i);θ)=p(x(i),z(i);θ)/p(x(i);θ)=p(z(i)x(i);θ)

3.3 EM算法理论
  在E步中猜测z(i)\bm{z}^{(i)}z(i)的值,即是Qi(z(i))=p(z(i)∣x(i);θ)Q_i(\bm{z}^{(i)}) = p(\bm{z}^{(i)}|\bm{x}^{(i)};\bm\theta)Qi(z(i))=p(z(i)x(i);θ)这为当前的参数ϕ\phiϕ的似然函数确定了紧下界。
  在M步中更新ϕ\phiϕ的值,即是ϕ=argmaxϕ ∑i=1m∑z(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))\phi = argmax_{\phi}\ \sum_{i=1}^m \sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)})log(p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)}))ϕ=argmaxϕ i=1mz(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))这在当前的紧下界中找到似然函数下界中的最大值,从而更新参数ϕ\phiϕ
  从凸优化的角度考虑,可以考虑J(ϕ,Q)=∑i=1m∑z(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))J(\phi, Q) = \sum_{i=1}^m \sum_{\bm{z}^{(i)}}Q_i(\bm{z}^{(i)})log(p(\bm{x}^{(i)}, \bm{z}^{(i)};\bm\theta)/Q_i(\bm{z}^{(i)}))J(ϕ,Q)=i=1mz(i)Qi(z(i))log(p(x(i),z(i);θ)/Qi(z(i)))其中,E步选择QQQ最优化JJJ,M步选择ϕ\phiϕ最优化JJJ,这是一种坐标上升法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值