Baum Welch估计HMM参数实例

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

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

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

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

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

这里解释下求解的过程,首先是我们假设初始的\(\theta_A\)与\(\theta_B\)的值分别为 \(0.6\) 与 \(0.5\). 我们必须要知道当前样本来自A的概率与来自B的概率,然后才能得出来自A的正面期望数和来自B的正面期望数。估计很多人会被卡在这里,我也是。因为不知道图上的\(0.45\)等值是怎么得出来的。 实际上很简单,既然我们有了观测序列,那么我们分别计算一下来自A的似然值,然后再计算一下来自B的似然值。根据似然的大小来决定概率,具体的坐下如下
\[L_A = 0.6^5\times (1 - 0.6)^5 = 0.0007962624\]
然后再计算下来自B的似然值
\[L_B = 0.5^5\times (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的方法估计参数\(\theta_A\)和参数\(\theta_B\).
重复上述过程几次到收敛即可。

Baum Welch估计HMM参数实例的更多相关文章

  1. 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  2. 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包)

    目录 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包) 导论 rugarch 简介 指定一个 \(\text{GARCH}(1, 1)\) 模型 模拟一个 GARCH 过程 拟合 ...

  3. 在 R 中估计 GARCH 参数存在的问题(续)

    目录 在 R 中估计 GARCH 参数存在的问题(续) rugarch 包的使用 简单实验 rugarch 参数估计的行为 极端大样本 结论 在 R 中估计 GARCH 参数存在的问题(续) 本文承接 ...

  4. 在 R 中估计 GARCH 参数存在的问题

    目录 在 R 中估计 GARCH 参数存在的问题 GARCH 模型基础 估计 GARCH 参数 fGarch 参数估计的行为 结论 译后记 在 R 中估计 GARCH 参数存在的问题 本文翻译自< ...

  5. Baum–Welch algorithm

    Baum–Welch algorithm 世界上只有一个巴菲特,也只有一家文艺复兴科技公司_搜狐财经_搜狐网 http://www.sohu.com/a/157018893_649112

  6. 读取xml文件中的配置参数实例_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 paras.xml文件 <?xml version="1.0" encoding=" ...

  7. 鲍姆-韦尔奇算法求解HMM参数

    1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况. 第一种情况较为简单,就是我们已知DD个长度为TT的观测序列和对应的隐藏状态序列,即{(O1,I1),(O2,I2),. ...

  8. HMM分词实例

    class HMM(object): def __init__(self): import os # 主要是用于存取算法中间结果,不用每次都训练模型 self.model_file = 'model/ ...

  9. flask-sqlalchemy中 backref lazy的参数实例解释和选择

    官方文档:http://docs.sqlalchemy.org/en/rel_1_0/orm/basic_relationships.html#relationship-patterns 最近在学习到 ...

随机推荐

  1. 融云红包全新升级,让App用户更便捷地用“钱”交流感情!

    随着移动互联网的飞速发展,如何增强社交关系.留住用户的心已成为移动社交化时代各类App持续探索的问题,除了接入即时通讯的能力,众多社交平台开始通过趣味性十足的红包功能为App中的社交场景赋能.当即时通 ...

  2. CPP-基础:extern"C"

    简介:extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的:其次,被它修饰的目标是“C”的.让我们来详细解读这两重含义. 含义: 1.被e ...

  3. 远程连接 mySql数据库

    远程连接 mySql数据库 一.安装并配置MySQL1.安装MySQL:运行mysql-essential-6.0.11-alpha-win32,按“MySQL+6.0+Windows下安装图解”完成 ...

  4. Spring中使用事务搭建转账环境 转账操作,

    演示不使用事务出现异常情况 Dao层两个方法lessMoney()和moreMoney() package com.swift; import org.springframework.jdbc.cor ...

  5. Virt-install用法:

       #一般选项:指定虚拟机的名称.内存大小.VCPU个数及特性等 -n  NAME,  --name=NAME:虚拟机名称,需全局惟一: -r  MEMORY,  --ram=MEMORY:虚拟机内 ...

  6. 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!

    // 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username&quo ...

  7. 【转】vxworks的default boot line说明

    boot程序的主要功能是引导vxworks 内核,所以boot程序需要知道vxworks的内核存放在何处,通过什么手段去获取.在vxworks缺省的boot程序里有一条内建的default boot ...

  8. NOIP模拟赛 路面修整

    [题目描述] FJ打算好好修一下农场中某条凹凸不平的土路.按奶牛们的要求,修好后的路面高度应当单调上升或单调下降,也就是说,高度上升与高度下降的路段不能同时出现在修好的路中. 整条路被分成了N段,N个 ...

  9. C++ 学习笔记(四)类的内存分配及this指针

    类,是使用C++的最主要的内容.如果将c++与C语言做比较,我感觉类更像是结构体的加强进化版.在刚接触C++不久的时候总是让类,对象,this指针弄得一脸懵逼,我对类有比较清楚的认识是从理解类在内存中 ...

  10. MySQL自学笔记_聚集函数

    1. 使用场景 很多时候我们需要查找数据库中符合特定条件的数据的计数.最大值.最小值.平均值等一个数字,并需要要导出所有相关数据明细.此时就需要用到聚集函数. 而返回所有数据明细会占用数据库资源和网络 ...