• EM算法


    一般地,用(Y)表示观测随机变量的数据,(Z)表示隐随机变量的数据,(Y)(Z)连在一起称为完全数据,观测数据(Y)又称为不完全数据。假设给定观测数据(Y),其概率分布是(P(Y| heta)),其中( heta)是需要估计的模型参数。那么不完全数据(Y)的似然函数是(P(Y| heta)),完全数据的联合概率分布是(P(Y,Z| heta))

    算法流程

    EM算法通过迭代求(L( heta)=log P(Y| heta))的极大似然估计。每次迭代包含两步:E步,求期望;M步,求极大化:

    • 输入:观测变量数据(Y),隐变量数据(Z),联合分布(P(Y,Z| heta)),条件分布(P(Z|Y, heta))

    • 输出:模型参数( heta)

      1. 选择参数的初始值( heta^{(0)}),开始迭代

      2. E步:记( heta^{(i)})为第(i)次迭代参数( heta)的估计值,在第(i+1)次迭代的E步,计算(Q)函数

      [egin{aligned} Q( heta, heta^{(i)}) &=E_Z[log P(Y,Z| heta)|Y, heta^{(i)}] \ & =sum_Z log P(Y,Z| heta) P(Z|Y, heta^{(i)}) end{aligned}]

      这里,(P(Z|Y, heta^{(i)}))是在给定观测数据(Y)和当前的参数估计下隐变量数据(Z)的条件概率分布

      1. M步:求使(Q( heta, heta^{(i)}))极大化的( heta),确定第(i+1)次迭代的参数估计值( heta^{(i+1)})

      [ heta^{(i+1)}=mathop{argmax}limits_{ heta} Q( heta, heta^{(i)}) ]

      1. 重复第2和第3步,直到收敛
    • 参数的初始值可以任意选择,但需注意EM算法对初始值是敏感的

    • 终止迭代条件,一般是对较小的正数(epsilon_1,epsilon_2),若满足

      [|| heta^{(i+1)}- heta^{(i)}||<epsilon_1 qquad ||Q( heta^{(i+1)}, heta^{(i)})-Q( heta^{(i)}, heta^{(i)})||<epsilon_2 ]

      则停止迭代

  • 相关阅读:
    mybatis四大接口之 ParameterHandler
    mybatis四大接口之 Executor
    网络协议
    4、Android UI测试
    3、Android构建仪表测试
    【翻译】Ext JS 6.2 早期访问版本发布
    2、Android构建本地单元测试
    1、Android测试入门
    安卓中的事件分发机制源码解析
    安卓IPC机制之Binder详解
  • 原文地址:https://www.cnblogs.com/weilonghu/p/11922346.html
Copyright © 2020-2023  润新知