EM算法是一种迭代方法,可以看作用坐标下降法来最大化对数似然估计下界的过程。
一、引入
(一)算法介绍
1、例题
有三枚硬币,ABC他们出现正面的概率分别是Π,p和q。进行如下投掷实验:先投掷A,再根据其结果选出硬币B或者C,A出现正面选择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,λ)
=
y是观测变量,表示一次实验的测试结果是1或者0,随机变量z是隐变量,表示未观测到的掷硬币A的结果;λ=(Π,p, q)是参数模型。
求极大似然估计没有解析式,只有通过迭代的方法求解。EM可以完成该任务,
2、EM算法流程
(1)选取参数初值记作λ(0)=(Π(0),p(0),q(0)),通过迭代计算参数的估计值,直至收敛,EM算法的第i+1次迭代如下。
(2)E步
(3)M步:计算模型参数的新估计值
🐖:Yj表示每一次的观测结果,每次计算都要把所有实验结果都代进迭代式
假设三个参数的初值都是0.5,那么对于y=1或者y=0来说,E步对应的值都是0.5
计算过程如下:
EM算法注意点
1、对初值敏感
2、当迭代过程中的两步的值无限趋近的时候,则停止迭代
3、E步求的是Q函数及其最大
4、M步的每次迭代使近似函数增大或达到局部极值。
(二)、算法导出
为什么EM算法能实现对观测数据的极大似然估计呢?通过近似求解观测数据的对数似然函数的极大化问题导出EM算法,可以看到EM算法的作用。
极大化
难点在于上式中包含未观测数据并由包含和的对数。
EM算法的核心是通过迭代逐步近似极大化L函数,每一次新的估计值都期望它可以让L值增大,逐步达到最大值。