EM算法详解

从最大似然到EM算法

思考这样一个问题:假设我们要调查学校男生女生的体重分布,常见的作法是,在校园里抽样调查100个男生和100个女生的身高,这些男生身高(或女生身高)之间相互独立且都服从高斯分布:
f ( x ) = 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x) = \frac{1}{\sigma \sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=σ2π 1e2σ2(xμ)2

但我们不知道高斯分布的参数 ( μ , σ 2 ) (\mu,\sigma^2) (μ,σ2),模型已知而参数未知让我们想到极大似然估计法,极大似然的原理说简单点就是在一次观测中发生了的事件其概率应该大,所以我们构造似然函数:
L ( θ ) = ∏ i = 1 n p ( x i ; μ , σ 2 ) , L(\theta) =\prod_{i=1}^n p(x_i;\mu,\sigma^2), L(θ)=i=1np(xi;μ,σ2),
为了方便分析我们定义对数似然函数:
H ( μ , σ ) = I n L ( μ , σ ) = I n ∏ i = 1 n p ( x i ; μ , σ 2 ) = ∑ i = 1 n I n p ( x i ; μ , σ 2 ) H(\mu,\sigma) = InL(\mu,\sigma) = In\prod_{i=1}^n p(x_i;\mu,\sigma^2) = \sum_{i=1}^n Inp(x_i;\mu,\sigma^2) H(μ,σ)=InL(μ,σ)=Ini=1np(xi;μ,σ2)=i=1nInp(xi;μ,σ2)

要求 μ , σ \mu,\sigma μ,σ,只需要使对数似然函数极大化,然后极大值对应的就 μ , σ \mu,\sigma μ,σ是我们的估计。怎么求一个函数的最值?当然是求导,然后让导数为 0,解得 μ , σ \mu,\sigma μ,σ

补充:求极大似然估计值的一般步骤:

求最大似然函数估计值的一般步骤:

(1)写出似然函数;

(2)对似然函数取对数

(3)求导数,令导数为0,得到似然方程;

(4)解似然方程,得到的参数即为所求;

刚刚的背景是分男生、女生两个群体抽样,所以可以用似然估计法求出分布,现在假设我们我们随机抽样200人的身高,不去记录样本的性别。即我们只有一组身高数据,不知道这些样本来自哪个分布。这个时候样本之间独立不同分布,无法使用极大似然法。这个时候EM算法出场,先随便猜一下男生(身高)的正态分布的参数:如均值和方差是多少。例如男生的均值是1米7,方差是0.1米,然后计算出每个人更可能属于第一个还是第二个正态分布中的(如:某个人的身高是1米8,他最大可能属于男生的那个分布),这个是属于EM算法的第一步。有了每个人的归属,或者说我们已经大概地按上面的方法将这200个人分为男生和女生两部分,我们就可以根据之前说的最大似然那样,通过这些被大概分为男生的n个人来重新估计第一个分布的参数,女生的那个分布同样方法重新估计。这个是EM算法的第二步。然后,当我们更新了这两个分布的时候,每一个属于这两个分布的概率又变了,那么我们就再需要调整E步……如此往复,直到参数基本不再发生变化为止。这就是EM算法的基本思想。

总结一下:EM算法即期望(Expection)极大化(Maximization)算法,分两步走,E步:求期望,M步:求极大。用于含有隐变量的概率模型参数的极大似然估计。上述例子的隐变量是样本来自哪个群体未知。

Jensen不等式

主要讲解Jensen不等式,主要是如下的结论:

  • f ( x ) f(x) f(x)是凸函数
    f ( E ( X ) ) ≤ E ( f ( x ) ) f(E(X)) \le E(f(x)) f(E(X))E(f(x))
    从函数的角度来看:若存在 λ i ≤ 0 , ∑ i λ i = 1 \lambda_i \le 0, \sum_i \lambda_i =1 λi0,iλi=1,则有:
    f ( ∑ i = 1 M λ i x i ) ≤ ∑ i = 1 M f ( λ i x i ) f(\sum_{i=1}^M\lambda_i x_i) \le \sum_{i=1}^Mf(\lambda_i x_i) f(i=1Mλixi)i=1Mf(λixi)

简记:变量x期望的函数值小于等于函数的期望值

  • f ( x ) f(x) f(x)是凹函数

f ( E ( X ) ) ≥ E ( f ( x ) ) f(E(X)) \ge E(f(x)) f(E(X))E(f(x))

简记:变量x期望的函数值大于等于函数的期望值

本文的重点在于EM算法,因此对Jensen不等式证明略,读者结合函数的凹凸性可轻易得出结论。

EM算法

这一部分的思路是先给出EM算法的基本流程,然后再证明这个算法的合理性。

算法流程

输入:观测变量数据Y,隐变量数据Z,联合分布 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Zθ),条件分布 P ( Z ∣ Y , θ ) P(Z|Y,\theta) P(ZY,θ)
输出:模型参数 θ \theta θ

  • (1)选择参数的初值 θ 0 \theta^0 θ0,开始迭代

  • (2) E步:记 θ i \theta^i θi为第i次迭代参数 θ \theta θ的估计值,在第i+1次迭代的E步,计算
    Q ( θ , θ i ) = E Z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ i ] = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) \begin{aligned} Q(\theta,\theta^i)&=E_{Z}[logP(Y,Z|\theta)|Y,\theta^i]\\ &=\sum_{Z}logP(Y,Z|\theta)P(Z|Y,\theta^i) \end{aligned} Q(θ,θi)=EZ[logP(Y,Zθ)Y,θi]=ZlogP(Y,Zθ)P(ZY,θi)
    这里, P ( Z ∣ Y , θ i ) P(Z|Y,\theta^i) P(ZY,θi)是在给定观测数据Y和当前的参数估计 θ i \theta^i θi下隐变量数据Z的条件概率分布;

  • (3) M步:求使 Q ( θ , θ i ) Q(\theta,\theta^i) Q(θ,θi)极大化的 θ \theta θ,确定第i+1次迭代的参数的估计值 θ i + 1 \theta^{i+1} θi+1
    θ i + 1 = a r g max ⁡ θ Q ( θ , θ i ) \theta^{i+1}=arg \max \limits_{\theta}Q(\theta,\theta^{i}) θi+1=argθmaxQ(θ,θi)
    Q ( θ , θ i ) Q(\theta,\theta^{i}) Q(θ,θi)是EM算法的核心,称为Q函数(Q function),这个是需要自己构造的。

这里对Q函数做一些说明:完全数据的对数似然函数 l o g P ( Y , Z ∣ θ ) logP(Y,Z|\theta) logP(Y,Zθ) 关于在给定观测数据Y和当前参数 θ ( i ) \theta^{(i)} θ(i) 下对未观测数据 Z Z Z 的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i)) 的期望称为Q函数。

  • (4) 重复第(2)步和第(3)步,直到收敛,收敛条件:
    ∣ ∣ θ i + 1 − θ i ∣ ∣ < ε 1 || \theta^{i+1}-\theta^{i} || < \varepsilon_1 θi+1θi<ε1
    或者:
    ∣ ∣ Q ( θ i + 1 , θ i ) − Q ( θ i , θ i ) ∣ ∣ < ε 2 ||Q(\theta^{i+1},\theta^{i})-Q(\theta^{i},\theta^{i})|| <\varepsilon_2 Q(θi+1,θi)Q(θi,θi)<ε2
    收敛迭代就结束了。我们来拆解一下这个M步骤,

EM算法的证明

为什么通过极大化这个 Q Q Q 函数对于EM算法来说是合理的?

下面我们从近似求解观测数据的对数似然函数的极大化问题来导出EM算法,由此可以清楚的看清EM算法的作用。 推导出Em算法可以近似实现对观测数据的极大似然估计的办法是找到E步骤的下界,让下界最大,通过逼近的方式实现对观测数据的最大似然估计。统计学习基础中采用的是相减方式,我们来看下具体的步骤。

(1)极大化观测数据 Y Y Y关于参数 θ \theta θ 的对数似然函数,并增加隐藏变量
L ( θ ) = l o g P ( Y ∣ θ ) = l o g ∑ Z P ( Y , Z ∣ θ ) = l o g ∑ Z P ( Y ∣ Z , θ ) P ( Z , θ ) \begin{aligned} L(\theta)&=logP(Y|\theta) = log\sum_ZP(Y,Z|\theta)\\& = log\sum_{Z}P(Y|Z,\theta)P(Z,\theta) \end{aligned} L(θ)=logP(Yθ)=logZP(Y,Zθ)=logZP(YZ,θ)P(Z,θ)
似然函数中有未观测数据,无法直接计算,因此EM算法通过迭代逐步实现最大化,假设第 i i i 次迭代后 θ \theta θ 的估计值是 θ ( i ) \theta^{(i)} θ(i)我们的目标是更新 θ \theta θ,使得 L ( θ ) L(\theta) L(θ) 增加,即 L ( θ ) > L ( θ i ) L(\theta)>L(\theta^{i}) L(θ)>L(θi),并逐步达到最大值。我们考虑两者之差为:
L ( θ ) − L ( θ ( i ) ) = l o g ( ∑ Z P ( Y ∣ Z , θ ) P ( Z , θ ) − l o g P ( Y ∣ θ ( i ) ) = l o g ( ∑ Z P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) ) − l o g P ( Y ∣ θ ( i ) ) ≥ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) ) − l o g P ( Y ∣ θ ( i ) ) ( 1 ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y ∣ θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) \begin{aligned} L(\theta)-L(\theta^{(i)})&=log(\sum_{Z} P(Y|Z,\theta)P(Z,\theta)-logP(Y|\theta^{(i)}) \\&=log(\sum_{Z} P(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)})})-logP(Y|\theta^{(i)})\\ &\ge \sum_{Z} P(Z|Y,\theta^{(i)})log(\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)})})-logP(Y|\theta^{(i)}) \qquad (1)\\ &=\sum_{Z} P(Z|Y,\theta^{(i)})log(\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)})})-\sum_{Z}P(Z|Y,\theta^{(i)})logP(Y|\theta^{(i)})\\ &= \sum_{Z} P(Z|Y,\theta^{(i)})log(\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)}) P(Y|\theta^{(i)})}\\ \end{aligned} L(θ)L(θ(i))=log(ZP(YZ,θ)P(Z,θ)logP(Yθ(i))=log(ZP(ZY,θ(i))P(ZY,θ(i))P(YZ,θ)P(Z,θ))logP(Yθ(i))ZP(ZY,θ(i))log(P(ZY,θ(i))P(YZ,θ)P(Z,θ))logP(Yθ(i))(1)=ZP(ZY,θ(i))log(P(ZY,θ(i))P(YZ,θ)P(Z,θ))ZP(ZY,θ(i))logP(Yθ(i))=ZP(ZY,θ(i))log(P(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Z,θ)
(1) 处 ≥ \ge 这一个步骤就是采用了凹函数的Jensen不等式做转换。

令:
B ( θ , θ ( i ) ) = L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) B(\theta,\theta^{(i)}) = L(\theta^{(i)})+ \sum_{Z} P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)}) P(Y|\theta^{(i)})} B(θ,θ(i))=L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Z,θ)
则有:
L ( θ ) ≥ B ( θ , θ ( i ) ) L(\theta)\ge B(\theta,\theta^{(i)}) L(θ)B(θ,θ(i))
也就是: B ( θ , θ i ) B(\theta,\theta^{i}) B(θ,θi) L ( θ ) L(\theta) L(θ) 的一个下界,取 θ = θ ( i ) \theta = \theta^{(i)} θ=θ(i) ,根据链式法则:
P ( Y , Z ∣ θ ) = P ( Y ∣ Z , θ ) P ( Z , θ ) = P ( Z ∣ Y , θ ) P ( Y ∣ θ ) P(Y,Z|\theta)=P(Y|Z,\theta)P(Z,\theta)=P(Z|Y,\theta) P(Y|\theta) P(Y,Zθ)=P(YZ,θ)P(Z,θ)=P(ZY,θ)P(Yθ)
则有:
B ( θ ( i ) , θ ( i ) ) = L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y ∣ Z , θ ( i ) ) P ( Z , θ ( i ) ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) = L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y , Z ∣ θ ( i ) ) P ( Y , Z ∣ θ ( i ) ) = L ( θ ( i ) ) \begin{aligned} B(\theta^{(i)},\theta^{(i)}) &= L(\theta^{(i)})+ \sum_{Z} P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta^{(i)})P(Z,\theta^{(i)})}{P(Z|Y,\theta^{(i)}) P(Y|\theta^{(i)})} \\ &= L(\theta^{(i)}) + \sum_{Z} P(Z|Y,\theta^{(i)})log\frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})} \\&=L(\theta^{(i)}) \end{aligned} B(θ(i),θ(i))=L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ(i))P(Z,θ(i))=L(θ(i))+ZP(ZY,θ(i))logP(Y,Zθ(i))P(Y,Zθ(i))=L(θ(i))
所以,任何可以使 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i)) 增大的 θ \theta θ 都可以使 L ( θ ) L(\theta) L(θ) 增大。所以为了使 L ( θ ) L(\theta) L(θ) 尽可能增大,我们选择 θ ( i + 1 ) \theta^{(i+1)} θ(i+1) 使得 B ( θ , θ i ) B(\theta,\theta^{i}) B(θ,θi) 尽可能大。

即最大化如下:

θ ( i + 1 ) = arg ⁡ max ⁡ θ B ( θ , θ ( i ) ) = L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) = arg ⁡ max ⁡ θ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ Z , θ ) P ( Z , θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) ) = arg ⁡ max ⁡ θ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ Z , θ ) P ( Z , θ ) ) − arg ⁡ max ⁡ θ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Z ∣ Y , θ i ) P ( Y ∣ θ ( i ) ) ) = a r g max ⁡ θ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y ∣ Z , θ ) P ( Z , θ ) ) = a r g max ⁡ θ ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g ( P ( Y , Z ∣ θ ) ) = a r g max ⁡ θ Q ( θ , θ ( i ) ) \begin{aligned} \theta^{(i+1)} &= \arg \max_{\theta} B(\theta,\theta^{(i)})\\ &= L(\theta^{(i)})+ \sum_{Z} P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)}) P(Y|\theta^{(i)})} \\&=\arg \max_{\theta}\sum_{Z} P(Z|Y,\theta^{(i)})log(\frac{P(Y|Z,\theta)P(Z,\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}) \\&=\arg \max_{\theta}\sum_{Z} P(Z|Y,\theta^{(i)})log(P(Y|Z,\theta)P(Z,\theta))-\arg \max_{\theta}\sum_{Z} P(Z|Y,\theta^{(i)})log(P(Z|Y,\theta^i)P(Y|\theta^{(i)}))\\ &=arg \max_{\theta}\sum_{Z} P(Z|Y,\theta^{(i)})log(P(Y|Z,\theta)P(Z,\theta))\\ & =arg \max_{\theta}\sum_{Z} P(Z|Y,\theta^{(i)})log(P(Y,Z|\theta))\\ &=arg \max_{\theta}Q(\theta,\theta^{(i)}) \end{aligned} θ(i+1)=argθmaxB(θ,θ(i))=L(θ(i))+ZP(ZY,θ(i))logP(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Z,θ)=argθmaxZP(ZY,θ(i))log(P(ZY,θ(i))P(Yθ(i))P(YZ,θ)P(Z,θ))=argθmaxZP(ZY,θ(i))log(P(YZ,θ)P(Z,θ))argθmaxZP(ZY,θ(i))log(P(ZY,θi)P(Yθ(i)))=argθmaxZP(ZY,θ(i))log(P(YZ,θ)P(Z,θ))=argθmaxZP(ZY,θ(i))log(P(Y,Zθ))=argθmaxQ(θ,θ(i))
所以EM算法的一-次迭代, 即求Q函数及其极大化。EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
下图给出EM算法的直观解释。图中上方曲线为 L ( θ ) L(\theta) L(θ),下方曲线为 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i)) B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))为对数似然函数 L ( θ ) L(\theta) L(θ)的下界。

在这里插入图片描述

通过图片我们总结EM算法的迭代过程如下:

(1) 初始状态:在 θ = θ ( i ) \theta = \theta ^{(i)} θ=θ(i) 时, L ( θ ( i ) ) = B ( θ ( i ) , θ ( i ) ) L(\theta^{(i)})=B(\theta^{(i)},\theta^{(i)}) L(θ(i))=B(θ(i),θ(i))

(2) EM算法的更新过程:寻找 θ ( i + 1 ) ) \theta^{(i+1))} θ(i+1)) 使得 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))极大化。因为 L ( θ ) ≥ B ( θ , θ ( i ) ) L(\theta)\ge B(\theta,\theta^{(i)}) L(θ)B(θ,θ(i)),所以得 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))极大化也使得 L ( θ ) L(\theta) L(θ) 增加。

(3) 根据第二步找到的 θ ( i + 1 ) ) \theta^{(i+1))} θ(i+1)) 重新计算 B ( θ , θ ( i ) ) B(\theta,\theta^{(i)}) B(θ,θ(i))(或者说重新计算Q函数),进行下一次迭代。

上述过程暴露一个问题:对数似然函数不断增大,但EM算法不能保证找到全局最优解。

EM算法的收敛性

我们已经证明了EM算法的合理性,接下来我们来研究一下算法是否收敛。

要证EM算法的收敛性即证:
P ( Y ∣ θ ( i + 1 ) ) ≥ P ( Y ∣ θ ( i ) ) P(Y|\theta^{(i+1)}) \ge P(Y|\theta^{(i)}) P(Yθ(i+1))P(Yθ(i))
因为:
P ( Y ∣ θ ) = P ( Z , Y ∣ θ ) P ( Z ∣ Y , θ ) P(Y|\theta) = \frac{P(Z,Y|\theta)}{P(Z|Y,\theta)} P(Yθ)=P(ZY,θ)P(Z,Yθ)
两边同取对数:
l o g P ( Y ∣ θ ) = l o g P ( Z , Y ∣ θ ) − l o g P ( Z ∣ Y , θ ) logP(Y|\theta) = logP(Z,Y|\theta) - logP(Z|Y,\theta) logP(Yθ)=logP(Z,Yθ)logP(ZY,θ)
左右两边同时求期望,则有:
∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Y ∣ θ ) = l o g P ( Y ∣ θ ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Z , Y ∣ θ ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Z ∣ Y , θ ) \begin{aligned} \sum_ZP(Z|Y,\theta^{(i)})logP(Y|\theta) &= logP(Y|\theta) \\&= \sum_ZP(Z|Y,\theta^{(i)})logP(Z,Y|\theta) - \sum_ZP(Z|Y,\theta^{(i)})logP(Z|Y,\theta) \\ \end{aligned} ZP(ZY,θ(i))logP(Yθ)=logP(Yθ)=ZP(ZY,θ(i))logP(Z,Yθ)ZP(ZY,θ(i))logP(ZY,θ)
其中, ∑ Z P ( Z ∣ Y , θ ( i ) ) = 1 \sum_ZP(Z|Y,\theta^{(i)})=1 ZP(ZY,θ(i))=1, l o g P ( Y ∣ θ ) logP(Y|\theta) logP(Yθ) 是与Z无关的变量,因此积分等于它本身。

根据Q函数的定义:
Q ( θ , θ ( i ) ) = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) Q(\theta,\theta^{(i)}) = \sum_Z logP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) Q(θ,θ(i))=ZlogP(Y,Zθ)P(ZY,θ(i))
以及这里我们令
H ( θ , θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Z ∣ Y , θ ) H(\theta,\theta^{(i)}) = \sum_ZP(Z|Y,\theta^{(i)})logP(Z|Y,\theta) H(θ,θ(i))=ZP(ZY,θ(i))logP(ZY,θ)
所以:
l o g P ( Y ∣ θ ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Z , Y ∣ θ ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) l o g P ( Z ∣ Y , θ ) = Q ( θ , θ ( i ) ) − H ( θ , θ ( i ) ) \begin{aligned} logP(Y|\theta) &= \sum_ZP(Z|Y,\theta^{(i)})logP(Z,Y|\theta) - \sum_ZP(Z|Y,\theta^{(i)})logP(Z|Y,\theta) \\ &= Q(\theta,\theta^{(i)}) - H(\theta,\theta^{(i)}) \end{aligned} logP(Yθ)=ZP(ZY,θ(i))logP(Z,Yθ)ZP(ZY,θ(i))logP(ZY,θ)=Q(θ,θ(i))H(θ,θ(i))

l o g P ( Y , θ ( i + 1 ) ) − l o g P ( Y , θ ( i ) ) = Q ( θ ( i + 1 ) , θ ( i ) − H ( θ ( i + 1 ) , θ ( i ) ) − ( Q ( θ ( i ) , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) ) = Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) − ( H ( θ ( i + 1 ) , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) ) \begin{aligned} logP(Y,\theta^{(i+1)})-logP(Y,\theta^{(i)}) &= Q(\theta^{(i+1)},\theta^{(i)}-H(\theta^{(i+1)},\theta^{(i)}) - (Q(\theta^{(i)},\theta^{(i)})-H(\theta^{(i)},\theta^{(i)}))\\ &= Q(\theta^{(i+1)},\theta^{(i)})- Q(\theta^{(i)},\theta^{(i)}) -( H(\theta^{(i+1)},\theta^{(i)}) - H(\theta^{(i)},\theta^{(i)})) \end{aligned} logP(Y,θ(i+1))logP(Y,θ(i))=Q(θ(i+1),θ(i)H(θ(i+1),θ(i))(Q(θ(i),θ(i))H(θ(i),θ(i)))=Q(θ(i+1),θ(i))Q(θ(i),θ(i))(H(θ(i+1),θ(i))H(θ(i),θ(i)))
因为 θ i + 1 \theta^{i+1} θi+1 使得 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)) 增加,所以
Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ≥ 0 Q(\theta^{(i+1)},\theta^{(i)})- Q(\theta^{(i)},\theta^{(i)}) \ge 0 Q(θ(i+1),θ(i))Q(θ(i),θ(i))0
所以,我们的目标是证明 H ( θ ( i + 1 ) , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) ≤ 0 H(\theta^{(i+1)},\theta^{(i)}) - H(\theta^{(i)},\theta^{(i)}) \le 0 H(θ(i+1),θ(i))H(θ(i),θ(i))0 ,证明如下:

H ( θ ( i + 1 ) , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) = ∑ Z ( l o g ( P ( Z ∣ Y , θ ( i + 1 ) ) P ( Z ∣ Y , θ ( i ) ) ) ) P ( Z ∣ Y , θ ( i ) ) ≤ l o g ( ∑ Z P ( Z ∣ Y , θ ( i + 1 ) ) P ( Z ∣ Y , θ ( i ) ) P ( Z ∣ Y , θ ( i ) ) ) = l o g P ( Z ∣ Y , θ ( i + 1 ) ) = l o g 1 = 0 \begin{aligned} H(\theta^{(i+1)},\theta^{(i)}) - H(\theta^{(i)},\theta^{(i)}) &=\sum_{Z}\bigg(log(\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}) \bigg)P(Z|Y,\theta^{(i)}) \\ & \le log\bigg(\sum_{Z}\frac{P(Z|Y,\theta^{(i+1)})}{P(Z|Y,\theta^{(i)})}P(Z|Y,\theta^{(i)}) \bigg)\\ &=logP(Z|Y,\theta^{(i+1)})=log1=0 \end{aligned} H(θ(i+1),θ(i))H(θ(i),θ(i))=Z(log(P(ZY,θ(i))P(ZY,θ(i+1))))P(ZY,θ(i))log(ZP(ZY,θ(i))P(ZY,θ(i+1))P(ZY,θ(i)))=logP(ZY,θ(i+1))=log1=0
不等号由jensen不等式得到。

所以:
l o g P ( Y , θ ( i + 1 ) ) − l o g P ( Y , θ ( i ) ) ≥ 0 P ( Y , θ ( i + 1 ) ) − P ( Y , θ ( i ) ) ≥ 0 P ( Y , θ ( i + 1 ) ) ≥ P ( Y , θ ( i ) ) logP(Y,\theta^{(i+1)})-logP(Y,\theta^{(i)}) \ge 0 \\ P(Y,\theta^{(i+1)})-P(Y,\theta^{(i)}) \ge 0 \\ P(Y,\theta^{(i+1)})\ge P(Y,\theta^{(i)}) logP(Y,θ(i+1))logP(Y,θ(i))0P(Y,θ(i+1))P(Y,θ(i))0P(Y,θ(i+1))P(Y,θ(i))
证明了EM算法的收敛性。但不能保证是全局最优,只能保证局部最优。

三硬币模型的EM解答

再来看一个例子,假设有3枚硬币,分别记作A,B和C。 这些硬币正面向上的概率分别是 π \pi π p p p q q q 。进行如下抛硬币试验:先抛硬币A, 根据其结果选出硬币B或者硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,抛硬币的结果,出现正面记作1,出现反面记作0;独立重复10次试验。结果如下:

1,1,0,1,0,0,1,0,1,1

假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率。

我们先来构建这样一个三硬币模型:
P ( y ∣ θ ) = ∑ z P ( y , z ∣ θ ) = ∑ z P ( y ∣ z , θ ) P ( z ∣ θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y \begin{aligned} P(y|\theta) &=\sum_{z}P(y,z|\theta)=\sum_{z}P(y|z,\theta)P(z|\theta) \\ &=\pi p^{y}(1-p)^{1-y}+(1-\pi)q^{y}(1-q)^{1-y} \end{aligned} P(yθ)=zP(y,zθ)=zP(yz,θ)P(zθ)=πpy(1p)1y+(1π)qy(1q)1y

  • y = 1 y=1 y=1,表示这此看到的是正面,这个正面有可能是B的正面,也可能是C的正面,则 P ( 1 ∣ θ ) = π p + ( 1 − π ) q P(1|\theta)=\pi p+(1-\pi)q P(1θ)=πp+(1π)q
  • y = 0 y=0 y=0,则 P ( 0 ∣ θ ) = π ( 1 − p ) + ( 1 − π ) ( 1 − q ) P(0|\theta)=\pi (1-p)+(1-\pi)(1-q) P(0θ)=π(1p)+(1π)(1q)

y是观测变量,表示一次观测结果是1或0,z是隐藏变量,表示掷硬币A的结果,这个是观测不到结果的, θ = ( π , p , q ) \theta=(\pi,p,q) θ=(π,p,q)表示模型参数,将观测数据表示为 Y = ( Y 1 , Y 2 , . . . , Y n ) T Y=(Y_1,Y_2,...,Y_n)^{T} Y=(Y1,Y2,...,Yn)T,未观测的数据表示为 Z = ( Z 1 , Z 2 , . . . , Z n ) T Z=(Z_1,Z_2,...,Z_n)^{T} Z=(Z1,Z2,...,Zn)T,则观测函数的似然函数是:
P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) = ∏ i = 0 ( π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ) \begin{aligned} P(Y|\theta)&=\sum_{Z}P(Z|\theta)P(Y|Z,\theta)\\ &=\prod_{i=0} ( \pi p^{y_i}(1-p)^{1-y_{i}}+(1-\pi)q^{y_{i}}(1-q)^{1-y_{i}}) \end{aligned} P(Yθ)=ZP(Zθ)P(YZ,θ)=i=0(πpyi(1p)1yi+(1π)qyi(1q)1yi)
考虑求模型参数 θ = ( π , p , q ) \theta=(\pi,p,q) θ=(π,p,q)的极大似然估计,即:
θ ^ = arg ⁡ max ⁡ θ l o g P ( Y ∣ θ ) = arg ⁡ max ⁡ θ ∑ i = 1 10 l o g ( π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i \hat{\theta}=\arg\max_{\theta}logP(Y|\theta) = \arg\max_{\theta}\sum_{i=1}^{10}log ( \pi p^{y_i}(1-p)^{1-y_{i}}+(1-\pi)q^{y_{i}}(1-q)^{1-y_{i}} θ^=argθmaxlogP(Yθ)=argθmaxi=110log(πpyi(1p)1yi+(1π)qyi(1q)1yi
我们发现直接对上式求偏导等于0很难求得参数的值。

这个问题含有隐变量(不知道观测样本值是来自哪个硬币,B还是C),只有通过迭代方法来求解,我们借助EM算法进行求解。

计算在模型参数 π i , p i , q i \pi^{i},p^{i},q^{i} πipiqi下观测变量 y i y_i yi来源于硬币B的概率:
μ j i + 1 = π i ( p i ) y i ( 1 − p i ) 1 − y i π i ( p i ) y i ( 1 − p i ) 1 − y i + ( 1 − π i ) ( q i ) y i ( 1 − p i ) 1 − y i \mu_j^{i+1}=\frac{\pi^{i}(p^{i})^{y_i}(1-p^i)^{1-y_i}}{\pi^{i}(p^{i})^{y_i}(1-p^i)^{1-y_i}+(1-\pi^{i})(q^{i})^{y_i}(1-p^i)^{1-y_i}} μji+1=πi(pi)yi(1pi)1yi+(1πi)(qi)yi(1pi)1yiπi(pi)yi(1pi)1yi
注:这个公式的分母是 P ( Y ∣ θ ) P(Y|\theta) P(Yθ),表示观测变量 y i y_i yi来源于B硬币和C硬币的概率和。分子表示观测变量 y i y_i yi来源于B硬币的概率。

(1)E步:一共n个样本,构造Q函数:
Q ( θ , θ ( i ) ) = ∑ j = 1 n ∑ Z P ( Z ∣ y j , θ ( i ) ) log ⁡ P ( y j , Z ∣ θ ) = ∑ j = 1 n { P ( Z = 1 ∣ y j , θ ( i ) ) l o g P ( y j , Z = 1 ∣ θ ) + P ( Z = 0 ∣ y j , θ ( i ) ) l o g P ( y j , Z = 0 ∣ θ ) } = ∑ j = 1 n { μ j ( i + 1 ) l o g P ( y j , Z = 1 ∣ θ ) + ( 1 − μ j ( i + 1 ) ) l o g P ( y j , Z = 0 ∣ θ ) } = ∑ j = 1 n { μ j ( i + 1 ) log ⁡ [ π p y j ( 1 − p ) 1 − y j ] + ( 1 − μ j ( i + 1 ) ) log ⁡ [ ( 1 − π ) q y j ( 1 − q ) 1 − y j ] } \begin{aligned} Q(\theta, \theta^{(i)}) &= \sum \limits_{j=1}^{n}\sum\limits_{Z}P(Z|y_j, \theta^{(i)})\log P(y_j,Z|\theta)\\ &= \sum\limits_{j=1}^{n}\left\{ P(Z=1|y_j, \theta^{(i)})\mathrm{log}P(y_j,Z=1|\theta) + P(Z=0|y_j, \theta^{(i)})\mathrm{log}P(y_j,Z=0|\theta) \right\}\\ &= \sum\limits_{j=1}^{n}\left\{\mu_{j}^{(i+1)}log P(y_j,Z=1|\theta) + (1-\mu_{j}^{(i+1)})\mathrm{log}P(y_j,Z=0|\theta) \right\}\\ &= \sum\limits_{j=1}^{n}\left\{\mu_{j}^{(i+1)}\log [\pi p^{y_j}(1-p)^{1-y_j}]+(1-\mu_{j}^{(i+1)})\log [(1-\pi )q^{y_j}(1-q)^{1-y_j}] \right\} \end{aligned} Q(θ,θ(i))=j=1nZP(Zyj,θ(i))logP(yj,Zθ)=j=1n{P(Z=1yj,θ(i))logP(yj,Z=1θ)+P(Z=0yj,θ(i))logP(yj,Z=0θ)}=j=1n{μj(i+1)logP(yj,Z=1θ)+(1μj(i+1))logP(yj,Z=0θ)}=j=1n{μj(i+1)log[πpyj(1p)1yj]+(1μj(i+1))log[(1π)qyj(1q)1yj]}
(2)M步:极大化Q函数
θ ( i + 1 ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) = arg ⁡ max ⁡ θ { ∑ j = 1 n ∑ Z P ( Z ∣ y j , θ ( i ) ) log ⁡ P ( y j , Z ∣ θ ) } \begin{aligned} \theta^{(i+1)} = \mathop{\arg\max}_{\theta}Q(\theta, \theta^{(i)}) = \mathop{\arg\max}_{\theta} \left\{\sum\limits_{j=1}^{n} \sum\limits_{Z}P(Z|y_j, \theta^{(i)})\log P(y_j,Z|\theta)\right\} \end{aligned} θ(i+1)=argmaxθQ(θ,θ(i))=argmaxθ{j=1nZP(Zyj,θ(i))logP(yj,Zθ)}
极大值问题:即令导函数为0,即:
∂ Q ( θ , θ ( i ) ) ∂ π = ∑ j = 1 N { μ j ( i + 1 ) ln ⁡ [ π p y j ( 1 − p ) 1 − y j ] + ( 1 − μ j ( i + 1 ) ) ln ⁡ [ ( 1 − π ) q y j ( 1 − q ) 1 − y j ] ∂ π } = ∑ j = 1 N { μ j ( i + 1 ) p y j ( 1 − p ) 1 − y j π p y j ( 1 − p ) 1 − y j + ( 1 − μ j ( i + 1 ) ) − q y j ( 1 − q ) 1 − y j ( 1 − π ) q y j ( 1 − q ) 1 − y j } = ∑ j = 1 N { μ j ( i + 1 ) − π π ( 1 − π ) } = ( ∑ j = 1 N μ j ( i + 1 ) ) − n π π ( 1 − π ) \begin{aligned} \frac{\partial Q(\theta,\theta^{(i)})}{\partial \pi}&=\sum_{j=1}^N\{\frac{\mu_{j}^{(i+1)}\ln [\pi p^{y_j}(1-p)^{1-y_j}]+(1-\mu_{j}^{(i+1)})\ln [(1-\pi )q^{y_j}(1-q)^{1-y_j}] }{\partial \pi}\}\\&=\sum_{j=1}^N\{ \mu_{j}^{(i+1)}\frac{p^{y_j}(1-p)^{1-y_j}}{\pi p^{y_j}(1-p)^{1-y_j}}+(1-\mu_{j}^{(i+1)})\frac{-q^{y_j}(1-q)^{1-y_j}}{(1-\pi )q^{y_j}(1-q)^{1-y_j}} \}\\&=\sum_{j=1}^N\{ \frac{\mu_{j}^{(i+1)}-\pi }{\pi (1-\pi)}\}\\&=\frac{(\sum_{j=1}^N\mu_{j}^{(i+1)})-n\pi }{\pi (1-\pi)} \end{aligned} πQ(θ,θ(i))=j=1N{πμj(i+1)ln[πpyj(1p)1yj]+(1μj(i+1))ln[(1π)qyj(1q)1yj]}=j=1N{μj(i+1)πpyj(1p)1yjpyj(1p)1yj+(1μj(i+1))(1π)qyj(1q)1yjqyj(1q)1yj}=j=1N{π(1π)μj(i+1)π}=π(1π)(j=1Nμj(i+1))nπ

∵ ∂ Q ( θ , θ ( i ) ) ∂ π = 0    ⟹    π = 1 n ∑ j = 1 N μ j ( i + 1 ) ∴ π ( i + 1 ) = 1 n ∑ j = 1 N μ j ( i + 1 ) \begin{aligned} \because \quad\frac{\partial Q(\theta,\theta^{(i)})}{\partial \pi}=0 &\implies \pi =\frac 1n\sum_{j=1}^N\mu_{j}^{(i+1)}\\ \therefore \quad \pi^{(i+1)}&=\frac 1n\sum_{j=1}^N\mu_{j}^{(i+1)} \end{aligned} πQ(θ,θ(i))=0π(i+1)π=n1j=1Nμj(i+1)=n1j=1Nμj(i+1)

∂ Q ( θ , θ ( i ) ) ∂ p = ∑ j = 1 N { μ j ( i + 1 ) ln ⁡ [ π p y j ( 1 − p ) 1 − y j ] + ( 1 − μ j ( i + 1 ) ) ln ⁡ [ ( 1 − π ) q y j ( 1 − q ) 1 − y j ] ∂ p } = ∑ j = 1 N { μ j ( i + 1 ) π ( y j p y j − 1 ( 1 − p ) 1 − y j + p y j ( − 1 ) ( 1 − y j ) ( 1 − p ) 1 − y j − 1 ) π p y j ( 1 − p ) 1 − y j + 0 } = ∑ j = 1 N { μ j ( i + 1 ) ( y j − p ) p ( 1 − p ) } = ( ∑ j = 1 N μ j ( i + 1 ) y j ) − ( p ∑ j = 1 N μ j ( i + 1 ) ) p ( 1 − p ) \begin{aligned} \frac{\partial Q(\theta,\theta^{(i)})}{\partial p}&=\sum_{j=1}^N\{\frac{\mu_{j}^{(i+1)}\ln [\pi p^{y_j}(1-p)^{1-y_j}]+(1-\mu_{j}^{(i+1)})\ln [(1-\pi )q^{y_j}(1-q)^{1-y_j}] }{\partial p}\}\\&=\sum_{j=1}^N\{\mu_{j}^{(i+1)}\frac{\pi (y_jp^{y_j-1}(1-p)^{1-y_j}+p^{y_j}(-1)(1-y_j)(1-p)^{1-y_j-1})}{\pi p^{y_j}(1-p)^{1-y_j}}+0 \}\\&=\sum_{j=1}^N\{ \frac{\mu_{j}^{(i+1)}(y_j-p) }{p(1-p)}\}\\&=\frac{(\sum_{j=1}^N\mu_{j}^{(i+1)}y_j)-(p\sum_{j=1}^N\mu_{j}^{(i+1)}) }{p(1-p)} \end{aligned} pQ(θ,θ(i))=j=1N{pμj(i+1)ln[πpyj(1p)1yj]+(1μj(i+1))ln[(1π)qyj(1q)1yj]}=j=1N{μj(i+1)πpyj(1p)1yjπ(yjpyj1(1p)1yj+pyj(1)(1yj)(1p)1yj1)+0}=j=1N{p(1p)μj(i+1)(yjp)}=p(1p)(j=1Nμj(i+1)yj)(pj=1Nμj(i+1))

∵ ∂ Q ( θ , θ ( i ) ) ∂ p = 0    ⟹    p = ∑ j = 1 N μ j ( i + 1 ) y j ∑ j = 1 N μ j ( i + 1 ) ∴ p ( i + 1 ) = ∑ j = 1 N μ j ( i + 1 ) y j ∑ j = 1 N μ j ( i + 1 ) q ( i + 1 ) = ∑ j = 1 N ( 1 − μ j ( i + 1 ) ) y j ∑ j = 1 N ( 1 − μ j ( i + 1 ) ) \begin{aligned} \because \quad \frac{\partial Q(\theta,\theta^{(i)})}{\partial p}=0 &\implies p =\frac{\sum_{j=1}^N \mu^{(i+1)}_j y_j}{\sum_{j=1}^N\mu^{(i+1)}_j} \\ \therefore \quad p^{(i+1)}&=\frac{\sum_{j=1}^N\mu^{(i+1)}_j y_j}{\sum_{j=1}^N\mu^{(i+1)}_j} \\ q^{(i+1)}&=\frac{\sum_{j=1}^N(1-\mu^{(i+1)}_j)y_j}{\sum_{j=1}^N(1-\mu^{(i+1)}_j)} \end{aligned} pQ(θ,θ(i))=0p(i+1)q(i+1)p=j=1Nμj(i+1)j=1Nμj(i+1)yj=j=1Nμj(i+1)j=1Nμj(i+1)yj=j=1N(1μj(i+1))j=1N(1μj(i+1))yj

接下来可以通过迭代法来做完成。针对上述例子,我们假设初始值为 π 0 = 0.5 , p 0 = 0.5 , q 0 = 0.5 \pi^{0}=0.5,p^{0}=0.5,q^{0}=0.5 π0=0.5p0=0.5q0=0.5,因为对 y i = 1 y_i=1 yi=1 y i = 0 y_i=0 yi=0均有 μ j 1 = 0.5 \mu_j^{1}=0.5 μj1=0.5,利用迭代公式计算得到 π 1 = 0.5 , p 1 = 0.6 , q 1 = 0.6 \pi^{1}=0.5,p^{1}=0.6,q^{1}=0.6 π1=0.5p1=0.6q1=0.6,继续迭代得到最终的参数:
π 0 ^ = 0.5 , p 0 ^ = 0.6 , q 0 ^ = 0.6 \widehat{\pi^{0}}=0.5,\widehat{p^{0}}=0.6,\widehat{q^{0}}=0.6 π0 =0.5p0 =0.6q0 =0.6
如果一开始初始值选择为: π 0 = 0.4 , p 0 = 0.6 , q 0 = 0.7 \pi^{0}=0.4,p^{0}=0.6,q^{0}=0.7 π0=0.4p0=0.6q0=0.7,那么得到的模型参数的极大似然估计是 π ^ = 0.4064 , p ^ = 0.5368 , q ^ = 0.6432 \widehat{\pi}=0.4064,\widehat{p}=0.5368,\widehat{q}=0.6432 π =0.4064p =0.5368q =0.6432,这说明EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值