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