机器学习算法 - 马尔可夫链

马尔可夫链(Markov Chain)可以说是机器学习和人工智能的基石,在强化学习、自然语言处理、金融领域、天气预测、语音识别方面都有着极其广泛的应用

> The future is independent of the past given the present   未来独立于过去,只基于当下。


这句人生哲理的话也代表了马尔科夫链的思想:过去所有的信息都已经被保存到了现在的状态,基于现在就可以预测未来。

虽然这么说可能有些极端,但是却可以大大简化模型的复杂度,因此马尔可夫链在很多时间序列模型中得到广泛的应用,比如循环神经网络 RNN,隐式马尔可夫模型 HMM 等,当然 MCMC 也需要它。

随机过程

马尔可夫链是随机过程 这门课程中的一部分,先来简单了解一下。

简单来说,随机过程就是使用统计模型一些事物的过程进行预测和处理 ,比如股价预测通过今天股票的涨跌,却预测明天后天股票的涨跌;天气预报通过今天是否下雨,预测明天后天是否下雨。这些过程都是可以通过数学公式进行量化计算的。通过下雨、股票涨跌的概率,用公式就可以推导出来 N 天后的状况。

简介

俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。马尔科夫链为状态空间中经过从一个状态到另一个状态的转换的随机过程,该过程要求具备“无记忆性 ”,即下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性 ”称作马尔可夫性质。

马尔科夫链认为过去所有的信息都被保存在了现在的状态下了 。比如这样一串数列 1 - 2 - 3 - 4 - 5 - 6,在马尔科夫链看来,6 的状态只与 5 有关,与前面的其它过程无关。

数学定义

假设我们的序列状态是...X_{t-2},X_{t-1},X_{t},X_{t+1}....,那么在X_{t+1}时刻的状态的条件概率仅依赖于前一刻的状态X_{t}即:

P(X_{t+1}|...X_{t-2},X_{t-1},X_{t}) = P(X_{t+1}|X_{t})

既然某一时刻状态转移的概率只依赖于它的前一个状态 ,那么我们只要能求出系统中任意两个状态之间的转换概率,这个马尔科夫链的模型就定了。

转移概率矩阵

通过马尔科夫链的模型转换,我们可以将事件的状态转换成概率矩阵 (又称状态分布矩阵 ),如下例:

上图中有 A 和 B 两个状态,A 到 A 的概率是 0.3,A 到 B 的概率是 0.7;B 到 B 的概率是 0.1,B 到 A 的概率是 0.9。

初始状态在 A,如果我们求 2 次运动后状态还在 A 的概率是多少?非常简单:  P=A→A→A+A→B→A=0.3∗0.3+0.7∗0.9=0.72

如果求 2 次运动后的状态概率分别是多少?初始状态和终止状态未知时怎么办呢?这是就要引入转移概率矩阵 ,可以非常直观的描述所有的概率。

有了状态矩阵,我们可以轻松得出以下结论:

  • 初始状态 A,2 次运动后状态为 A 的概率是 0.72;
  • 初始状态 A,2 次运动后状态为 B 的概率是 0.28;
  • 初始状态 B,2 次运动后状态为 A 的概率是 0.36;
  • 初始状态 B,2 次运动后状态为 B 的概率是 0.64;

来看一个多个状态更复杂的情况:

状态转移矩阵的稳定性

状态转移矩阵有一个非常重要的特性,经过一定有限次数序列的转换,最终一定可以得到一个稳定的概率分布 ,且与初始状态概率分布无关。例如

假设我们当前股市的概率分布为: [ 0.3 , 0.4 , 0.3 ] [0.3, 0.4, 0.3][0.3,0.4,0.3] ,即 30% 概率的牛市,40% 概率的熊盘与 30% 的横盘。然后这个状态作为序列概率分布的初始状态t_{0},将其代入这个状态转移矩阵计算t_{1},t_{2},t_{3} ...的状态。代码如下:

matrix = np.matrix([[0.9, 0.075, 0.025],[0.15, 0.8, 0.05],[0.25, 0.25, 0.5]], dtype=float)
vector1 = np.matrix([[0.3, 0.4, 0.3]], dtype=float)for i in range(100):vector1 = vector1 * matrixprint('Courrent round: {}'.format(i+1))print(vector1)

输出结果:

Current round: 1
[[ 0.405   0.4175  0.1775]]
Current round: 2
[[ 0.4715   0.40875  0.11975]]
Current round: 3
[[ 0.5156  0.3923  0.0921]]
Current round: 4
[[ 0.54591   0.375535  0.078555]]
。。。。。。
Current round: 58
[[ 0.62499999  0.31250001  0.0625    ]]
Current round: 59
[[ 0.62499999  0.3125      0.0625    ]]
Current round: 60
[[ 0.625   0.3125  0.0625]]
。。。。。。
Current round: 99
[[ 0.625   0.3125  0.0625]]
Current round: 100
[[ 0.625   0.3125  0.0625]]

可以发现,从第 60 轮开始,我们的状态概率分布就不变了,一直保持[ 0.625 , 0.3125 , 0.0625 ],即 62.5% 的牛市,31.25% 的熊市与 6.25% 的横盘。

这个性质不仅对状态转移矩阵有效,对于绝大多数的其他的马尔可夫链模型的状态转移矩阵也有效。同时不光是离散状态,连续状态时也成立。
 

马尔科夫链的应用

语言模型

自然语言处理、语音处理中经常用到语言模型, 是建立在词表上的 n nn 阶马尔可夫链。比如, 在英语语音识别中,语音模型产生出两个候选: “How to recognize speech” 与 "How to wreck a nice beach”,语言模型要判断哪个可能性更大
 

将一个语句看作是一个单词的序列 w_1,w_2...w_s ,目标是计算其概率。同一个语句很少在语料中重复多次出现,所以直接从语料中估计每个语句的概率是困难的。语言模型用局部的单词序列的概率,组合计算出全局的单词序列的概率,可以很好地解决这个问题。假设每个单词只依赖于其前面出现的单词,也就是说单词序列具有马尔可夫性,那么可以定义一阶马尔可夫链 (可以轻易扩展到 n 阶马尔可夫链),即语言模型,如下计算语句的概率:

如果有充分的语料,转移概率可以直接从语料中估计。直观上, “wreck a nice” 出现之后,下面出现 “beach” 的概率极低,所以第二个语句的概率应该更小,从语言模型的角度看第一个语句的可能性更大

信号传输

考虑通过电话线或无线电波传输信号的问题。每条数据都必须经过一个多阶段的过程才能传输,并且在每个阶段都存在传输错误导致数据损坏的概率。

假设传输中发生错误的概率不受过去传输错误的影响,不依赖于时间,并且可能的数据条数是有限的。然后可以通过马尔可夫链建模传输过程,状态为0和1以及转移矩阵

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/239998.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux实操学习

Linux常用操作 一、帮助命令1. man1.1 基本语法1.2 快捷键1.3 注意事项 2. help2.1 基本语法2.2 注意事项 3. 常用快捷键 二、文件目录类1. 常规操作1.1 pwd1.2 cd1.3 ls 2. 文件夹操作2.1 mkdir2.2 rmdir 3. 文件操作3.1 touch3.2 cp3.3 rm3.4 mv 4. 文件查看4.1 cat4.2 more4…

四、任意文件读取漏洞

一、介绍 解释:任意文件读取漏洞就其本身来说就是,攻击者绕过网站防御者设置的防御,读取到了正常使用者不应该读取到的内容。网站开发者使用不同的语言,任意文件读取漏洞利用方式就不同。 二、不同开发语言的不同漏洞点 1.PHP …

Kali Linux保姆级教程|零基础从入门到精通,看完这一篇就够了!(附工具包)

作为一名从事网络安全的技术人员,不懂Kali Linux的话,连脚本小子都算不上。 Kali Linux预装了数百种享誉盛名的渗透工具,使你可以更轻松地测试、破解以及进行与数字取证相关的任何其他工作。 今天给大家分享一套Kali Linux资料合集&#xf…

2024年高校建设大数据实验室建设的意义

数据挖掘与大数据分析是以计算机基础为基础,以挖掘算法为核心,紧密面向行业应用的一门综合性学科。其主要技术涉及概率论与数理统计、数据挖掘、算法与数据结构、计算机网络、并行计算等多个专业方向,因此该学科对于实验室具有较高的专业要求…

构建未来教育:在线培训系统开发的技术探讨

随着远程学习的崛起和数字化教育的普及,在线培训系统的开发成为了现代教育的核心。本文将深入讨论在线培训系统的关键技术要点,涵盖前后端开发、数据库管理、以及安全性和身份验证等关键方面。 前端开发:提供交互性与用户友好体验 在构建在…

HTML--JavaScript--引入方式

啊哈~~~基础三剑看到第三剑,JavaScript HTML用于控制网页结构 CSS用于控制网页的外观 JavaScript用于控制网页的行为 JavaScript引入方式 引入的三种方式: 外部JavaScript 内部JavaScript 元素事件JavaScript 引入外部JavaScript 一般情况下网页最好…

【数据结构】常见八大排序算法总结

目录 前言 1.直接插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 6.1Hoare版本 6.2挖坑法 6.3前后指针法 6.4快速排序的递归实现 6.5快速排序的非递归实现 7.归并排序 8.计数排序(非比较排序) 9.补充:基数排序 10.总结…

【Java】十年老司机转开发语言,新小白从学习路线图开始

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握…

【HTML5】 canvas 绘制图形

文章目录 一、基本用法二、用法详见2.0、方法属性2.1、绘制线条2.2、绘制矩形2.3、绘制圆形2.4、绘制文本2.5、填充图像 一、基本用法 canvas 标签:可用于在网页上绘制图形(使用 JavaScript 在网页上绘制图像)画布是一个矩形区域&#xff0c…

决战排序之巅(二)

决战排序之巅(二) 排序测试函数 void verify(int* arr, int n) 归并排序递归方案代码可行性测试 非递归方案代码可行性测试 特点分析 计数排序代码实现代码可行性测试 特点分析 归并排序 VS 计数排序(Release版本)说明1w rand( ) …

1 python计算机基础

计算机基础和环境搭建 1 计算机基础和环境搭建1.计算机基础1.1 基本概念1.2 编程语言1.3 编译器/解释器 2.学习编程的本质3.Python的介绍3.1 语言的分类3.2 Python3.3 Python的解释器种类(了解)3.4 CPython解释器的版本 4.环境搭建4.1 安装Python解释器4…

前端架构师需要具备哪些能力?

文章目录 公司一工作职责岗位要求 公司二岗位职责任职要求 公司三岗位职责任职要求 公司四工作职责任职要求 公司五职位职责任职要求 前端架构师需要具备的能力 我们先看看前端架构师的招聘要求。 公司一 工作职责 1、参与项目需求分析评审,负责核心功能详细设计…

计算机网络-VLAN间通信

之前复习了VLAN的概念以及几个接口类型。VLAN在二层可以实现广播域的划分,VLAN间可以实现二层通信,但是不能实现三层通信,需要借助其它方式。 一、概述 实际网络部署中一般会将不同IP地址段划分到不同的VLAN。同VLAN且同网段的PC之间可直接进…

1月17日代码随想录合并二叉树

617.合并二叉树 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两…

ElasticSearch概述+SpringBoot 集成ES

ES概述 开源的、高扩展的、分布式全文检索引擎【站内搜索】 解决问题 1.搜索词是一个整体时,不能拆分(mysql整体连续) 2.效率会低,不会用到索引(mysql索引失效) 解决方式 进行数据的存储(只存储…

支持华为GaussDB数据库的免费开源ERP:人力资源管理解决方案概述

开源智造所推出的Odoo SuperPeople数字化解决方案将HR和薪资数据与财务、项目规划、预算和采购流程连接起来,消除了多套系统给企业带来的信息孤岛问题。 ——复星集团 人力资源中心 高经理 一种更具吸引力、更有洞察力的人员管理方式 什么是开源智造Odoo的人力资源…

信驰达科技参与《汽车玻璃集成UWB数字钥匙发展研究白皮书》编制工作

为进一步探索汽车数字钥匙技术路线及开发思路,中国智能网联汽车产业创新联盟(CAICV)、福耀玻璃工业集团股份有限公司联合发起了《汽车玻璃集成UWB数字钥匙发展研究白皮书》研究工作。 2023年12月20日,由中国智能网联汽车产业创新…

Linux--部署 Tomcat 及其负载均衡

1.案例前置知识点 1)Tomcat简介 名称由来:Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书,并且将其封面设…

2024年第二届“华数杯”国际大学生数学建模竞赛 (A题 MCM)| 废水扩散分析 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看华数杯的A题! 完整内容可以在文章末…

OpenCV-Python(34):FAST算法

目标 理解 FAST 算法的基础使用OpenCV 中的FAST 算法相关函数进行角点检测 介绍 FAST算法(Features from Accelerated Segment Test)是一种用于在图像中快速检测角点的算法。它是一种基于像素的检测方法,具有高效、准确的特点,常…