隐马尔可夫模型

针对隐马尔可夫模型第一个问题的解决方法之前向算法

笑着哭i 提交于 2020-01-31 13:05:58
复习, 状态序列(state sequence),观测序列(observation sequence) 问题一 概率计算问题 转载链接:https://zhuanlan.zhihu.com/p/27056207 给定模型的情况下,求某种观测序列出现的概率。 一般方法: 前向、后向算法 举例来说明一下,例子如下:(例子来源于维基百科) 考虑一个村庄,所有村民都健康或发烧,只有村民医生才能确定每个人是否发烧。医生通过询问患者的感受来诊断发烧。村民只能回答说他们觉得正常,头晕或感冒。 医生认为,他的患者的健康状况作为离散的马可夫链。 “健康”和“发烧”有两个状态,但医生不能直接观察他们;健康与发烧的状态是隐藏的。每天都有机会根据患者的健康状况,病人会告诉医生他/她是“正常”,“感冒”还是“头昏眼花”。 比如,给定的HMM模型参数已知,求出三天观察是(Dizzy,Cold,Normal)的概率是多少?对应的HMM模型参数已知的意思,就是说A(trainsition_probability),B(emission_probability),pi 矩阵是已经知道的。 这里仅算两天 这个问题我们最容易想到的解法就是将路径全部遍历一遍, 假如第一天为 Healthy 第一天为Healthy的概率为:0.6 在第一天为Healthy的基础上,观察为Dizzy的概率为: P(Dizzy|Healthy

隐马尔可夫模型深入理解——转载

蹲街弑〆低调 提交于 2020-01-31 10:28:58
隐马尔可夫模型(Hidden Markov model, HMM)是一种结构最简单的动态贝叶斯网的生成模型,它也是一种著名的有向图模型。它是典型的自然语言中处理标注问题的统计机器学模型,本文将重点介绍这种经典的机器学习模型。 转载链接: https://mp.weixin.qq.com/s?src=11&timestamp=1580378766&ver=2128&signature=id557IJtuCw7XYAqKzyjaqPMD2B88eVFQXaFhx2lZw3QnWFB NQjXJF8fcOVsomhyf5qL 81QZO0SbN8mwLWNn2sayM-0r s8uj7Q64aI7RtpULW d1L-je4qHKpiS55&new=1 “ 摇骰子问题 ” —— 经典 1. 引言 假设有三个不同的骰子(6面、4面、8面),每次先从三个骰子里面选择一个,每个骰子选中的概率为1/3,如下图所示,重复上述过程,得到一串数值[1,6,3,5,2,7]。这些 可观测变量组成可观测状态链 。同时,在隐马尔可夫模型中还有一条由 隐变量组成的隐含状态链 ,在本例中即 骰子的序列 。比如得到这串数字骰子的序列可能为[D6, D8, D8, D6, D4, D8]。 隐马尔可夫型示意图如下所示: 图中,箭头表示变量之间的依赖关系。图中各箭头的说明如下: 在任意时刻, 观测变量 (骰子)

Python实现隐马尔可夫模型的前向后向算法

牧云@^-^@ 提交于 2019-12-30 23:57:09
本篇文章对隐马尔可夫模型的前向和后向算法进行了Python实现,并且每种算法都给出了循环和递归两种方式的实现。 文章目录 前向算法Python实现 循环方式 递归方式 后向算法Python实现 循环方式 递归方式 前向算法Python实现 循环方式 import numpy as np def hmm_forward ( Q , V , A , B , pi , T , O , p ) : """ :param Q: 状态集合 :param V: 观测集合 :param A: 状态转移概率矩阵 :param B: 观测概率矩阵 :param pi: 初始概率分布 :param T: 观测序列和状态序列的长度 :param O: 观测序列 :param p: 存储各个状态的前向概率的列表,初始为空 """ for t in range ( T ) : # 计算初值 if t == 0 : for i in range ( len ( Q ) ) : p . append ( pi [ i ] * B [ i , V [ O [ 0 ] ] ] ) # 初值计算完毕后,进行下一时刻的递推运算 else : alpha_t_ = 0 alpha_t_t = [ ] for i in range ( len ( Q ) ) : for j in range ( len ( Q ) ) :

隐马尔可夫模型(HMM)的MATLAB实现——Viterbi算法

夙愿已清 提交于 2019-12-06 14:36:15
维特比算法实际是用动态规划求解隐马尔可夫模型解码问题,即用动态规划求概率最大路径(最优路径)。代码中有示例,来自李航《统计学习方法》 function [Delta,Psi,P,I] = Viterbi(A,B,Pi,O) % 函数功能:利用维特比算法找到观测序列O的最优路径 % % 参考文献:李航《统计学习方法》 % % 思路: % 1,初始化 % delta_1(i) = Pi_i * b_i(o1), i = 1,2,...,N % psi_1(i) = o, i = 1,2,...,N % 2,递推,对于t = 2,3,...,T % delta_t(i) = max_1-from-1-to-N(delta_t-1(j) * a_ji) * b_i(ot), i = 1,2,...,N % psi_t(i) = arg max_1-from-1-to-N(delta_t-1(j) * a_ji), i = 1,2,...,N % 3,终止 % 最优路径概率P* = max_1-from-1-to-N(delta_T(i)) % 最优路径终点i*_T = arg max_1-from-1-to-N(delta_T(i)) % 4,最优路径回溯,对于t = T-1,T-2,...,1 % i*_t = psi_t+1(i*_t+1) % 最优路径I* = (i*_1,i*_2,

隐马尔可夫模型(HMM)的分类

拜拜、爱过 提交于 2019-12-06 14:35:04
1、遍历型(ergodic model) 即每个状态都可以由任意一个状态演变而来,aij>0,for all i , j. 如图: 2、left-right type of HMM 每个状态只能由下标值小于当前值得状态以及其本身转移而来,即从左向右转移。因此状态转移矩阵有如下特性: , 这种由左向右转移的HMM转移状态矩阵为上半矩阵,同时此类型矩阵一般同时存在一个最长跳跃距离,即有 是最长跳跃距离,以图中为例, =2. 这种类型的HMM模型能够非常好的用于随时间变化的信号,比如语音信号。 3、其他类型 上图所示HMM模型严格来说也属于left-right type of HMM,但是它又存在它自己独特的规则,更类似于两个平行的left-right HMM的组合模型。 但是我们应该明白,对于不同类型的HMM,对于学习问题的求解来说步骤都是一样的。 来源: CSDN 作者: Alla_Z 链接: https://blog.csdn.net/Alla_Z/article/details/80314699

隐马尔可夫模型求解三大问题实例剖析

做~自己de王妃 提交于 2019-12-06 14:34:37
  自然语言处理技术离不开隐马尔可夫理论。书中几个例子搞得我头晕眼花了,仔细研究后把思路整理一下,画成简单的示意图,希望能帮助大家理解。    模型实例   假设 S 是天气状况的集合,分别是“晴天”、"多云"、“下雨”,   其初始概率分布为, 晴天 多云 下雨 0.63 0.17 0.20   其状态转移概率矩阵为: - 晴 阴 雨 晴 0.500 0.375 0.125 阴 0.250 0.125 0.625 雨 0.250 0.375 0.325   假设有一位盲人住在海边,他不能通过直接观察天气的状态来预报天气。但他有一些水藻,因此可以利用水藻的干湿来预报天气。水藻的干湿与天气状况之间的关系如下表: - 干燥 稍干 潮湿 湿透 晴 0.60 0.20 0.15 0.05 阴 0.25 0.25 0.25 0.25 雨 0.05 0.10 0.35 0.50 问题1:求解观察序列的概率   针对上述模型,我们求p(干燥,潮湿,湿透)。思路很简单: 确定隐状态的初始概率分布,这是已知的,参见下图第一列。 根据隐状态到观测结果“干燥”的发射概率(参见下图第一列到第二列的箭头标注),计算得到“干燥”这个观测结果时,三个隐状态的概率,参见下图第二列。 根据隐状态之间的转移概率,重新确定在观测到“干燥”结果后的第二天,隐状态的概率分布,参见下图第三列。图中,我只标注了“晴”的计算过程

隐马尔可夫模型(HMM) - 1 - 基本概念

好久不见. 提交于 2019-12-06 14:15:30
声明: 1 ,本篇为个人对《 2012. 李航 . 统计学习方法 .pdf 》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。 2 ,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。 3 ,如果有内容错误或不准确欢迎大家指正。 4 ,如果能帮到你,那真是太好了。 基本概念 惯例性,在刚看到“隐马尔可夫模型”这个名字时我的第一反应是:这什么鬼?于是在看书上的定义时一万个不明白.... 所以,为了能清楚的描述“隐马尔可夫模型”,我们还是从例子开始。 例子 如上图所示,有4个盒子,每个盒子里都装有红白两种颜色的球,每个盒子中球的个数见上图。 然后,按照下面的规则抽5次球: 第一次:从4个盒子里等概论随机选取1个盒子,然后从这个盒子里随机抽出1个球,记录其颜色后放回; 剩下4次: 若上一次是从盒子1中抽球,那这次一定是盒子2; 若上一次是盒子2或3,那这次则分别以0.4和0.6的概率选择左边或右边的盒子; 若上一次是盒子4,那这次各以0.5的概率选择是停留在盒子4还是转移到盒子3。 确定转译的盒子后,再从这个盒子里随机抽出一个球,记录其颜色后放回。 就这样,得到一个球的颜色序列: {红,红,白,白,红} 在这个过程中

HMM隐马尔可夫模型详解

折月煮酒 提交于 2019-12-06 14:14:24
1 隐马尔可夫模型HMM 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。 当然,随着目前深度学习的崛起,尤其是 RNN , LSTM 等神经网络序列模型的火热,HMM的地位有所下降。 但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。 1.1 什么样的问题需要HMM模型 首先我们来看看什么样的问题解决可以用HMM模型。 使用HMM模型时我们的问题一般有这两个特征: 1)我们的问题是基于序列的,比如时间序列,或者状态序列。 2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。 有了这两个特征,那么这个问题一般可以用HMM模型来尝试解决。这样的问题在实际生活中是很多的。比如:我现在在打字写博客,我在键盘上敲出来的一系列字符就是观测序列,而我实际想写的一段话就是隐藏序列,输入法的任务就是从敲入的一系列字符尽可能的猜测我要写的一段话,并把最可能的词语放在最前面让我选择,这就可以看做一个HMM模型了。再举一个,我在和你说话,我发出的一串连续的声音就是观测序列,而我实际要表达的一段话就是状态序列,你大脑的任务

隐马尔可夫模型(HMM)的分类

ⅰ亾dé卋堺 提交于 2019-12-05 02:39:03
1、遍历型(ergodic model) 即每个状态都可以由任意一个状态演变而来,aij>0,for all i , j. 如图: 2、left-right type of HMM 每个状态只能由下标值小于当前值得状态以及其本身转移而来,即从左向右转移。因此状态转移矩阵有如下特性: , 这种由左向右转移的HMM转移状态矩阵为上半矩阵,同时此类型矩阵一般同时存在一个最长跳跃距离,即有 是最长跳跃距离,以图中为例, =2. 这种类型的HMM模型能够非常好的用于随时间变化的信号,比如语音信号。 3、其他类型 上图所示HMM模型严格来说也属于left-right type of HMM,但是它又存在它自己独特的规则,更类似于两个平行的left-right HMM的组合模型。 但是我们应该明白,对于不同类型的HMM,对于学习问题的求解来说步骤都是一样的。 来源: https://www.cnblogs.com/aabbcc/p/11898706.html

用隐马尔可夫模型做基因预测

末鹿安然 提交于 2019-12-04 04:24:22
什么是隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM) 是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别,特别是我们今天要讲的基因预测。是在被建模的系统被认为是一个马尔可夫过程【一段组装好的序列】与未观测到的(隐藏的)的状态【哪些是编码区哪些不是】的统计马尔可夫模型。 下面用一个简单的例子来阐述: 假设我手里有两个颜色不同的骰子,一个是橘色(Coding,C)的另一个是蓝色(Noncoding,N)的。但是和平常的骰子不同的是,他们稳定下来只要有四种可能,也就是上下是固定的(你可以理解为他们只会平行旋转)。这样每个骰子出现ATCG的概率都是1/4. 两条链,在一起 假设我们开始投骰子,我们先从两种颜色选一个,挑到每种骰子的概率都是1/2。然后我们掷骰子,我们得到ATCG中的一个。不停地重复以上过程,我们将会得到一串序列,每个字符都是ATCG中的一个。例如CGAAAAAATCG 这串序列就叫做可见状态链。但是在隐马尔可夫模型中,我们不仅仅有这么一串可见状态链,还有一串隐含状态链。在这个例子里,这串隐含状态链就是你用的骰子的序列。比如,隐含状态链有可能是:C C N N N N N N N C C C。 一般来说