EM算法及其推广
EM算法是一种迭代算法,主要用于含有隐变量的概率模型参数估计的极大似然估计或极大后验概率估计。此种算法共有两步,E步,求期望,M步,求极大
EM算法
一、EM算法
算法由三硬币问题引入,具体内容见统计学习方法第155页,最终问题转换为求以下参数的极大似然估计。即:
θˆ=argmaxθlogP(Y|θ)
θ
^
=
a
r
g
m
a
x
θ
log
P
(
Y
|
θ
)
此问题没有解析解,故只能通过迭代的方法进行求解。首先选取参数的初值,记作:
θ(0)=(π(0),p(0),q(0))
θ
(
0
)
=
(
π
(
0
)
,
p
(
0
)
,
q
(
0
)
)
,进行迭代直至收敛。
因内容太多,不在此问题作太多推导,现给出通用的EM算法步骤
输入:观测变量Y,隐变量Z,联合分布
P(Y,Z|θ)
P
(
Y
,
Z
|
θ
)
,条件分布
P(Z|Y,θ)
P
(
Z
|
Y
,
θ
)
输出:模型参数
θ
θ
(1)选择参数初值,进行迭代
(2)E步:计算:
Q(θ,θ(i))=Ez[logP(Y,Z|θ)|Y,θ(i)] =∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))
Q
(
θ
,
θ
(
i
)
)
=
E
z
[
log
P
(
Y
,
Z
|
θ
)
|
Y
,
θ
(
i
)
]
=
∑
Z
log
P
(
Y
,
Z
|
θ
)
P
(
Z
|
Y
,
θ
(
i
)
)
(3)M步:求使
Q(θ,θ(i))
Q
(
θ
,
θ
(
i
)
)
极大化的
θ
θ
,确定估计值
θ(i+1)=argmaxQ(θ,θ(i))
θ
(
i
+
1
)
=
arg
max
Q
(
θ
,
θ
(
i
)
)
(4)重复以上,直至收敛
从以上的算法步骤可以看出,E步主要是求一个期望的过程,而M步则是求一个极大值。在算法中,关键是构造Q函数,Q函数是对数似然函数
logP(Y,Z|θ)
log
P
(
Y
,
Z
|
θ
)
关于在给定数据和当前参数下对未观测数据Z的条件概率分布的期望。关于EM算法的推导可以见博客https://blog.csdn.net/hechenghai/article/details/41896213
EM算法的收敛性
EM算法的最大优点是简单性与普适性,我们很自然的关心,通过EM算法得到的估计序列,是全局最大值还是局部极大值。
定理:设
P(Y|θ)
P
(
Y
|
θ
)
为观测数据的似然函数,
θ(i)
θ
(
i
)
为EM算法得到的参数估计序列,
P(Y|θ(i))
P
(
Y
|
θ
(
i
)
)
为对应的似然函数序列,则
P(Y|θ(i))
P
(
Y
|
θ
(
i
)
)
是单调递增的。
定理2:设
P(Y|θ)
P
(
Y
|
θ
)
为观测数据的似然函数,
θ(i)
θ
(
i
)
为EM算法得到的参数估计序列,
P(Y|θ(i))
P
(
Y
|
θ
(
i
)
)
为对应的似然函数序列,则:
(1)如果
P(Y|θ)
P
(
Y
|
θ
)
有上界,则
L(θ(i))=logP(Y|θ(i))
L
(
θ
(
i
)
)
=
log
P
(
Y
|
θ
(
i
)
)
收敛到某一值
(2)在函数
Q(θ,θ′)
Q
(
θ
,
θ
′
)
与
L(θ)
L
(
θ
)
满足一定条件下,由EM算法得到的参数估计序列的收敛值
θ
θ
是
L(θ)
L
(
θ
)
的稳定点。