EM算法

先说一个小例子:

A,B两个箱子中有白球和其他颜色的球共有N个,从两个箱子中抽取到白球的概率分布为pa和pb,从每个箱子中个抽取十次,然后放回,进行五次实验,统计白球出现的次数

可以很简单的估计出pa和pb,pa=A中抽取到白色次数/A中抽取的次数,同理,pa也一样

我们也可以用极大似然算出是上面的表达式:P(X,Z|p)为p的似然函数,xt=(5,9,8,4,7),zt=(A,B)

P(X=xt,Z=zt|p)=C53P(Z=A)3P(1-Z=A)2C105pb5(1-pb)5C109pa9(1-pa)C108pa8(1-pa)2C104pb4(1-pb)6C107pa7(1-pa)3

对上式pa和pb分别求偏导:

pa=A中抽取到白色次数/A中抽取的次数

pb=B中抽取到白色次数/B中抽取的次数

如果知道白球出现的次数,而不知道抽取的箱子,pa和pb怎么计算?X为观察变量,Z为隐变量,可以通过下面的方法进行pa和pb的计算:

1 随机初始化pa和pb

2 由上算出Z的分布,例如pa=0.7,pb=0.5 假设从A中抽取,白球为5个的概率为C105pa5(1-pa)5,假设从B中抽取,白球为5的概率C105pb5(1-pb)5,算出那个的值大,该次实验抽取的箱子就是那个

3 由上面的抽取得到的结果,计算pa和pb,得到和上述一样的表达式

下面开始公式的推到:

已知观察变量X和观察样本x1,...xn,求X的极大似然函数:

l(p)=∑lnP(X=xi)

其中P(x=xi)是边缘概率:

P(X=xi)=∑P(X=xi,Z=zj)

得到:

l(p)=∑ln∑P(X=xi,Z=zj)∑

     =∑ln∑aj(P(X=xi,Z=zj)/aj)

lnx为凹函数,由jesen不等式得到:

l(p)= ∑ln∑aj(P(X=xi,Z=zj)/aj)

      >=∑∑ajlnP(X=xi,Z=zj)/aj

等式成立的条件是随机变量X为常数:

P(X=xi,Z=zj)/aj=const

∑P(X=xi,Z=zj)/∑aj=const

得到P(X=xi)=const

aj=P(X=xi,Z=zj)/P(X=xi)

aj就是Z的后验概率

l(p)=∑∑ajlnP(X=xi,Z=zj)/aj

下面通过两步来计算p值:

1 通过随机初始化的p求aj=P(X=xi,Z=zj)/P(X=xi)

2 通过l(p)=∑∑ajlnP(X=xi,Z=zj)/aj求p

原文地址:https://www.cnblogs.com/semen/p/7077960.html