EM算法

    本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。

    我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。

但是某些情况下,我们得到的观察数据包含隐含变量,此时有隐含数据和模型参数需要确定,因而无法直接用极大化对数似然函数得到模型分布的参数。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算法迭代

你可能感兴趣的:(EM算法)