EM算法是一种迭代算法,由Dempster等人于1977年总结提出,主要用于解决含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。
EM算法的每次迭代主要由两步组成:E步,求期望;M步,求极大。所以这一算法称为期望极大算法,简称EM算法。
1.EM算法的引入
概率模型有时既含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。
三硬币模型
假设有三枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是,和。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立重复n 次试验(这里,n=10),观测结果如下:
1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数。
三硬币模型可以写作:
这里随机变量 是观测变量,表示一次试验观测的结果是1或0;随机变量 是隐变量,表示未观测到的掷硬币A的结果;是模型参数。
注意:随机变量 的数据是可以观测的,随机变量 的数据不可观测。
将观测数据表示为,未观测数据表示为,则观测数据的似然函数为
所以当y=1时,其概率为;当y=0时,其概率为。
又因
所以,因此:
考虑求模型参数的极大似然估计,即
这个问题没有解析解,只有通过迭代的方法求解,EM算法就是可以用于求解这个问题的一种迭代算法。
2.EM算法的导出
Jensen不等式:
若 是凸函数,则:
其中,。同理,若 为凹函数,则只需将上式中的 换成 即可。
将上式中的 推广到 个同样成立,也即:
其中,,。在概率论中常以以下形式出现:
其中,是随机变量,是凸函数,表示的期望。
我们面对一个含有隐变量的概率模型,目标是极大化观测数据关于参数 的对数似然函数,即极大化
注意这一极大化的主要困难是上式中未观测数据 并有包含和(为离散型时)或积分(为连续型时)的对数。EM算法采用的是通过迭代逐步近似极大化:假设在第 次迭代后 的估计值是,我们希望新的估计值 能使增加,即,并逐步达到极大值。为此,我们考虑两者的差:
利用Jensen不等式得到其下界:(红色框写错了,应该写为蓝色框的内容)
令
则
即函数是的一个下界,此时若设使得达到极大,也即
由于,所以可以进一步推得:
因此,任何可以使增大的,也可以使增大,于是问题就转化为了求解能使得达到极大的,即
到此即完成了EM算法的一次迭代,求出的作为下一次迭代的初始。
一般地,用表示观测随机变量的数据,表示隐随机变量的数据。和连在一起称为完全数据,观测数据又称为不完全数据。假设给定观测数据。其概率分布是,其中是需要估计的模型参数,那么不完全数据的似然函数是,对数似然函数;假设和的联合概率分布是,那么完全数据对数似然函数是。
EM算法通过迭代的极大似然估计。每次迭代包含两步:E步:求期望(用给定参数的条件下,用的期望去代替每个的值,得到用期望替代后的对数似然函数;
M步:求极大(求替代后的对数似然函数Q函数的极大化)。
Q函数:完全数据的对数似然函数关于在给定观测数据和当前参数下对未观测数据的条件概率分布的期望称为Q函数,即
EM算法注意点:
1.参数的初值可以任意选择,但需注意EM算法对初值是敏感的。
EM算法求解例子(三硬币模型)
E步:导出Q函数
综上: