前言:我发现网上很多博客在讲马尔科夫相关的知识点的时候, 总是讲的不是很清楚,有的纯粹只关注理论,看不太懂,有的一上来就搞几个算例,更是一片懵逼,有的又将一些概念一会儿换一个说法,一会儿是马尔科夫过程,一会儿是马尔科夫模型,一会儿是马尔科夫链,傻傻分不清楚,也不好理解,决定自己抽点时间,好好写一下,会详细介绍马尔科夫模型、马尔科夫链、隐马尔可夫模型、条件随机场等相关的概念和案例,本文为第一篇。文中的理解方式是按照自己的理解方式来叙述的,不适合于每个人。

一、马尔科夫模型

1.1 马尔可夫过程

马尔可夫过程(Markov process)是一类随机过程。由俄国数学家A.A.马尔可夫于1907年提出。该过程具有如下特性:在已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它以往的演变 (过去 )。例如森林中动物头数的变化构成——马尔可夫过程。在现实世界中,有很多过程都是马尔可夫过程,如液体中微粒所作的布朗运动、传染病受感染的人数、车站的候车人数等,都可视为马尔可夫过程。(这里虽然我也不清楚这些现象到底是不是,姑且就认为是吧!)

马尔科夫过程中最核心的几个概念:过去,现在,将来。其中最核心的在于“现在”如何理解。

在马尔可夫性的定义中,"现在"是指固定的时刻,但实际问题中常需把马尔可夫性中的“现在”这个时刻概念推广为停时(见随机过程)。例如考察从圆心出发的平面上的布朗运动,如果要研究首次到达圆周的时刻 τ以前的事件和以后的事件的条件独立性,这里τ为停时,并且认为τ是“现在”。如果把“现在”推广为停时情形的“现在”,在已知“现在”的条件下,“将来”与“过去”无关,这种特性就叫强马尔可夫性。具有这种性质的马尔可夫过程叫强马尔可夫过程。在相当一段时间内,不少人认为马尔可夫过程必然是强马尔可夫过程。首次提出对强马尔可夫性需要严格证明的是J.L.杜布。直到1956年,才有人找到马尔可夫过程不是强马尔可夫过程的例子。马尔可夫过程理论的进一步发展表明,强马尔可夫过程才是马尔可夫过程真正研究的对象。

(这段话实在是太过于抽象了,不好理解,心里有数就行,因为这里的过去、现在、将来和我们生活中是有所差别的,不太好理解!)

所以:一个马尔科夫过程就是指过程中的每个状态的转移只依赖于之前的 n个状态,这个过程被称为 n阶马尔科夫模型,其中 n是影响转移状态的数目。最简单的马尔科夫过程就是一阶过程,每一个状态的转移只依赖于其之前的那一个状态,这也是后面很多模型的讨论基础,很多时候马尔科夫链、隐马尔可夫模型都是只讨论一阶模型,甚至很多文章就将一阶模型称之为马尔科夫模型,现在我们知道一阶只是一种特例而已了。

对于一阶马尔科夫模型,则有:

如果第 i 时刻上的取值依赖于且仅依赖于第 i−1 时刻的取值,即


​ 从这个式子可以看出,xi 仅仅与 xi-1有关,二跟他前面的都没有关系了,这就是一阶过程。

总结:马尔科夫过程指的是一个状态不断演变的过程,对其进行建模后称之为马尔科夫模型,在一定程度上,马尔科夫过程和马尔科夫链可以打等号的。

1.2 马尔科夫性(无后效型)

在马尔科夫过程中,在给定当前知识或信息的情况下,过去(即当前以前的历史状态)对于预测将来(即当前以后的未来状态)是无关的。这种性质叫做无后效性。简单地说就是将来与过去无关,值与现在有关,不断向前形成这样一个过程。

1.3 马尔可夫链

时间和状态都是离散的马尔可夫过程称为马尔可夫链,简记为Xn=X(n),n=0,1,2…马尔可夫链是随机变量X1,X2,X3…的一个数列。

这种离散的情况其实草是我们所讨论的重点,很多时候我们就直接说这样的离散情况就是一个马尔科夫模型。

(1)关键概念——状态空间

马尔可夫链是随机变量X1,X2,X3…Xn所组成的一个数列,每一个变量Xi 都有几种不同的可能取值,即他们所有可能取值的集合,被称为“状态空间”,而Xn的值则是在时间n的状态。

(2)关键概念——转移概率(Transition Probability)

马尔可夫链可以用条件概率模型来描述。我们把在前一时刻某取值下当前时刻取值的条件概率称作转移概率。

上面是一个条件概率,表示在前一个状态为s的条件下,当前状态为t的概率是多少。

(3)关键概念——转移概率矩阵

很明显,由于在每一个不同的时刻状态不止一种,所以由前一个时刻的状态转移到当前的某一个状态有几种情况,那么所有的条件概率会组成一个矩阵,这个矩阵就称之为“转移概率矩阵”。比如每一个时刻的状态有n中,前一时刻的每一种状态都有可能转移到当前时刻的任意一种状态,所以一共有n*n种情况,组织成一个矩阵形式如下:

1.4 马尔可夫模型的应用

马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法、序列分类等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。到目前为止,它一直被认为是实现快速精确的语音识别系统的最成功的方法之一。

二、马尔科夫模型的案例之一——天气预报

下面是一个马尔科夫模型在天气预测方面的简单例子。如果第一天是雨天,第二天还是雨天的概率是0.8,是晴天的概率是0.2;如果第一天是晴天,第二天还是晴天的概率是0.6,是雨天的概率是0.4。问:如果第一天下雨了,第二天仍然是雨天的概率是多少?,第十天是晴天的概率是多少?;经过很长一段时间后雨天、晴天的概率分别是多少?

首先构建转移概率矩阵,由于这里每一天的状态就是晴天或者是下雨两种情况,所以矩阵是2x2的,如下:

雨天 晴天  
0.8 0.4 雨天
0.2 0.6 晴天

注意:每列和为1,分别对雨天、晴天,这样构建出来的就是转移概率矩阵了。如下:

假设初始状态第一天是雨天,我们记为

这里【1,0】分别对于雨天,晴天。

初始条件:第一天是雨天,第二天仍然是雨天(记为P1)的概率为:

P1 = AxP0

得到P1 = 【0.8,0.2】,正好满足雨天~雨天概率为0.8,当然这根据所给条件就是这样。

下面计算第十天(记为P9)是晴天概率:

得到,第十天为雨天概率为0.6668,为晴天的概率为0.3332。

下面计算经过很长一段时间后雨天、晴天的概率,显然就是下面的递推公式了:

2.2 递推公式的改进 

虽然上面构造了一个递推公式,但是直接计算矩阵A的n次方是很难计算的,我们将A进行特征分解(谱分解)一下,得到:

现在递推公式变成了下面的样子:

显然,当n趋于无穷即很长一段时间以后,Pn = 【0.67,0.33】。即雨天概率为0.67,晴天概率为0.33。并且,我们发现:初始状态如果是P0 =【0,1】,最后结果仍然是Pn = 【0.67,0.33】。这表明,马尔科夫过程与初始状态无关,跟转移矩阵有关

三、再看一个例子——DAN的CPG岛

为什么还要看这个例子,因为在上面的天气预报我们是直接给出了概率转移矩阵,但是在实际应用中这个概率转移事先是不知道的,那该怎么办呢?需要自己去做统计才能得到。

问题描述:基因组上CpG相对富集的区域被称作CpG岛,接下来我们要从给定的一定DNA序列,判断它是否来自CpG岛,这属于一个两分类问题。——这属于一个序列分类问题。

DNA序列每个位置上的核苷酸都可以被当作一个有四种可能取值的离散随机变量x={A,T,G,C} 。
在上述问题中我们要考虑连续位置上出现的CpG双核苷酸,可以用马尔科夫模型来表示这种相邻位置之间的依赖关系。如果第

i 时刻上的取值依赖于且仅依赖于第i−1时刻的取值,即

则我们把这个串称作一个一阶马尔科夫链(模型)。

对于DNA序列来说,每一位置的取值有四种,我们把它们称作四种状态,转移概率就是一个4∗4 的矩阵,称作转移概率矩阵或状态转移矩阵,如下图。

如果知道两类(CpG岛与非CpG岛)的状态转移矩阵,那么对于一个序列样本,我们就可以用上述公式分别计算每一类模型下观察到该特定序列的可能性或似然度 ,用同样的类别似然比(或对数似然比)来进行类别判断。

3.1 关键问题——状态转移矩阵的确定

那么怎样去确定马尔科夫状态转移矩阵(离散概率模型)呢?

首先收集充分的、有代表性的一些CpG岛序列的片段和一些非CpG岛序列的片段,用它们构成两类训练样本。在每一类样本中,统计在所有位置上出现A、T、C、G的次数,再统计在每个A、T、C、G后面出现A、T、C、G次数,然后用下面两个公式来统计概率:

加号表示的是正样本,减号表示的是负样本。得到如下的转移矩阵:

对于任意一段待判别的DNA序列,可以根据状态转移矩阵计算它属于CpG岛的似然比,再通过与一定的阈值比较进行判别。大于阈值的为正样本,否则为负样本,计算过程就与上面类似了,建立递推关系。

四、马尔科夫模型与时间序列的关系与区别

乍一看,马尔科夫模型与时间序列是有一定的关系,有时候甚至有人说马尔科夫过程的状态序列就是一个时间序列,的确,从时间的推移角度来说,这么说好像没很么问题,但是它们之间还是有很多区别的,个人总结以下几点:

(1)马尔科夫模型是概率模型。每一个时间点的观测值体现为状态值,所谓状态值就是某一个类别的概率,这跟时间序列显然不一样;

(2)马尔科夫模型当前状态与之前状态的关系是通过转移概率、转移概率矩阵来决定的,这也是和时间序列不一样的地方。

马尔科夫模型系列文章(一)——马尔科夫模型相关推荐

  1. 2009刀片服务器导购系列文章之戴尔篇

    --> 作者:小云 自从2000年刀片服务器这一产品形态开始进入市场以来,厂商对这一产品的期望值一直是一浪高过一浪.根据有关评测机构的预测,未来2年刀片服务器市场的增长将保持在60%左右,刀片服 ...

  2. 如何在golang中关闭bufio.reader_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  3. blp模型 上读下写_Golang 并发模型系列:1. 轻松入门流水线模型

    Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文 ...

  4. 机器学习-白板推导-系列(九)笔记:概率图模型: 贝叶斯网络/马尔可夫随机场/推断/道德图/因子图

    文章目录 0 笔记说明 1 背景介绍 1.1 概率公式 1.2 概率图简介 1.2.1 表示 1.2.2 推断 1.2.3 学习 1.2.4 决策 1.3 图 2 贝叶斯网络 2.1 条件独立性 2. ...

  5. 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用

    发表者:吴军,Google 研究员 前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法.复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述. ...

  6. 概率图模型(6)马尔科夫随机场

    文章目录 概率图模型的综合叙述: 马尔科夫随机场综述: 马尔科夫随机场定义: MRF的因式分解: 一个简单的例子: 概率图模型的综合叙述: 特征函数便是图中的conditional.对图简单的说明,综 ...

  7. (改进GM(1,1)模型)灰色残差马尔科夫预测模型的matlab实现

    一.基于灰色残差马尔科夫模型的预测 应用马尔可夫状态转移矩阵对残差灰色预测模型进行了改进,结果表明,改进的预测模型精度较高,比传统灰色模型预测效果好.马尔可夫过程是研究事物状态及其转移的理论 . 一个 ...

  8. 马尔可夫模型(HMM)与隐马尔克夫模型(转)

    马尔可夫模型         马尔可夫模型:是用来预测具有等时间隔(如一年)的时刻点上各类人员的分布状况. 马尔可夫模型,它是根据历史数据,预测等时间间隔点上的各类人员分布状况.此方法的基本思想上根据 ...

  9. python手势识别隐马尔可夫模型_使用隐马尔可夫模型的运动笔迹手势识别.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp科普读物 使用隐马尔可夫模型的运动笔迹手势识别.doc10页 ...

  10. 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现 一.一些概率与期望值的计算 二.非监督学习方法(Baum-Welch算法) 三.python实现 隐马尔可夫模型参数 ...

最新文章

  1. C#CodeSmith代码批量生成模板制作经验分享
  2. nginx用户权限问题
  3. 计算机网络-基本概念(11)【应用层】
  4. 《MySQL——count()逻辑》
  5. C++ string类的说明
  6. HUAWEI USG6000系列 NGFW Module V100R001 典型配置案例
  7. 2020-09-08 Win7-Win10内部版本号
  8. Identity of indiscernibles(不可分与同一性)
  9. 开源 syslog 日志系统 scribe
  10. stata陈强:计量经济学及stata应用_陈强 第四章 一元线性回归
  11. Trie——51nod1526 分配笔名
  12. 秋招总结帖,还愿牛客
  13. 网络流量分析与Android逆向小结
  14. iVMS-4200 Vs区别_【5G科普】5G知识知多少?#之5G与4G的区别
  15. 前列腺增生症的治疗行业调研报告 - 市场现状分析与发展前景预测
  16. TCP重点系列之sack介绍
  17. eclipse网络代理设置
  18. 使用python提取所有word文件中的所有图片
  19. Leetcode 2327. 知道秘密的人数(思路很棒)
  20. 宝石塔防的贴吧地址:

热门文章

  1. python写彩票预测软件_python写彩票预测软件
  2. oracle数据库编码
  3. 【grasshopper自定义电池开发】使用Visual Studio 2022借助官方扩展插件开发一个贪吃蛇电池
  4. 模拟PspTerminateProcess结束进程-学习笔记
  5. JAVA velocity语法讲解
  6. [转]PKM-个人知识体系建设
  7. ntsd.exe 附使用教程
  8. win10专业版没有触摸板选项_win10没有显示触摸板
  9. 网络安全菜鸟学习之杂项篇——WIFI安全(一)
  10. BXP无盘WINXP优化精华篇(转)