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. freopen()函数

    freopen函数通过实现标准I/O重定向功能来访问文件,而fopen函数则通过文件I/O来访问文件. freopen函数在算法竞赛中常被使用.在算法竞赛中,参赛者的数据一般需要多次输入,而为避免重复 ...

  2. Leet-code144. Binary Tree Preorder Traversal

    这是一道将二叉树先序遍历,题目不难. 首先采用深搜递归 /** * Definition for a binary tree node. * public class TreeNode { * int ...

  3. 如何清除SharePoint Server 配置缓存

    日常运维中您可能需要清除SharePoint 2010/2013/2016中的过期配置缓存.例如,有时计时器作业往往会卡住,并在这种情况下清除缓存.您可以手动清除SharePoint配置缓存或者使用P ...

  4. acdream 小晴天老师系列——我有一个数列! (ST算法)

    小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)S ...

  5. 【Python图像特征的音乐序列生成】关于图像特征的描述词

    查阅了很久的资料,决定依据Yoshida的<Image retrieval system using impression words>这篇论文里的词语来定义. Yoshida 等的 Ar ...

  6. MovieReview—Wile Hunter(荒野猎人)

     Faith is Power         Faith is power, this sentence is not wrong. Find your own beliefs, and strug ...

  7. GIT分布式版本控制器的前后今生

    Git的入门与安装 GIT基础操作 GIT的分支应用 GITLAB应用 gitlab与pycharm应用 GITHUB使用

  8. Sequence II

    6990: Sequence II 时间限制: 3 Sec  内存限制: 128 MB提交: 206  解决: 23[提交][状态][讨论版][命题人:admin] 题目描述 We define an ...

  9. java基础—配置环境变量

    前言 学习java的第一步就要搭建java的学习环境,首先是要安装JDK,JDK安装好之后,还需要在电脑上配置"JAVA_HOME”."path”."classpath& ...

  10. 【上下界网络流 费用流】bzoj2055: 80人环游世界

    EK费用流居然写错了…… Description     想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么     一个80人的团 ...