EM算法
历史
1977年,DempSter首次提出EM算法。
例子(感受隐变量)
假设四种实验结果,发生的概率依次为,且发生的次数为
,求
的估计。
解:使用MLE,得到:
上式是关于的一元三次方程,不易解。
因此,以下另作处理(引入隐变量):
将第一部分分为
,且出现次数为
次
将第三部分分为
,且出现次数为
次;
则
(1)
现在,并不知道(隐变量)的值,只能知道分布的信息,
服从的分布为二项分布,概率数值类似于条件概率,第一个的概率是用
除以
得到的,第二个同理:
其中,,
第一步(E步):求期望的目的是为了消去隐变量。
;
代入(1)式,得到:
第二步(M步):取最大值。
EM算法使用迭代法来更新参数。 (精髓)
任意取,就可以开始按照上面的公式进行迭代了。
收敛性:
DempSter证明:在很一般的条件下,最后会收敛。(可以参考李航老师的《统计学习方法》)
解析解:能列出公式解决的,数值上是更准确的(相比迭代解),比如MLE就是列出公式求解。
迭代解:退而求其次,当解析解难求的时候,通过迭代逼近的方式,可以获得令人满意的解,比如EM就是为了解决当MLE遇到高次方程难以求解的时候,提出的方法。
《统计学习方法》部分
问:给定参数 ,观测变量
,隐变量
,如何估计参数
?
从观测序列,可以获得:
此时,对数似然函数为:
由于包含和(积分)的对数,因此直接求解困难。
解析解困难,转而使用迭代解:假设第i次迭代后的 为
,由于我们希望似然函数
是增大的,即
。
此时,考虑两者的差:
琴生不等式(Jensen inequality):
,其中,
不等式右边是的下界,记为
,那么,使得下界尽可能大,即:
Algorithm: Estimation Maximum (EM)
- 选
,开始迭代:
- 计算
- 将使得
最大的
作为
- 重复2.和3.直到收敛。(收敛条件要么是
的变化小,要么
函数变化小。)
举例:以三硬币模型为例。有A、B、C三枚硬币,分别有的概率为正面。每次试验为:先投A硬币,如果A为正面,则投B硬币;否则,投C硬币。最终,可以观测到的结果为硬币的正/反面,但是不知道是由B还是C投出的(隐变量)。问:如果某次试验数为10的结果为:{1,1,0,1,0,0,1,0,1,1},如何估计参数
?
显然,题目的隐变量为A硬币投出的结果,此时可以采用EM解法。
先从“E”入手,求解Q函数:
然后,逐一击破:
回代函数:
极大似然求导数,令其为0,能取得极值点:
令上式为0
------对应书(9.6)式
令上式为0
------对应书(9.7)式
令上式为0
------对应书(9.8)式
至此,只要根据当前迭代下的 ,就能得到不同
下标的
,进而得到下一次迭代的
。
网友评论