理解HMM
hidden markov model
markov model: 把一个总随机过程看成一系列状态的不断转移, 其特性主要使用转移概率来表示。
HMM:认为模型的状态是不可观测的(hidden), 能观测的只是它表现出的一些观测值。
MM 的观测序列本身就是状态序列
HMM 的观测序列不是状态序列
设有N个篮子,每个都装了许多彩色小球,小球颜色有M种.现在按下列步骤产生出一个输出符号(颜色)序列:按某个初始概率分步,随机的选定一个篮子,从中随机地取出一个球,记录球的颜色作为第一个输出符号,并把球放回原来的篮子.然后按照某个转移概率分布(与当前篮子相联系)选择一个新的篮子(也可能仍停留在当前篮子),并从中随机取出一个球,记下颜色作为第二个输出符号.
如此重复地做下去,这样便得到一个输出序列.我们能够观测到的是这个输出序列—颜色符号序列,而状态(篮子)之间的转移(状态序列)被隐藏起来了.每个状态(篮子)输出什么符号(颜色)是由它的输出概率分布(篮子中彩球数目分布)来随机决定的.选择哪个篮子(状态)输出颜色由状态转移矩阵来决定.












隐马尔科夫模型的三个基本问题:
1, evaluation:从骰子数列中推断是否使用了作弊骰子,如果知道使用了作弊骰子, 那么在投掷骰子的过程中出现这个序列的概率有多大。
2,decoding: 如果确实使用了作弊骰子, 这些序列中哪些点是有B 投掷出来的。
3, learning: 参数训练问题,




q是某个状态序列产生某个观测值的概率
P是从一个状态转移到另一个状态的概率




使用Viterbi算法。定义一个路径最优变量, 然后采取递推的方式迭代, 进而降低计算量。
HMM 在CpG island中的应用,输入DNA片段, 判断是否为CpG island.
对于一条DNA , 两种情况, 是CpG island and not CpG island.模型建立:




识别CpG区域:
识别CpG区域相当于寻找连续的C+和G+组合的区域,相
当于把生成原始序列隐状态鉴别出来,隐状态中C+和G+
连续较高的区域为CpG区域,这对应到隐马尔可夫模型的
第二个问题,译码问题。
应用HMM3类基本问题中解码问题(decoding ):
给定一个隐马尔柯夫模型M 和一个字符序列X, 在M中为X
寻找一条最优路径P*,要求使得P(X|P*)最大(Viterbi算
法)
如果找到最优路径P*,则这条路径穿过的“+” 状态将对
应于CpG岛。





更细节的问题查看保存在云盘上的PPt
理解HMM的更多相关文章
- 理解HMM算法
长这样: 理解的前提: (1)状态:生成观测值的变量(上图中的"吃"和"睡"). (2)观测值:状态乘上输出概率对应的输出(上图中的橙色节点). (3)输出概率 ...
- [综]隐马尔可夫模型Hidden Markov Model (HMM)
http://www.zhihu.com/question/20962240 Yang Eninala杜克大学 生物化学博士 线性代数 收录于 编辑推荐 •2216 人赞同 ×××××11月22日已更 ...
- 概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- viterbi维特比算法和隐马尔可夫模型(HMM)
隐马尔可夫模型(HMM) 原文地址:http://www.cnblogs.com/jacklu/p/7753471.html 本文结合了王晓刚老师的ENGG 5202 Pattern Recognit ...
- HMM隐马尔可夫模型来龙去脉(二)
目录 前言 预备知识 一.估计问题 1.问题推导 2.前向算法/后向算法 二.序列问题 1.问题推导 2.维特比算法 三.参数估计问题 1.问题推导 2.期望最大化算法(前向后向算法) 总结 前言 H ...
- 语音激活检测(VAD)--前向神经网络方法(Alex)
这是学习时的笔记,包含相关资料链接,有的当时没有细看,记录下来在需要的时候回顾. 有些较混乱的部分,后续会再更新. 欢迎感兴趣的小伙伴一起讨论,跪求大神指点~ VAD(ffnn神经网络)-Alex t ...
- NLP知识十大结构
NLP知识十大结构 2.1形式语言与自动机 语言:按照一定规律构成的句子或者字符串的有限或者无限的集合. 描述语言的三种途径: 穷举法 文法(产生式系统)描述 自动机 自然语言不是人为设计而是自然进化 ...
- 信息检索及DM必备知识总结:luncene
原文链接:http://blog.csdn.net/htw2012/article/details/17734529 有少量修改!如有疑问,请访问原作者. 一:信息检索领域: 信息检索和网络数据领域( ...
- 通俗理解隐马尔科夫模型HMM(转载)
作者:Yang Eninala 链接:https://www.zhihu.com/question/20962240/answer/33438846 来源:知乎 著作权归作者所有,转载请联系作者获得授 ...
随机推荐
- POJ 3249 拓扑排序+DP
貌似是道水题.TLE了几次.把所有的输入输出改成scanf 和 printf ,有吧队列改成了数组模拟.然后就AC 了.2333333.... Description: MR.DOG 在找工作的过程中 ...
- useradd 和groupadd
1.作用useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户.2.格式useradd [-d home] [-s shell] [-c comment] [-m [-k temp ...
- PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
/** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) * 时间:2006/5/9 * 作者:欣然随风 * QQ:276624915 */ class class_ftp { publi ...
- NimBus一个好的开发框架
NimbusKit是一个非常适合有经验的开发人员使用的iOS开发框架,具备完整的文档,并且提供了模块化的方式来解决iOS开发中的各种不同需求.最重要的是,该框架会经常添加一些新的组件和功能. Nimb ...
- S1:运算符
中括号和小括号的用法: 一般而言,对象中的属性的值是通过点(.)运算符来取值,但是考虑到这样一种情况,我们在遍历一个对象的时候,对其中的属性的键(key)是一无所知的,我们怎么通过点(.)来访问呢?这 ...
- jquery删除原事件
$(document).ready(function(){ var fn = $("#exportCsv").attr( "onclick" ); // 获取原 ...
- JAVA中StringBuffer类常用方法详解
String是不变类,用String修改字符串会新建一个String对象,如果频繁的修改,将会产生很多的String对象,开销很大.因此java提供了一个StringBuffer类,这个类在修改字符串 ...
- 经典线程同步 互斥量Mutex
阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇一个经典的多线程同步问题> <秒杀多线程第五篇经典线程同步关键段CS> <秒杀多线程第六篇经典线程同步事件Event& ...
- 数组的foreach方法和jQuery中的each方法
/* * 数组的forEach方法: * 1.返回给回调的参数先是值,然后是下标 * 2.回调函数执行时内部的this指向window * */ /*var arr = [1,2,3,4,5]; ar ...
- Javascript ----字符串(String)中的方法
涉及字符串时,常用到的几个方法... --------------------------------------------------------------------------------- ...