EM算法推导详解

文章目录

  • 一、算法简介
  • 二、EM算法推导
  • 参考:

一、算法简介

最大期望算法(Expectation-Maximization algorithm, EM),或Dempster-Laird-Rubin算法,是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。

EM算法的标准计算框架由E步(Expectation-step,求期望)和M步(Maximization step,求最大值)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值。

概率模型有时既含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。

但是当模型中含有隐变量时,就不能简单的使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计法。


二、EM算法推导

下面给出详细的推导过程:

给定一组训练样本 x 1 , x 2 , . . . x n {x_{1},x_{2},...x_{n}} x1,x2,...xn,样本间独立,我们想找到每个样本间隐含的类别 z z z,能使 p ( x , z ) p(x,z) p(x,z)最大。

通过最大似然估计建立目标函数,其中 θ θ θ是需要估计的模型参数:
f ( x ∣ θ ) = ∏ i = 1 m P ( x i ∣ θ ) (1) f(x|θ) = \prod_{i=1}^{m}P(x_i|θ) \tag{1} f(xθ)=i=1mP(xiθ)(1)

对其取对数,则所以公式(1)又可以写成公式(2):
l ( θ ) = l o g f ( x ∣ θ ) = ∑ i m l o g P ( x ∣ θ ) = ∑ i m l o g ∑ z P ( x , z ∣ θ ) (2) l(θ)=logf(x|θ)=\sum_{i}^{m}logP(x|θ)\\ =\sum_{i}^{m}log\sum_zP(x,z|θ)\tag{2} l(θ)=logf(xθ)=imlogP(xθ)=imlogzP(x,zθ)(2)

式中第一个等号是对极大似然估计取对数,第二步是对每个样例间的每个可能类别z求联合分布概率和。

通过这个式子去求 l ( θ ) l(\theta) l(θ)还是很懵。

假如,存在一个下界 J J J,使得 l ( θ ) ≥ J l(\theta) ≥ J l(θ)J成立

那么对于如何求解最大的 l ( θ ) l(\theta) l(θ)就变得稍微容易点了:

对于 l ( θ ) l(\theta) l(θ)的下界 J J J,使得 J J J不断增大,那么 l ( θ ) l(\theta) l(θ)也会不断增大。当 J J J收敛时, l ( θ ) l(\theta) l(θ)也随之达到最大值。

此时,问题就转移到了 J J J这个下界的函数推导以及求其最大值上了

这时就会用到著名的Jensen不等式了:

对于每一个样本 x i x_{i} xi,用 Q i Q_{i} Qi表示该样本隐含变量z的某种分布,那么 Q i Q_{i} Qi满足条件是:

∑ z Q i ( z ) = 1 , Q i ( z ) ≥ 0 \sum_{z}Q_i(z) = 1,Q_i(z) \geq 0 zQi(z)=1Qi(z)0

于是对于(2)上下同乘以 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))

l ( θ ) = ∑ i m l o g ∑ z P ( x , z ∣ θ ) = ∑ i m l o g ∑ z Q i ( z ( i ) ) P ( x , z ∣ θ ) Q i ( z ( i ) ) (3) \begin{aligned} l(\theta) &= \sum_{i}^{m}log\sum_zP(x,z|θ)\\ &= \sum_{i}^{m}log\sum_z Q_i(z^{(i)}) \frac {P(x,z|θ)} {Q_i(z^{(i)})} \tag{3} \end{aligned} l(θ)=imlogzP(x,zθ)=imlogzQi(z(i))Qi(z(i))P(x,zθ)(3)

由于 ∑ z Q i ( z ) = 1 \sum_{z}Q_i(z) = 1 zQi(z)=1。用到Jensen不等式,则有:

l ( θ ) = ∑ i m l o g ∑ z Q i ( z ( i ) ) P ( x , z ∣ θ ) Q i ( z ( i ) ) ≥ ∑ i m ∑ z Q i ( z ( i ) ) l o g P ( x , z ∣ θ ) Q i ( z ( i ) ) (4) \begin{aligned} l(\theta) &= \sum_{i}^{m}log\sum_z Q_i(z^{(i)}) \frac {P(x,z|θ)} {Q_i(z^{(i)})}\\ & \geq \sum_{i}^{m}\sum_z Q_i(z^{(i)})log \frac {P(x,z|θ)} {Q_i(z^{(i)})} \tag{4} \end{aligned} l(θ)=imlogzQi(z(i))Qi(z(i))P(x,zθ)imzQi(z(i))logQi(z(i))P(x,zθ)(4)

到这里, J J J就已经出来了。即:

l ( θ ) ≥ J ( z , Q ) = ∑ i m ∑ z Q i ( z ( i ) ) l o g P ( x , z ∣ θ ) Q i ( z ( i ) ) (5) \begin{aligned} l(\theta) &\geq J(z, Q)\\ &= \sum_{i}^{m}\sum_z Q_i(z^{(i)})log \frac {P(x,z|θ)} {Q_i(z^{(i)})}\tag{5} \end{aligned} l(θ)J(z,Q)=imzQi(z(i))logQi(z(i))P(x,zθ)(5)

J J J ∑ z Q i ( z ( i ) ) l o g P ( x , z ∣ θ ) Q i ( z ( i ) ) \sum_z Q_i(z^{(i)})log \frac {P(x,z|θ)} {Q_i(z^{(i)})} zQi(z(i))logQi(z(i))P(x,zθ)就是变量 P ( x , z ∣ θ ) Q i ( z ( i ) ) \frac {P(x,z|θ)} {Q_i(z^{(i)})} Qi(z(i))P(x,zθ)的期望。


可能这里会有点晕。。。。稍微解释下这里。

设Y是随机变量X的函数,Y = g(X),那么:

若X是离散型变量,它的分布律有 P ( X = x k ) = p k , k = 1 , 2 , 3 , . . . 。 P(X = x_k) = p_k,k=1,2,3,...。 P(X=xk)=pkk=1,2,3,...
∑ k = 1 ∞ g ( x k ) p k \sum_{k=1}^{\infty}g(x_k)p_k k=1g(xk)pk绝对收敛,则:

E ( Y ) = E ( g ( X ) ) = ∑ k = 1 ∞ g ( x k ) p k E(Y) = E(g(X)) = \sum_{k=1}^{\infty}g(x_k)p_k E(Y)=E(g(X))=k=1g(xk)pk

对于上面的式子(5),Y是 p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} Qi(z(i))p(x(i),z(i);θ),X对应于 z ( i ) z^{(i)} z(i) Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i)) p k p_k pk

故: ∑ z Q i ( z ( i ) ) l o g P ( x , z ∣ θ ) Q i ( z ( i ) ) \sum_z Q_i(z^{(i)})log \frac {P(x,z|θ)} {Q_i(z^{(i)})} zQi(z(i))logQi(z(i))P(x,zθ)就是变量 P ( x , z ∣ θ ) Q i ( z ( i ) ) \frac {P(x,z|θ)} {Q_i(z^{(i)})} Qi(z(i))P(x,zθ)的期望。


l ( θ ) ≥ J ( z , Q ) l(\theta)\geq J(z,Q) l(θ)J(z,Q),那么我们可以通过不断最大化这个下界,来使得 l ( θ ) l(\theta) l(θ)不断提高,最终达到它的最大值。

其实到这里,E步基本就完成了。

整个E步过程可以看作是对 l ( θ ) l(\theta) l(θ)求了下界。

对于 Q i Q_{i} Qi的选择,有许多种可能,那么哪一种更好呢?不妨假定 θ \theta θ已经给定,那么 l ( θ ) l(\theta) l(θ)的值就取决于 Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i)) p ( x ( i ) , z ( i ) ) p(x^{(i)},z^{(i)}) p(x(i),z(i))了。通过调整这两个参数使得下界不断上升,以逼近 l ( θ ) l(\theta) l(θ)的真实值。

那么什么时候算是调整好了呢?当然是当等号成立时,说明调整后的值等价于 l ( θ ) l(\theta) l(θ)了。

按照这个思路,我们要找到等式成立的条件,根据Jensen不等式,要想让等式成立,需要让随机变量变成常数值:

也就是 X 1 = X 2 = . . . = X k X_1 = X_2 = ... = X_k X1=X2=...=Xk,进而 g ( X 1 ) = g ( X 2 ) = . . . = g ( X k ) g(X_1) = g(X_2) = ... = g(X_k) g(X1)=g(X2)=...=g(Xk)

即: g ( x k ) = C g(x_k) = C g(xk)=C,其中c为常数,并不依赖于 z ( i ) z^{(i)} z(i)

也就得到:

g ( X k ) = p ( x ( i ) , z ( i ) ∣ θ ) Q i ( z ( i ) ) = C (6) g(X_k) = \frac{p(x^{(i)},z^{(i)}|\theta)}{Q_{i}(z^{(i)})} = C\tag{6} g(Xk)=Qi(z(i))p(x(i),z(i)θ)=C(6)

所以:
C = ∑ z p ( x ( i ) , z ( i ) ∣ θ ) ∑ z Q i ( z ( i ) ) = ∑ z p ( x ( i ) , z ( i ) ∣ θ ) \begin{aligned} C &= \frac{\sum_zp(x^{(i)},z^{(i)}|\theta)}{\sum_zQ_{i}(z^{(i)})} \\ &= \sum_zp(x^{(i)},z^{(i)}|\theta) \end{aligned} C=zQi(z(i))zp(x(i),z(i)θ)=zp(x(i),z(i)θ)

即: C = ∑ z p ( x ( i ) , z ( i ) ∣ θ ) C = \sum_zp(x^{(i)},z^{(i)}|\theta) C=zp(x(i),z(i)θ)

将该式子带回到(6)中:

p ( x ( i ) , z ( i ) ∣ θ ) Q i ( z ( i ) ) = ∑ z p ( x ( i ) , z ( i ) ∣ θ ) \frac{p(x^{(i)},z^{(i)}|\theta)}{Q_{i}(z^{(i)})} = \sum_zp(x^{(i)},z^{(i)}|\theta) Qi(z(i))p(x(i),z(i)θ)=zp(x(i),z(i)θ)

所以:

Q i ( z ( i ) ) = p ( x ( i ) , z ( i ) ∣ θ ) ∑ z p ( x ( i ) , z ( i ) ∣ θ ) = p ( x ( i ) , z ( i ) ∣ θ ) p ( x i ∣ θ ) = p ( z ( i ) ∣ x ( i ) , θ ) \begin{aligned} Q_{i}(z^{(i)}) &= \frac{p(x^{(i)},z^{(i)}|\theta)}{\sum_zp(x^{(i)},z^{(i)}|\theta)} \\ &= \frac{p(x^{(i)},z^{(i)}|\theta)}{p(x_{i}|\theta)}\\ &= p(z^{(i)}|x^{(i)},\theta) \end{aligned} Qi(z(i))=zp(x(i),z(i)θ)p(x(i),z(i)θ)=p(xiθ)p(x(i),z(i)θ)=p(z(i)x(i),θ)

至此,我们在固定参数 θ \theta θ后, Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i))的计算公式就是后验概率,接下来就是M步,就是在给定 Q i ( z ( i ) ) Q_{i}(z^{(i)}) Qi(z(i))后,调整 θ \theta θ,去极大化 l ( θ ) l(\theta) l(θ)的下界 J ( z , Q ) J(z,Q) J(z,Q)

J ( z , Q ) J(z,Q) J(z,Q)收敛时, l ( θ ) l(\theta) l(θ)的最大值也迭代出来了。


其实,整个EM算法归纳下来理解还是比较容易的:

(1)E-Step:
对于每一个i,计算:
Q i ( 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),θ)

(2)M-Step:
计算:
θ = a r g m a x θ ∑ i m ∑ z Q i ( z ( i ) ) l o g P ( x , z ∣ θ ) Q i ( z ( i ) ) \theta = \underset{\theta}{argmax}\sum_{i}^{m}\sum_z Q_i(z^{(i)})log \frac {P(x,z|θ)} {Q_i(z^{(i)})} θ=θargmaximzQi(z(i))logQi(z(i))P(x,zθ)


参考:

  1. 《统计学习方法》李航著
  2. http://www.cnblogs.com/Determined22/p/5776791.html
  3. https://blog.csdn.net/m0_37570854/article/details/88838267
  4. https://blog.csdn.net/qq_16000815/article/details/80384024

你可能感兴趣的:(机器学习,#,算法)