一、引言
按照计划,这周应该学习HMM中的第三个基本问题:参数估计问题,但是其中的内容涉及到了EM算法,所以打算先把EM算法搞定之后再去继续HMM的问题。EM算法的推导过程比较复杂,这节我只给出简述和计算公式,待推导完成后再贴上推导过程。
二、一个实例
例1 (三硬币模型) 假设有3枚硬币,分别记为 A,B,C 。这些硬币正面出现的概率分别是 π,p,q 。进行如下掷硬币试验:先掷硬币A,根据其结果选出B或者C,正面选B,反面选C;然后掷选出的硬币,掷硬币的结果,正面记为1,反面记为0;独立重复n次试验(这里,n=10),观测结果如下: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
上式中,随机变量 y 是观测变量,
P(Y;θ)=∑zP(Z;θ)P(Y|Z;θ)=∏j=1n[πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj]
三、EM算法的迭代公式
考虑求模型参数
θ=(π,p,q)
的极大似然估计,即:
θ^=argmaxθlogP(Y;θ)
这个问题没有解析解,只有通过迭代方法求解,EM算法就是求解这个问题的一种算法。下面先给出去针对上述问题的EM算法,推导过程下节给出。
1. 选取初始参数 θ(0)=(π(0),p(0),q(0))
2. 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))1−yj
3. M步:计算模型参数的新估计值:
π(i+1)=1n∑j=1nμ(i+1)jp(i+1)=∑nj=1μ(i+1)jyj∑nj=1μ(i+1)jq(i+1)=∑nj=1(1−μ(i+1)j)yj∑nj=1(1−μ(i+1)j)
4. 给出停止迭代的条件, 一般是较小的正数 ε , 满足:
||θ(i+1)−θ(i)||<ε
重复上式2-4步,完成求解,需要注意的是EM算法对初始值的选取是相当敏感的。