EM算法是参数估计一种,一般的,比如我们知道了样本 x1,x2,...xm 我们想寻找样本背后的参数,通常使用最大似然函数法,然后对最大似然函数求极值得到相应的参数。 但是在有些情况下,样本的生成还有不可观测的隐变量所控制,那么如果对含有隐变量的样本数据进行参数估计呢?
同样的我们先将似然函数写下来:
因为z是未知的,因此无法通过最大化似然函数求解参数。 为了解决这个问题,我们可以先找到似然函数的一个下界,极大化该下界也可以达到增大 l(θ) 的目的。
如何寻找似然函数的下界呢?可以根据jensen不等式 获得一个对应的下界:
因此我们将最大化似然函数转移到了最大化似然函数的下界:
那么式子中的
Qi(z(i))
又代表了什么意思呢? 是怎么来的呢?
我们通过极大化似然函数的下界求得更新的参数令为
θ(t+1)
,则显然下面两个式子成立:
为了达到最好的效果,我们希望更新
Qi(z(i))
后的
B(θ)
满足
根据jensen不等式的性质,只有当
X
为常数时,才能满足等式成立,也即:
也即是说:
又因为
∑z(Qi(z(i)))=1
,从而有:
因此可以说 Qi(z(i)) 是给定样本 x(i) 和参数 θ 的情况下关于隐藏变量 z(i) 的后验概率。
至此,EM算法的步骤大致介绍完毕,下面简述下流程:
E-step:对每个样本i,令:
M-step:令
重复上面两步,直到收敛为止。
那么EM算法是否收敛呢?
我们只需说明在参数迭代的过程中有
l(θ(t))≤l(θ(t+1))
就可以了。
由 E-step 我们可以得到:
而对于似然函数 l(θ(t+1)) 及其下界有如下的关系:
上述式子表明,随着EM的迭代,似然函数 l(θ) 是一个单调增函数,因此如果两次迭代的增量小于某个值即可认为收敛。
参考
[1] Andrew Ng CS229 Lecture notes
[2] 李航 统计学习方法