赞
踩
最大期望算法(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算法就是含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计法。
下面给出详细的推导过程:
给定一组训练样本 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=1∏mP(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∣θ)=i∑mlogP(x∣θ)=i∑mlogz∑P(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 z∑Qi(z)=1,Qi(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)
由于 ∑ 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)
到这里, 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)
而 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)=pk,k=1,2,3,...。
若
∑
k
=
1
∞
g
(
x
k
)
p
k
\sum_{k=1}^{\infty}g(x_k)p_k
∑k=1∞g(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=1∑∞g(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
)
∣
θ
)
(7)
即: 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 ) ∣ θ ) (8) \frac{p(x^{(i)},z^{(i)}|\theta)}{Q_{i}(z^{(i)})} = \sum_zp(x^{(i)},z^{(i)}|\theta) \tag{8} Qi(z(i))p(x(i),z(i)∣θ)=z∑p(x(i),z(i)∣θ)(8)
所以:
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
)
,
θ
)
(9)
至此,我们在固定参数 θ \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)})}
θ=θargmaxi∑mz∑Qi(z(i))logQi(z(i))P(x,z∣θ)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。