• 《统计学习方法》笔记--EM算法


    EM(expectation maximization algorithm)用于含有隐变量的概率模型参数的极大似然估计。

    例子:

    有三枚A,B,C硬币。首先A为选择硬币,对其进行投掷,其投掷结果正则选择B硬币进行投掷,反为选择C硬币,然后根据选择的硬币再进行投掷,记录该硬币的投掷结果,正面为1,反面为0;重复上述过程。投掷实验过程如下,

    图1-1 投掷A,B,C硬币实验

    实验的记录结果为:0,1,1,0,1,1,1,0,0,1

    现假设只能看到掷硬币的结果(如下),不能看到过程,即表示看不到所记录的结果'1'和'0'是由B硬币还是由C硬币掷出来的,也等同于看不到 A选择硬币的投掷结果,试估计这三枚硬币出现正面的概率分别是多少。

    图1-2 只能看到掷硬币的结果

    因此,这三硬币的一次试验的模型可以写作如下:

    那么,根据总的十次试验观测数据得到模型的似然函数如下,

    再对似然函数求极大化,便可这三枚硬币出现正面的概率分别是多少,

     

    然而,对于上述的是没有解析解的,只能通过迭代求,而EM算法就是用于求解该问题的一种迭代算法。

    首先,选取参数的初始值,例如上述的三枚硬币的投掷问题,接着进行迭代(i,表示第i次迭代),重复EM步骤,直到参数的估计值趋于稳定;

    E步:在模型参数下计算,来自B硬币的概率

    M步:更新参数,

    根据上面的EM步骤,三枚硬币在的初始参数下,每次迭代的结果如下

    第一次迭代的E步骤:

    第一次迭代的M步骤:

    第二次迭代的E步骤:

    第二次迭代的M步骤:

    参数趋于稳定,故

    如果初始值取,那么得到参数的极大似然估计则为,可见EM算法初始值的不同将得到不同的估计结果。

     

    EM算法流程:

    输入:观测变量数据Y,隐变量数据Z,联合分布。条件分布

    输出:模型参数

    1. 选择参数的初始值进行迭代

    2. E步:为第i次迭代的参数估计值,在第i+1次迭代的E步中,计算

      (3)M步:求使极大化的,确定下一次(第i+1次)迭代的参数估计值

      (4)重复(2),(3),直至收敛。

      在EM算法的流程中Q函数为完全数据的对数似然函数,关于在给定观测数据Y和当前参数下,其对未观测数据Z的条件概率分布的期望。

       

       

  • 相关阅读:
    表模块模式与事务脚本模式的代码编写
    解决方案下显示的网站名称被追加编号的问题解决方法
    应用层代码
    关于CodeReview(java)(转)
    关于事务的几个概念介绍(转)
    关于JVM的ClassLoader(转)
    svn相关
    .subversion
    linux用户与组的管理(命令加入、手动加入、加入组、用户之间的切换)
    回调函数
  • 原文地址:https://www.cnblogs.com/lincz/p/12562488.html
Copyright © 2020-2023  润新知