EM算法——一步步推导

可观测数据Y,不可观测数据Z,模型参数为 Θ ,那么我们的目标就是(极大似然函数):

maxΘi=1mp(xi;Θ)

log似然函数:

maxΘi=1mlogp(xi;Θ)

加入隐变量:

maxΘi=1mlogzip(xi,zi;Θ)

L(Θ)=i=1mlogzip(xi,zi;Θ)

其实到这里,我们可以尝试对似然函数求偏导,令其为0,求解参数,但是发现这个函数由于和的对数的存在,变得无法求解。

所以事实上,EM算法是通过迭代逐步近似极大化 L(Θ) 的。我们可以对式子做一些变换。

L(Θ)=i=1mlogziQ(zi)p(xi,zi;Θ)Q(zi)

其中 Q(zi) 为隐变量的概率分布。

这里插入一点凹函数的性质,如果一个函数f(x)的二阶导数f”(x) >= 0, 那么:

f(E[x])E[f(x)]

凹函数

如果f”(x) > 0,那么该凹函数为严格凹函数,那么等号成立当且仅当x为常数, 或者说 p( x = E[x] ) = 1。

ziQ(zi)p(xi,zi;Θ)Q(zi) 可以看做是在求期望,并且函数logx的二阶导数为-1/x^2 < 0, 所以为严格凹函数,所以:

L(Θ)=i=1mlogziQ(zi)p(xi,zi;Θ)Q(zi)=i=1mlogE[p(xi,zi;Θ)Q(zi)]i=1mE[logp(xi,zi;Θ)Q(zi)]=i=1mQ(zi)logp(xi,zi;Θ)Q(zi)

为了让上面严格凸函数的等号成立,也就是为了让 L(Θ) 的下界紧贴,我们令

p(xi,zi;Θ)Q(zi)=c

其中c为常数.
而且

Q(zi)=p(xi,zi;Θ)zip(xi,z;Θ)=p(xi,zi;Θ)p(xi;Θ)=p(zi;xi,Θ)

所以EM算法,先随机初始化参数 Θ

E-step:

Q(zi)=p(zi;xi,Θ)

M-step:

Θ=argmaxΘi=1mQ(zi)logp(xi,zi;Θ)Q(zi)

所以EM算法是一个不断更新下界,不断最大化下界的过程。

EM

具体在M-step我们还有个约束

i=1KQ(zi)=1

我们可以用拉格朗日函数来求偏导,从而得到参数的值。