定义:
EM算法是含有隐变量的概率模型参数的极大似然估计法或极大后验概率估计法。下面仅讨论极大似然估计。
特点:
EM算法与初值的选择有关,选择不同的初值可能得到不同的结果。
本章,我们用 Y Y Y表示观测数据, Z Z Z表示隐数据, ( Y , Z ) (Y , Z) (Y,Z)一起称为完全数据, Y Y Y则称为不完全数据。
EM算法的目标:
θ
^
=
arg
max
θ
l
o
g
P
(
Y
∣
θ
)
\hat{\theta} =\mathop{\arg\max}_{\theta} logP(Y|\theta)
θ^=argmaxθlogP(Y∣θ),通过迭代法求解,每次迭代包括E步和M步。
EM算法:
输入:观测变量数据
Y
Y
Y, 隐变量数据
Z
Z
Z, 联合分布
P
(
Y
,
Z
∣
θ
)
P(Y,Z|\theta)
P(Y,Z∣θ), 条件分布
P
(
Z
∣
Y
,
θ
)
P(Z|Y,\theta)
P(Z∣Y,θ)
输出:
θ
\theta
θ
-
初始化 θ ( 0 ) \theta^{(0)} θ(0) (注意:EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值)
-
E步: θ ( i ) \theta^{(i)} θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i+1 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 ) ) Q(\theta,\theta{(i)} )= E_Z[logP(Y,Z|\theta)|Y,\theta^{(i)}] =\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)}) Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=∑ZlogP(Y,Z∣θ)P(Z∣Y,θ(i)) -
M步: θ ( i + 1 ) = arg max θ Q ( θ , θ ( i ) ) \theta ^{(i+1)}=\mathop{\arg\max}_{\theta} Q(\theta,\theta^{(i)}) θ(i+1)=argmaxθQ(θ,θ(i))
-
重复2和3步,直至收敛
Q ( θ , θ ( i ) ) Q(\theta,\theta{(i)} ) Q(θ,θ(i))是 Q Q Q函数,它是EM算法的核心,其定义是:完全数据的对数似然函数 l o g P ( Y , Z ∣ θ ) logP(Y,Z|\theta) logP(Y,Z∣θ)关于在给定观测数据 Y Y Y和当前参数 θ ( i ) \theta^{(i)} θ(i)下对隐数据 Z Z Z的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(Z∣Y,θ(i))的期望称为 Q Q Q函数。
有的地方写的步骤是这样的:
本质是一样的。
关于EM算法的几点说明:
- EM算法对初值是敏感的,不同的初始值可能使得最后的参数估计值不同
- 停止迭代的条件是: ∣ θ ( i + 1 ) − θ ( i ) ∣ < ξ 1 | \theta^{(i+1)} - \theta^{(i)} |< \xi_1 ∣θ(i+1)−θ(i)∣<ξ1 或者 ∣ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ∣ < ξ 2 | Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})| <\xi_2 ∣Q(θ(i+1),θ(i))−Q(θ(i),θ(i))∣<ξ2
- 每次迭代使 l o g P ( Y ∣ θ ) logP(Y|\theta) logP(Y∣θ)增大或者达到局部极值
从前面知道,我们的目标是极大化对数似然函数 arg max θ l o g P ( Y ∣ θ ) \mathop{\arg\max}_{\theta} logP(Y|\theta) argmaxθlogP(Y∣θ),因为隐变量的存在,我们无法直接求其进行求解。采用的EM算法也仅仅是近似实现对观测数据的极大似然估计。
如何一步一步从目标推出EM算法:
目标:极大化
L
(
θ
)
=
l
o
g
P
(
Y
∣
θ
)
=
l
o
g
(
∑
Z
P
(
Y
,
Z
∣
θ
)
)
=
l
o
g
(
∑
Z
P
(
Z
∣
θ
)
P
(
Y
∣
Z
,
θ
)
)
L(\theta) = logP(Y|\theta) =log(\sum_Z P(Y,Z|\theta)) = log(\sum_ZP(Z|\theta)P(Y|Z,\theta))
L(θ)=logP(Y∣θ)=log(∑ZP(Y,Z∣θ))=log(∑ZP(Z∣θ)P(Y∣Z,θ))
上式的困难是:1.有隐变量 2.包含和的对数
EM算法是通过迭代逐步近似极大化
L
(
θ
)
L(\theta)
L(θ)。
预备:Jensen不等式
对于凸函数:
E
(
f
(
x
)
)
>
=
f
(
E
(
x
)
)
E(f(x))>=f(E(x))
E(f(x))>=f(E(x))
我们期望新的估计值能使对数似然函数增加,即
L
(
θ
)
>
L
(
θ
(
i
)
)
L(\theta)>L(\theta^{(i)})
L(θ)>L(θ(i))
B
(
θ
,
θ
(
i
)
)
B(\theta,\theta^{(i)})
B(θ,θ(i))是
L
(
θ
)
L(\theta)
L(θ)的下界,并且
L
(
θ
(
i
)
)
=
B
(
θ
(
i
)
,
θ
(
i
)
)
L(\theta^{(i)}) = B(\theta^{(i)},\theta^{(i)})
L(θ(i))=B(θ(i),θ(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
)
)
\theta^{(i+1)}=\mathop{\arg\max}_{\theta}B(\theta,\theta^{(i)})
θ(i+1)=argmaxθB(θ,θ(i))。
省去对
θ
\theta
θ极大化而言是常数的项:
θ
(
i
+
1
)
=
arg
max
θ
∑
Z
l
o
g
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
=
arg
max
θ
Q
(
θ
,
θ
(
i
)
)
\theta^{(i+1)} = \mathop{\arg\max}_{\theta}\sum_ZlogP(Y,Z|\theta)P(Z|Y,\theta^{(i)})=\mathop{\arg\max}_{\theta}Q(\theta,\theta^{(i)})
θ(i+1)=argmaxθ∑ZlogP(Y,Z∣θ)P(Z∣Y,θ(i))=argmaxθQ(θ,θ(i))
EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
EM算法的收敛性
EM算法不能保证收敛到全局的极大点,因此它是局部最优的算法。
[1] 李航《统计学习方法》
[2] https://www.cnblogs.com/pinard/p/6912636.html
[3] https://www.cnblogs.com/txg198955/p/4097543.html