转自:https://blog.csdn.net/pipisorry/article/details/46618991

1、确定性模式(Deterministic Patterns):确定性系统

  考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色-黄色-红色。这个序列可以作为一个状态机器,交通信号灯的不同状态都紧跟着上一个状态。
    
  注意每一个状态都是唯一的依赖于前一个状态,所以,如果交通灯为绿色,那么下一个颜色状态将始终是黄色——也就是说,该系统是确定性的。确定性系统相对比较容易理解和分析,因为状态间的转移是完全已知的。

2、非确定性模式(Non-deterministic patterns):马尔科夫

  为了使天气那个例子更符合实际,加入第三个状态——多云。与交通信号灯例子不同,我们并不期望这三个天气状态之间的变化是确定性的,但是我们依然希望对这个系统建模以便生成一个天气变化模式(规律)。
  一种做法是假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔科夫假设,它极大地简化了问题。显然,这可能是一种粗糙的假设,并且因此可能将一些非常重要的信息丢失。
  当考虑天气问题时,马尔科夫假设假定今天的天气只能通过过去几天已知的天气情况进行预测——而对于其他因素,譬如风力、气压等则没有考虑。在这个例子以及其他相似的例子中,这样的假设显然是不现实的。然而,由于这样经过简化的系统可以用来分析,我们常常接受这样的知识假设,虽然它产生的某些信息不完全准确。
            
  一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关。这里要注意它与确定性系统并不相同,因为下一个状态的选择由相应的概率决定,并不是确定性的。
  下图是天气例子中状态间所有可能的一阶状态转移情况:
    
  对于有M个状态的一阶马尔科夫模型,共有M^2个状态转移,因为任何一个状态都有可能是所有状态的下一个转移状态。每一个状态转移都有一个概率值,称为状态转移概率——这是从一个状态转移到另一个状态的概率。所有的M^2个概率可以用一个状态转移矩阵表示。注意这些概率并不随时间变化而不同——这是一个非常重要(但常常不符合实际)的假设。
  下面的状态转移矩阵显示的是天气例子中可能的状态转移概率:
    
  -也就是说,如果昨天是晴天,那么今天是晴天的概率为0.5,是多云的概率为0.375。注意,每一行的概率之和为1。
  要初始化这样一个系统,我们需要确定起始日天气的(或可能的)情况,定义其为一个初始概率向量,称为pi向量。
          
  -也就是说,第一天为晴天的概率为1。
我们定义一个一阶马尔科夫过程如下:
   状态:三个状态——晴天,多云,雨天。
   pi向量:定义系统初始化时每一个状态的概率。
   状态转移矩阵:给定前一天天气情况下的当前天气概率。

任何一个可以用这种方式描述的系统都是一个马尔科夫过程。

 转自:http://blog.sina.com.cn/s/blog_14167e8810102x7nd.html

3、马尔科夫模型

随机过程最早是用于统计物理学的数学方法,研究空间粒子的随机运动。后来这门科学蓬勃发展,随机过程应用的领域越来越广。这里介绍随机过程的一种——马尔科夫链模型。

马尔科夫的无后效性:系统在t>t0时刻所处的状态与系统在t0时刻以前的状态无关,这就是马尔科夫性或者无后效性。

马尔科夫模型具体公式描述如下

有随机过程{Xn,n为整数},对于任意n和I0,I1,In,满足条件概率:

就称为马尔科夫链。

但凡学过概率论的对这个条件概率应该都能看懂吧!

4、举例说明

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

首先构建转移概率矩阵,初学者很容易构建错误:

雨天

晴天

0.8

0.4

雨天

0.2

0.6

晴天

 
 
 
 
注意:每列和为1,分别对雨天、晴天,这样构建出来的就是转移概率矩阵了。
初始状态第一天是雨天,我们记为

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

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

P1 = AxP0

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

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

>> A= [0.8 0.4;0.2 0.6];

>> p = [1;0];

>> for i = 1:9

p = A*p;

end

>> p

p =

0.6668

0.3332

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

下面计算经过很长一段时间后雨天、晴天的概率,显然就是公式(1.1)

直接算A的n次方显然不行,我们知道任意一个可逆矩阵总可以化为(1.2)形式。其中,T为A的特征值对应的两个特征向量组成的矩阵,这两个特征向量分别为【2,1】、【1 -1】。D为一个对角矩阵(1.4)。

那么,我们可以这样算,就简单多了:

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

下面,简单验证一下,分别求第50天,100天,1000天时,Pn的取值情况是否与理论一致:Pn = 【0.67,0.33】。

p =

0.6667

0.3333

p =

0.6667

0.3333

p =

0.6667

0.3333

可以看出第50天时与第1000天在0.00001精度下是一样的,最终结果与理论值Pn = 【0.67,0.33】一致。马尔科夫过程与初始状态无关,跟转移矩阵有关。

转载于:https://www.cnblogs.com/qing1991/p/10090421.html

机器学习---算法---马尔科夫相关推荐

  1. 机器学习——隐马尔科夫(HHM)原理

    机器学习--隐马尔科夫(HHM)模型原理 1 从马尔科夫模型到隐马尔科夫模型 1.1 马尔科夫过程引入 首先,我们先给出一张图: 在上面的图里,给出的是一个链式的结构,结构中的每一个节点称之为一个状态 ...

  2. 机器学习-隐马尔科夫python实现及数学原理讲解

    文章目录 1. 隐马尔科夫 2. 直观分析 3. 数学原理 4. 实现 4.1 代码 1. 隐马尔科夫   隐马尔可夫模型(hidden Markov model,HMM)是关于时序的概率模型,描述由 ...

  3. Python游戏概率补偿算法-马尔科夫链

    代码展示 # _*_ coding: utf-8 _*_ # @Author : ****** # @Time : 2022/8/27 14:47 # @File : ProbabilisticCom ...

  4. 机器学习算法 10 —— HMM模型(马尔科夫链、前向后向算法、维特比算法解码、hmmlearn)

    文章目录 系列文章 隐马尔科夫模型 HMM 1 马尔科夫链 1.1 简介 1.2 经典举例 2 HMM简介 2.1 简单案例 2.2 案例进阶 问题二解决 问题一解决 问题三解决 3 HMM模型基础 ...

  5. 李开复对谈硅谷传奇:杨致远敦促AI交产品,马尔科夫说无人车3年没戏

    李根 发自 硅谷  量子位 报道 | 公众号 QbitAI AI仍旧是核心话题,但"光说没货"的现状要面临挑战了. 创新工场第三期兄弟会硅谷行第四日,李开复分别与雅虎创始人杨致远, ...

  6. 漫谈机器学习经典算法—增强学习与马尔科夫决策过程

    公式及图片正常显示的精美排版版请移步http://lanbing510.info/2015/11/17/Master-Reinforcement-Learning-MDP.html 写在前面 现有的机 ...

  7. 机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)...

    概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概率相关关系.根据边的性质不同,可以将概率图模型分为两类:一类是 ...

  8. 机器学习算法拾遗:(七)隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)

    1.隐马尔科夫模型HMM 隐马尔科夫模型的图结构如下 从上图中主要有两个信息:一是观测变量xi 仅仅与与之对应的状态变量yi 有关:二是当前的状态变量yi 仅仅与它的前一个状态变量yi-1 有关. 隐 ...

  9. 机器学习十大算法---10. 马尔科夫

    3.生成模式(Generating Patterns) 3.1.确定性模式(Deterministic Patterns):确定性系统 考虑一套交通信号灯,灯的颜色变化序列依次是红色-红色/黄色-绿色 ...

最新文章

  1. 华为云BU总裁:如何把AI从噱头变为生产力?
  2. Vue入门一、常用的指令
  3. 西安python培训班多少钱-西安Python培训班哪个好
  4. 【Android 事件分发】事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )
  5. SqlServer 获取汉字的拼音首字母
  6. python 全部缩进一行_Python(48)语言参考2:词法分析
  7. mysql57包解压安装_mysql5.7解压包安装教程
  8. 电脑的发展史_UI设计发展史及未来
  9. ubuntu18.04静态ip设置
  10. python爬虫代码-Python爬虫教程:200行代码实现一个滑动验证码
  11. WebCollector 简介与 快速入门
  12. 使用httpclient下载网络上的图片
  13. 怎样屏蔽掉“网页对话框”
  14. 数学分析教程 第五章学习感受
  15. Cabbage教学(4)——面向对象编程
  16. 计算机操作系统u盘的安装方法,怎么直接用u盘装系统操作教程
  17. shell命令之cd切换目录
  18. ENSP的AR40问题解决
  19. 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�:
  20. 李小冉传婚讯 与好友回京拥抱告别

热门文章

  1. 柱状图带立体效果_PS教程!手把手教你打造立体感欧美风人像大片效果(已打包好素材资料见文末)...
  2. [Python] 中英文标点转换
  3. android 声音突然变小,手机明明没坏,为什么声音开到最大依然很小?这个方法你知道吗...
  4. 升级总代分享思路_旧笔记本光驱换SSD,升级内存,改造散热还能再战5年
  5. java 异步程序,java异步编程
  6. linux tcp前景,linux – 为什么在Xen下TCP接受()性能如此糟糕?
  7. Python-Matplotlib可视化(6)——自定义坐标轴让统计图清晰易懂
  8. java的constructor怎么用,constructor函数 Java中的构造函数Constructor怎么用
  9. jmx客户端_Java JMX客户端示例– JMX身份验证
  10. primefaces教程_Primefaces树,TreeNode,TreeTable示例教程