本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。
我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。
但是某些情况下,我们得到的观察数据包含隐含变量,此时有隐含数据和模型参数需要确定,因而无法直接用极大化对数似然函数得到模型分布的参数。EM算法就是解决这类问题的一种迭代算法。主要步骤分为两步:E步骤和M步骤。
1)E步:初始化固定模型参数,计算隐含变量
2)M步;依据隐含变量和观察数据使用极大似然函数估计模型参数
3)重复E步与M步直至收敛
EM算法推导过程
对于m个观测数据, 每个样本相互独立,且包含隐含变量
,此时模型的极大似然函数如下:
带隐含变量z的极大似然函数
无法直接使用上述式子估计模型的参数,因为含有隐含变量
。首先对该式进行一定的处理:
处理后的极大似然函数
(2)式中加入了一个关于的分布函数
,与原式相等;由于log是凹函数和Jensen不等式推出(3)。Jensen不等式:
Jensen不等式
现在不等式的右边计算更加方便,所以希望不等式取等号来逼近原似然函数。根据Jensen不等式取等号的条件:
Jensen不等式取等号条件
又因是一个分布,所以满足:
条件
由上两式可以推出公式:
至此,解决了如何选择的问题,即E步。紧接着就是M步,在给定
的条件下,去调整模型参数
来极大化似然函数的下界。
EM算法的参数更新迭代过程如下:
EM算法迭代