机器学习(十)——期望值最大算法(EM算法)

本文围绕期望值最大算法(EM算法)展开。先介绍Jensen不等式,包括凸函数、凹函数下的不等式形式。接着详细推导EM算法,阐述E步骤和M步骤,证明算法收敛性。最后探讨高斯混合,给出E步骤计算方法及M步骤中参数ϕ、μ、Σ的更新规则。

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

10.期望值最大算法(EM算法)

1.Jensen不等式

fff 为一个函数,其定义域(domain)为整个实数域(set of real numbers)。这里要回忆一下,如果函数 fff 的二阶导数 f′′(x)≥0f''(x) \ge 0f(x)0 (其中的 x∈Rx \in RxR),则函数 fff 为一个凸函数(convex function)。如果输入的为向量变量,那么这个函数就泛化了,这时候该函数的海森矩阵(hessian) HHH 就是一个半正定矩阵(positive semi-definite H≥0H \ge 0H0)。如果对于所有的 xxx ,都有二阶导数 f′′(x)>0f''(x) > 0f(x)>0,那么我们称这个函数 fff 是严格凸函数(对应向量值作为变量的情况,对应的条件就是海森矩阵必须为正定,写作 H>0H > 0H>0)。这样就可以用如下方式来表述 Jensen 不等式:

定理(Theorem):fff 是一个凸函数,且设 XXX 是一个随机变量(random variable)。然后则有:
E[f(X)]≥f(EX). E[f(X)] \ge f(EX). E[f(X)]f(EX).
Jensen 不等式也适用于凹函数(concave)fff,但不等式的方向要反过来,也就是对于凹函数,E[f(X)]≤f(EX)E[f(X)] \le f(EX)E[f(X)]f(EX)

2.期望最大算法(EM算法)

假如我们有一个估计问题(estimation problem),其中由训练样本集 {x(1),...,x(m)}\{x^{(1)}, ..., x^{(m)}\}{x(1),...,x(m)} 包含了 mmm 个独立样本。我们用模型 p(x,z)p(x, z)p(x,z) 对数据进行建模,拟合其参数(parameters),其中的似然函数(likelihood)如下所示:
l(θ)=∑i=1mlog⁡p(x;θ)=∑i=1mlog⁡∑zp(x,z;θ) \begin{aligned} l(\theta) &= \sum_{i=1}^m\log p(x;\theta) \\ &= \sum_{i=1}^m\log\sum_z p(x,z;\theta) \end{aligned} l(θ)=i=1mlogp(x;θ)=i=1mlogzp(x,z;θ)
对于每个 iii,设 QiQ_iQi 是某个对 zzz 的分布(∑zQi(z)=1,Qi(z)≥0\sum_z Q_i(z) = 1, Q_i(z)\ge 0zQi(z)=1,Qi(z)0)。则有下列各式1^11
∑ilog⁡p(x(i);θ)=∑ilog⁡∑z(i)p(x(i),z(i);θ)(1)=∑ilog⁡∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))(2)≥∑i∑z(i)Qi(z(i))log⁡p(x(i),z(i);θ)Qi(z(i))(3) \begin{aligned} \sum_i\log p(x^{(i)};\theta) &= \sum_i\log\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta)&(1) \\ &= \sum_i\log\sum_{z^{(i)}}Q_i(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} &(2)\\ &\ge \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}&(3) \end{aligned} ilogp(x(i);θ)=ilogz(i)p(x(i),z(i);θ)=ilogz(i)Qi(z(i))Qi(z(i))p(x(i),z(i);θ)iz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)(1)(2)(3)

1 如果 zzz 是连续的,那么 QiQ_iQi 就是一个密度函数(density),上面讨论中提到的对 zzz 的求和(summations)就要用对 zzz 的积分(integral)来替代。

上面推导(derivation)的最后一步使用了 Jensen 不等式(Jensen’s inequality)。其中的 f(x)=logxf(x) = log xf(x)=logx 是一个凹函数(concave function),因为其二阶导数 f′′(x)=−1/x2&lt;0f&#x27;&#x27;(x) = -1/x^2 &lt; 0f(x)=1/x2<0 在整个定义域(domain) x∈R+x\in R^+xR+ 上都成立。

由(2)式到(3)式证明:


g(z(i))=p(x(i),z(i);θ)Qi(z(i)) g(z^{(i)})=\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} g(z(i))=Qi(z(i))p(x(i),z(i);θ)
因为:
z(i)∼Qi(z(i)) z^{(i)}\sim Q_i(z^{(i)}) z(i)Qi(z(i))
所以:
g(z(i))∼Qi(z(i)) g(z^{(i)})\sim Q_i(z^{(i)}) g(z(i))Qi(z(i))
于是:
E(g(z))=∑z(i)g(z(i))P(g(z(i)))=∑z(i)p(x(i),z(i);θ)Qi(z(i))Qi(z(i)) \begin{aligned} E\left(g(z)\right)&amp;=\sum_{z^{(i)}}g(z^{(i)})P\left(g(z^{(i)})\right)\\ &amp;=\sum_{z^{(i)}}\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}Q_i(z^{(i)}) \end{aligned} E(g(z))=z(i)g(z(i))P(g(z(i)))=z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))
由Jenson不等式:
log(E(g(z)))≥E[log(g(z))] log(E\left(g(z)\right))\ge E[log(g(z))] log(E(g(z)))E[log(g(z))]
不妨再令
h(z)=log(g(z))=log⁡p(x(i),z(i);θ)Qi(z(i)) h(z)=log(g(z))=\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} h(z)=log(g(z))=logQi(z(i))p(x(i),z(i);θ)
所以同理可以得到
E[log(g(z))]=E(h(z))=∑z(i)h(z(i))P(h(z(i)))=∑z(i)h(z(i))Qi(z(i)) E[log(g(z))]=E(h(z))=\sum_{z^{(i)}}h(z^{(i)})P\left(h(z^{(i)})\right)=\sum_{z^{(i)}}h(z^{(i)})Q_i(z^{(i)}) E[log(g(z))]=E(h(z))=z(i)h(z(i))P(h(z(i)))=z(i)h(z(i))Qi(z(i))
所以可以得到:
log⁡∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))≥∑z(i)Qi(z(i))log⁡p(x(i),z(i);θ)Qi(z(i)) \log\sum_{z^{(i)}}Q_i(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \ge \sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} logz(i)Qi(z(i))Qi(z(i))p(x(i),z(i);θ)z(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
得证。

为了使Jenson不等式求得等号,即使得:
f(E(x))=E(f(x)) f(E(x)) = E(f(x)) f(E(x))=E(f(x))
则必须变量xxx为一个常量,则f(x)f(x)f(x)也将变为一个常量,所以有:
E(x)=xE(f(x))=f(x) E(x)=x\\ E(f(x))=f(x) E(x)=xE(f(x))=f(x)
所以可以推出:
f(E(x))=f(x)=E(f(x)) f(E(x))=f(x)=E(f(x)) f(E(x))=f(x)=E(f(x))
也就是需要:
p(x(i),z(i);θ)Qi(z(i))=c \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}=c Qi(z(i))p(x(i),z(i);θ)=c
其中常数 ccc 不依赖 z(i)z^{(i)}z(i)。要实现这一条件,只需满足:
Qi(z(i))∝p(x(i),z(i);θ) Q_i(z^{(i)})\propto p(x^{(i)},z^{(i)};\theta) Qi(z(i))p(x(i),z(i);θ)
所以:
Qi(z(i))=p(x(i),z(i);θ)c Q_i(z^{(i)})=\frac{p(x^{(i)},z^{(i)};\theta)}{c} Qi(z(i))=cp(x(i),z(i);θ)
又因为z(i)z^{(i)}z(i)是一个分布,所以:
∑zQi(z(i))=1=∑zp(x(i),z(i);θ)c \begin{aligned} \sum_z Q_i(z^{(i)}) &amp;= 1\\ &amp;=\frac{\sum_z p(x^{(i)},z^{(i)};\theta)}{c} \end{aligned} zQi(z(i))=1=czp(x(i),z(i);θ)
因此我们可以得出:
c=∑zp(x(i),z(i);θ)=p(x(i);θ) c=\sum_z p(x^{(i)},z^{(i)};\theta)=p(x^{(i)};\theta) c=zp(x(i),z(i);θ)=p(x(i);θ)
所以:
Qi(z(i))=p(x(i),z(i);θ)p(x(i);θ)=p(z(i)∣x(i);θ) \begin{aligned} Q_i(z^{(i)}) &amp;= \frac{p(x^{(i)},z^{(i)};\theta)}{p(x^{(i)};\theta)} \\ &amp;= p(z^{(i)}|x^{(i)};\theta) \end{aligned} Qi(z(i))=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)x(i);θ)
因此,在给定 x(i)x^{(i)}x(i) 和参数 θ\thetaθ 的设置下,我们可以简单地把 QiQ_iQi 设置为 z(i)z^{(i)}z(i) 的后验分布(posterior distribution)。

接下来,对 QiQ_iQi 的选择,等式 (3)(3)(3) 就给出了似然函数对数(log likelihood)的一个下限,而似然函数(likelihood)正是我们要试图求最大值(maximize)的。这就是 EEE 步骤。接下来在算法的 MMM 步骤中,就最大化等式 (3)(3)(3) 当中的方程,然后得到新的参数 θ\thetaθ。重复这两个步骤,就是完整的 EMEMEM 算法,如下所示:

 重复下列过程直到收敛(convergence): {

  (EEE 步骤)对每个 iii,设
Qi(z(i)):=p(z(i)∣x(i);θ) Q_i(z^{(i)}):=p(z^{(i)}|x^{(i)};\theta) Qi(z(i)):=p(z(i)x(i);θ)
  (MMM 步骤) 设
θ:=argmax⁡θ∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) \theta := arg\max_\theta\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} θ:=argθmaxiz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
}

下面我们要来证明这个算法是递增的(收敛的):

θ(t)\theta^{(t)}θ(t)θ(t+1)\theta^{(t+1)}θ(t+1) 是上面 EMEMEM 迭代过程中的某两个参数(parameters)

证明: l(θ(t))≤l(θ(t+1))l(\theta^{(t)})\le l(\theta^{(t+1)})l(θ(t))l(θ(t+1))

由条件可知:
l(θ(t))=∑i∑z(i)Qi(t)(z(i))logp(x(i),z(i);θ(t))Qi(t)(z(i)) l(\theta^{(t)})=\sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta^{(t)})}{Q_i^{(t)}(z^{(i)})} l(θ(t))=iz(i)Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))
参数 θ(t+1)\theta^{(t+1)}θ(t+1) 可以通过对上面等式中等号右侧进行最大化而得到。所以有:
l(θ(t+1))≥∑i∑z(i)Qi(t)(z(i))logp(x(i),z(i);θ(t+1))Qi(t)(z(i)) \begin{aligned} l(\theta^{(t+1)}) &amp;\ge \sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta^{(t+1)})}{Q_i^{(t)}(z^{(i)})} \end{aligned} l(θ(t+1))iz(i)Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))
上面的第一个不等式推自:
l(θ)≥∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) l(\theta)\ge \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} l(θ)iz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
上面这个不等式对于任意值的 QiQ_iQiθ\thetaθ 都成立,尤其当 Qi=Qi(t),θ=θ(t+1)Q_i = Q_i^{(t)}, \theta = \theta^{(t+1)}Qi=Qi(t),θ=θ(t+1)。由于:
θ(t+1)=argmax⁡θ∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) \theta^{(t+1)} =arg\max_\theta \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} θ(t+1)=argθmaxiz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
所以
l(θ(t+1))≥∑i∑z(i)Qi(t)(z(i))logp(x(i),z(i);θ(t+1))Qi(t)(z(i))≥∑i∑z(i)Qi(t)(z(i))logp(x(i),z(i);θ(t))Qi(t)(z(i))=l(θ(t)) \begin{aligned} l(\theta^{(t+1)}) &amp;\ge \sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta^{(t+1)})}{Q_i^{(t)}(z^{(i)})} \\ &amp;\ge \sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta^{(t)})}{Q_i^{(t)}(z^{(i)})} \\ &amp;= l(\theta^{(t)}) \end{aligned} l(θ(t+1))iz(i)Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))iz(i)Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))=l(θ(t))

3.高斯混合

EEE 步骤很简单。还是按照上面的算法推导过程,只需要计算:
wj(i)=Qi(z(i)=j)=P(z(i)=j∣x(i);ϕ,μ,Σ) w_j^{(i)}=Q_i(z^{(i)}=j)=P(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma) wj(i)=Qi(z(i)=j)=P(z(i)=jx(i);ϕ,μ,Σ)
这里面的 “Qi(z(i)=j)”“Q_i(z^{(i)} = j)”Qi(z(i)=j) 表示的是在分布 QiQ_iQiz(i)z^{(i)}z(i) 取值 jjj 的概率。

接下来在 MMM 步骤,就要最大化关于参数 ϕ,μ,Σ\phi,\mu,\Sigmaϕ,μ,Σ的值:
∑i=1m∑z(i)Qi(z(i))logp(x(i),z(i);ϕ,μ,Σ)Qi(z(i))=∑i=1m∑j=1kQi(z(i)=j)logp(x(i)∣z(i)=j;μ,Σ)p(z(i)=j;ϕ)Qi(z(i)=j)=∑i=1m∑j=1kwj(i)log1(2π)n/2∣Σj∣1/2exp(−12(x(i)−μj)TΣj−1(x(i)−μj))⋅ϕjwj(i) \begin{aligned} \sum_{i=1}^m&amp;\sum_{z^{(i)}}Q_i(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\phi,\mu,\Sigma)}{Q_i(z^{(i)})}\\ &amp;= \sum_{i=1}^m\sum_{j=1}^kQ_i(z^{(i)}=j)log\frac{p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)}{Q_i(z^{(i)}=j)} \\ &amp;= \sum_{i=1}^m\sum_{j=1}^kw_j^{(i)}log\frac{\frac{1}{(2\pi)^{n/2}|\Sigma_j|^{1/2}}exp(-\frac 12(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j))\cdot\phi_j}{w_j^{(i)}} \end{aligned} i=1mz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);ϕ,μ,Σ)=i=1mj=1kQi(z(i)=j)logQi(z(i)=j)p(x(i)z(i)=j;μ,Σ)p(z(i)=j;ϕ)=i=1mj=1kwj(i)logwj(i)(2π)n/2Σj1/21exp(21(x(i)μj)TΣj1(x(i)μj))ϕj
先关于 μl\mu_lμl 来进行最大化。如果去关于 μl\mu_lμl 的(偏)导数(derivative),得到:
∇μl∑i=1m∑j=1kwj(i)log1(2π)n/2∣Σj∣1/2exp(−12(x(i)−μj)TΣj−1(x(i)−μj))⋅ϕjwj(i)=−∇μl∑i=1m∑j=1kwj(i)12(x(i)−μj)TΣj−1(x(i)−μj)=12∑i=1mwl(i)∇μl(2μlTΣl−1x(i)−μlTΣl−1μl)=∑i=1mwl(i)(Σl−1x(i)−Σl−1μl) \begin{aligned} \nabla_{\mu_l}&amp;\sum_{i=1}^m\sum_{j=1}^kw_j^{(i)}log\frac{\frac{1}{(2\pi)^{n/2}|\Sigma_j|^{1/2}}exp(-\frac 12(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j))\cdot\phi_j}{w_j^{(i)}} \\ &amp;= -\nabla_{\mu_l}\sum_{i=1}^m\sum_{j=1}^kw_j^{(i)}\frac 12(x^{(i)}-\mu_j)^T\Sigma_j^{-1}(x^{(i)}-\mu_j) \\ &amp;= \frac 12\sum_{i=1}^m w_l^{(i)}\nabla_{\mu_l}(2\mu_l^T\Sigma_l^{-1}x^{(i)}-\mu_l^T\Sigma_l^{-1}\mu_l) \\ &amp;= \sum_{i=1}^m w_l^{(i)}(\Sigma_l^{-1}x^{(i)}-\Sigma_l^{-1}\mu_l) \end{aligned} μli=1mj=1kwj(i)logwj(i)(2π)n/2Σj1/21exp(21(x(i)μj)TΣj1(x(i)μj))ϕj=μli=1mj=1kwj(i)21(x(i)μj)TΣj1(x(i)μj)=21i=1mwl(i)μl(2μlTΣl1x(i)μlTΣl1μl)=i=1mwl(i)(Σl1x(i)Σl1μl)
设上式为零,然后解出 μl\mu_lμl 就产生了更新规则(update rule):
μl:=∑i=1mwl(i)x(i)∑i=1mwl(i) \mu_l := \frac{\sum_{i=1}^m w_l^{(i)}x^{(i)}}{\sum_{i=1}^m w_l^{(i)}} μl:=i=1mwl(i)i=1mwl(i)x(i)
推导在 MMM 步骤中参数 ϕj\phi_jϕj 的更新规则。把仅关于参数 ϕj\phi_jϕj 的表达式结合起来,就能发现只需要最大化下面的表达式:
∑i=1m∑j=1kwj(i)logϕj \sum_{i=1}^m\sum_{j=1}^kw_j^{(i)}log\phi_j i=1mj=1kwj(i)logϕj
然而,还有一个附加的约束,即 ϕj\phi_jϕj 的和为111,因为其表示的是概率 ϕj=p(z(i)=j;ϕ)\phi_j = p(z^{(i)} = j;\phi)ϕj=p(z(i)=j;ϕ)。为了保证这个约束条件成立,即 ∑j=1kϕj=1\sum^k_{j=1}\phi_j = 1j=1kϕj=1,我们构建一个拉格朗日函数(Lagrangian):
L(ϕ)=∑i=1m∑j=1kwj(i)logϕj+β(∑j=1kϕj−1) \mathcal L(\phi)=\sum_{i=1}^m\sum_{j=1}^kw_j^{(i)}log\phi_j+\beta(\sum^k_{j=1}\phi_j - 1) L(ϕ)=i=1mj=1kwj(i)logϕj+β(j=1kϕj1)
其中的 β\betaβ 是 拉格朗日乘数(Lagrange multiplier)2^22 。求导,然后得到:
∂∂ϕjL(ϕ)=∑i=1mwj(i)ϕj+1 \frac{\partial}{\partial{\phi_j}}\mathcal L(\phi)=\sum_{i=1}^m\frac{w_j^{(i)}}{\phi_j}+1 ϕjL(ϕ)=i=1mϕjwj(i)+1

2 这里我们不用在意约束条件 ϕj≥0\phi_j \ge 0ϕj0,因为很快就能发现,这里推导得到的解会自然满足这个条件的。

设导数为零,然后解方程,就得到了:
ϕj=∑i=1mwj(i)−β \phi_j=\frac{\sum_{i=1}^m w_j^{(i)}}{-\beta} ϕj=βi=1mwj(i)
也就是说,ϕj∝∑i=1mwj(i)\phi_j\propto \sum_{i=1}^m w_j^{(i)}ϕji=1mwj(i)。结合约束条件(constraint)Σjϕj=1\Sigma_j \phi_j = 1Σjϕj=1,可以很容易地发现 −β=∑i=1m∑j=1kwj(i)=∑i=1m1=m-\beta = \sum_{i=1}^m\sum_{j=1}^kw_j^{(i)} = \sum_{i=1}^m 1 =mβ=i=1mj=1kwj(i)=i=1m1=m. (这里用到了条件 wj(i)=Qi(z(i)=j)w_j^{(i)} =Q_i(z^{(i)} = j)wj(i)=Qi(z(i)=j),而且因为所有概率之和等于111,即∑jwj(i)=1\sum_j w_j^{(i)}=1jwj(i)=1)。这样我们就得到了在 MMM 步骤中对参数 ϕj\phi_jϕj 进行更新的规则了:
ϕj:=1m∑i=1mwj(i) \phi_j := \frac 1m \sum_{i=1}^m w_j^{(i)} ϕj:=m1i=1mwj(i)
接下来对 MMM 步骤中对 Σj\Sigma_jΣj 的更新规则的推导就很容易了。
Σj=∑i=1mwj(i)(x(i)−μj)(x(i)−μj)T∑i=1mwj(i). \Sigma_j=\frac{\sum_{i=1}^m w_j^{(i)}(x^{(i)}-\mu_j)(x^{(i)}-\mu_j)^T}{\sum_{i=1}^m w_j^{(i)}}. Σj=i=1mwj(i)i=1mwj(i)(x(i)μj)(x(i)μj)T.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值