zoukankan      html  css  js  c++  java
  • Baum Welch估计HMM参数实例

    Baum Welch估计HMM参数实例

    下面的例子来自于《What is the expectation maximization algorithm?》

    题面是:假设你有两枚硬币A与B,这两枚硬币抛出正面的概率分别为( heta_A)( heta_B)。下面给出一些观测的结果,需要你去估计这两个参数( heta_A)( heta_B)

    1. 假设给的数据是完整的数据,也就是样本数据告诉了你,此样本来自硬币A还是硬币B。针对与完整的数据,直接使用极大似然估计即可。具体的计算如下图所示:

    我们可以看到,整个估计的过程就是分别统计来自A的正反面与来自B的正反面,然后内部进行估计(本质上是极大似然)。

    1. 如果给的数据是不完整的数据呢,比如我们不知道当前观测序列是来自硬币A 还是硬币B,这个时候,就需要使用EM算法。

    这里解释下求解的过程,首先是我们假设初始的( heta_A)( heta_B)的值分别为 (0.6)(0.5). 我们必须要知道当前样本来自A的概率与来自B的概率,然后才能得出来自A的正面期望数和来自B的正面期望数。估计很多人会被卡在这里,我也是。因为不知道图上的(0.45)等值是怎么得出来的。 实际上很简单,既然我们有了观测序列,那么我们分别计算一下来自A的似然值,然后再计算一下来自B的似然值。根据似然的大小来决定概率,具体的坐下如下

    [L_A = 0.6^5 imes (1 - 0.6)^5 = 0.0007962624 ]

    然后再计算下来自B的似然值

    [L_B = 0.5^5 imes (1 - 0.5)^5 = 0.0009765625 ]

    然后计算下这两个的比值,来计算来自A的概率

    [P(A) = dfrac{L_A}{L_A + L_B} = 0.45 ]

    那么$$P(B) = 1 - P(A) = 0.55$$

    然后采用上面求MLE的方法估计参数( heta_A)和参数( heta_B).
    重复上述过程几次到收敛即可。

  • 相关阅读:
    getopt( )和 getopt_long( )
    关于跳跃表 转
    进程控制块的存放和当前进程的确定
    BUAA_OO_2020_Unit1 Summary
    熟悉常用的Linux操作
    编译原理
    词法分析
    组合数据类型练习
    实验一 词法分析实验
    简化版C语言文法
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/8681086.html
Copyright © 2011-2022 走看看