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).
    重复上述过程几次到收敛即可。

  • 相关阅读:
    中心极限定理
    BCEloss和交叉熵损失的区别
    postgresql的python接口
    DataGrip 2020.1 安装与激活方法
    区块链技术
    TensorRT推理加速推断并提高吞吐量
    纯视觉取代slam做路径规划及避障的思路
    DL重新回顾总结
    OpenCV 轮廓方向
    OpenCV 低通滤波(可设置频率)
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/8681086.html
Copyright © 2011-2022 走看看