4.1-EM算法

适用场景

  EM算法用于估计含有隐变量的概率模型参数的极大似然估计,或者极大后验概率估计。当概率模型既含有观测值,又含有隐变量或潜在变量时,就可以使用EM算法来求解概率模型的参数。当概率模型只含有观测值时,直接使用极大似然估计法,或者贝叶斯估计法估计模型参数就可以了。

举例说明

4.1-EM算法

  这是一个抛硬币的例子,H表示正面向上,T表示反面向上,参数θ表示正面朝上的概率。硬币有两个,A和B,硬币是有偏的。本次实验总共做了5组,每组随机选一个硬币,连续抛10次。如果知道每次抛的是哪个硬币,那么计算参数θ就非常简单了,如上图所示。
  可以看出A硬币出现正面的概率为0.8,B硬币出现正面的概率为0.45.
  此时,如果我们只知道有2种硬币,但是不知道抽出来的是哪种硬币,还要求计算两种硬币出现正面的概率呢。用数学语言说就是,有一个隐含因素,且有一些列观测值,求其参数。此时就需要用EM算法了。具体过程如下图:
4.1-EM算法
  其计算过程如下:
1. 给θA,θB一个初始值。
2. E-step,分别计算每组实验中,硬币A和硬币B为正面的概率。再计算其为正面的期望。
3. 利用3中计算得到期望值重新计算θA,θB
4. 当迭代到一定的次数,或者算法收敛到一定精度,结束算法,否则继续2.

  稍微解释一下上图的计算过程,这里设初始值θA=0.6θB=0.5
  首先解释第二步中0.45如何来的。由于θA=0.6,所以第一个硬币为A硬币的概率为P(X1=A)=C105×0.65×0.45=0.45.表示第一个硬币为A的概率为0.45.同理第一个硬币为B的概率为0.55.
  然后解释图中第二步2.2H,2.2T是怎么来的呢。E(X1A=H)=50.45=2.2,同理第一个硬币为A且出现反面的期望为E(X1A=T)=50.45=2.2.

EM算法的导出

观测数据:观测到的随机变量X的样本:X(x1,x2,......,xn)(这里假设总共有n个样本,总共m个特征)其中每个xi(xi1,xi2,......,xim)
隐含变量:未观测到的随机变量Z的值: Z(z1,z2,......,zk)
完整数据:包含观测到的随机变量X和隐含变量Z的数据:Y((x1,zj1),(x2,z2),......,(xn,zjn))其中每个样本有一个隐含变量。

  边缘分布列的定义:j=1+P(X=xi,Y=yj)=P(X=xi)

  似然函数为L(θ)=i=1nlnP(θ|xi)=i=1nlnj=1kP(θ,zj|xi)

  目标为极大化此似然函数。

  这里设Qi为z在每一个样本的分布函数,所以Qi满足的条件是:

j=1kQi(zj)=1

Qi(zj)0 其中j=1,2,....,k i为1到n间数字

L(θ)=i=1nlnP(θ|xi)=i=1nlnj=1kP(θ,zj|xi)=i=1nlnj=1kQi(zj)P(θ,zj|xi)Qi(zj)

  根据期望公式:E(f(x))=if(xi)p(xi)
  j=1kQi(zj)P(θ,zj|xi)Qi(zj)P(θ,zj|xi)Qi(zj)的期望。

  根据Jensen不等式:

  f(x)=lnx是凹函数f(E(x))E(f(x))

  所以:ln(E(x))E(lnx)

  所以:

L(θ)=i=1nlnE(P(θ,zj|xi)Qi(zj))i=1nE(lnP(θ,zj|xi)Qi(zj))

  根据数学期望相关定理:E(f(x))=if(xi)p(xi)

L(θ)i=1nE(lnP(θ,zj|xi)Qi(zj))=i=1nj=1kQi(zj)lnP(θ,zj|xi)Qi(zj)

  这个过程可以看作是对L(θ)求下界,对于Qi的选择,有多种可能,哪种更好呢.假设θ已经给定,那么L(θ)的值就决定于Qi(zj)p(zj|xi)了。我们可以通过调整这两个概率使下界不断上升,以逼近L(θ)的真实值,那么什么时候算调整好了呢。按照jesen不等式,当不等式变为等式时,所以此时我们得到:

P(θ,zj|xi)Qi(zj)=c

  其中c为常数,不依赖于z(i)对式子做进一步推导,我们知道j=1kQi(zj)=1,所以j=1kP(θ,zj|xi)=c

Qi(zj)=P(θ,zj|xi)j=1kP(θ,zj|xi)=P(θ,zj|xi)P(θ|xi)=P(zj|xi,θ)
  至此,我们推出了在固定了其它参数θ后,解决Qi(zj)如何选择的问题。这一步就是E步,建立L(θ)的下界。接下来就是M步,就是再给定Qi(zj)后,调整θ,去极大化L(θ)的下界。所以EM算法步骤为:

循环重复直到收敛
{
(E步)对于每一个i,计算
   Qi(zj):=P(zj|xi,θ)
(M步)计算
   θ:=argmaxθi=1nj=1kQi(zj)lnP(θ|zj,xi)Qi(zj)
}

  那么究竟怎么确保EM收敛?假定θ(t)θ(t+1)是EM算法的第t次和t+1次迭代后的结果,如果们我们证明了L(θ(t))L(θ(t+1)),也就是说极大似然估计单调增加,那么最终我们会得到最大似然估计的最大值。

L(θ(t+1))i=1nj=1kQi(zj)lnP(θ(t+1),zj|xi)Qi(zj)i=1nj=1kQi(zj)lnP(θ(t),zj|xi)Qi(zj)=L(θ(t))