EM算法是一种迭代算法,1977年由Dempster等人总给提出,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率,E,求期望;M,求极大似然估计,简称EM算法
Dempster:
EM算法的引入
EM算法
例子:
(三硬币模型),假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率为 π,p和q 。
先掷硬币A,根据其结果选出硬币B或C,正面选硬币B,反面选硬币C;然后掷选出的硬币,正面记作1,反面记作0;独立重复n次试验,结果:
1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数
三硬币模型可以写作
P(y|θ)=∑zP(y,z|θ)=∑zP(z|θ)P(y|z,θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y
则,
P(Y|θ)=∏nj=1[πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj]
考虑求模型参数 θ=(π,p,q) 的极大似然估计,即
θ^=argmaxθlogP(Y|θ)
这个问题没有解析解,只有通过迭代方法求解。
EM算法首先选取参数的初值,记作 θ(0)=(π(0),p(0),q(0)) ,然后通过下式迭代计算参数的初值,直至收敛为止,第i次迭代参数的估计值为 θ(i)=(π(i),p(i),q(i)) .EM算法的第i+1次迭代如下
E步:计算在模型参数 π(i),p(i),q(i)下观测数据yj来自掷硬币B的概率
μ(i+1)=π(i)(p(i))yj(1−p(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i)36)1−yj
M步:计算模型参数的新估计值
π(i+1)=1n∑nj=1μ(i+1)j
p(i+1)=∑nj=1μ(i+1)jyj∑nj=1μ(i+1)j
q(i+1)=∑nj=1(1−μ(i+1)j)yj∑nj=1(1−μ(i+1)j)
EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值
一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起成为完全数据。EM算法通过迭代求 L(θ)=logP(Y|θ) 的极大似然估计
算法:
输入:观测变量数据Y,隐变量数据Z,联合分布 P(Y|θ) ,条件分布 P(Z|Y,θ)
输出:模型参数 θ
1)选择参数的初值 θ(0) ,开始迭代;
2)E步:记 θ(i) 为第i次迭代参数 θ 的估计值,在第i+1次迭代的E步,计算
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=∑ZlogP(Y,Z|θ)P(Z|Y,θ(i))
3)M步:求使 Q(θ,θ(i)) 极大化的\theta ,确定第i+1次迭代的参数估计值 θ(i+1)
θ(i+1)=argmaxθQ(θ,θ(i))
4)重复第2和第3步,直至收敛
定义:
(Q函数)完全数据的对数似然函数关于在给定观测数据和当前参数对未观测数据的条件概率分布的期望称为Q函数,即:
Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]
关于EM算法的几点说明:
1)参数的初值可以任意选择,但需注意EM算法对初值是敏感的
2)E步求Q函数.Q函数式中Z是未观测,Y是观测。注意, Q(θ,θ(i)) 的第一个变元便是要极大化的参数,第二个便是参数的当前估计值。每次迭代实际在求Q函数及其极大
3)M步求Q函数极大,得到 θ(i+1) ,完成一次迭代(i到i+1),后面将证明每次迭代使似然函数增大或达到局部极值
4)给出停止迭代的条件,一般是对较小的正数 ε1,ε2,若满足
||θ(i+1)−θ(i)||<ε1或||Q(θ(i+1),θ(i))−Q(