zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    bzoj1007: [HNOI2008]水平可见直线(单调栈)
    1264: [AHOI2006]基因匹配Match(动态规划神题)
    bzoj1433: [ZJOI2009]假期的宿舍(最大二分图匹配)
    bzoj3931: [CQOI2015]网络吞吐量(spfa+网络流)
    [ZJOI2007]矩阵游戏
    [HAOI2007]覆盖问题
    [ZJOI2008]树的统计
    [ZJOI2010]数字计数
    [HAOI2006]旅行
    [HAOI2006]数字序列
  • 原文地址:https://www.cnblogs.com/semen/p/7077960.html
Copyright © 2011-2022 走看看