简述马尔可夫链【通俗易懂】

前言

马尔可夫链(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 有关,与前面的其它过程无关。

马尔科夫链 数学定义

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

转移概率矩阵

通过马尔科夫链的模型转换,我们可以将事件的状态转换成概率矩阵 (又称状态分布矩阵),如下例:
在这里插入图片描述
图中有 A 和 B 两个状态,A 到 A 的概率是 0.3,A 到 B 的概率是 0.7;B 到 B 的概率是 0.1,B 到 A 的概率是 0.9。

  • 初始状态在 A,如果我们求 2 次运动后状态还在 A 的概率是多少?非常简单:

在这里插入图片描述

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

在这里插入图片描述
有了状态矩阵,我们可以轻松得出以下结论:

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

有了概率矩阵,即便求运动 n 次后的各种概率,根据初始状态分布*(转移概率矩阵^n)也能非常方便求出。通常初始分布的向量只有一个分量是 1,其余分量都是 0,表示马尔可夫链从一个具体状态开始。

来看一个多个状态更复杂的情况
在这里插入图片描述

转移概率矩阵的稳定性(平稳分布)

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

假设我们当前股市的概率分布为:[0.3, 0.4, 0.3], 即 30% 概率的牛市,40% 概率的熊盘与 30% 的横盘。然后这个状态作为序列概率分布的初始状态t0,将其带入这个转移概率矩阵计算t1, t2, t3…的状态。代码如下:

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 * matrix
    print('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% 的横盘。

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

马尔可夫链细致平稳条件

首先,马尔科夫链要能收敛,需要满足以下条件:

1.可能的状态数是有限的。
2.状态间的转移概率需要固定不变。
3.从任意状态能够转变到任意状态。
4.不能是简单的循环,例如全是从x到y再从y到x。

以上是马尔可夫链收敛的必要条件。
由前面的例子我们不难看出,当初始状态分布与转移概率矩阵的n次幂相乘以后,发现得到的向量都会收敛到一个稳定值,而且此稳定值与初始向量无关!

那么所有的转移矩阵P 都有这种现象嘛?或者说满足什么样的条件的转移矩阵P会有这种现象?

细致平衡条件(Detailed Balance Condition):给定一个马尔科夫链,平稳分布π和概率转移矩阵P,如果下面等式成立:
在这里插入图片描述
则此马尔科夫链具有一个平稳分布(Stationary Distribution)。

这个条件表达了在平稳状态下,流入某个状态的概率等于流出该状态的概率。细致平衡条件是维持平稳分布的一个关键条件,它确保了在平稳状态下,系统不会有净的概率流向或流出任何一个状态

细致平衡条件是平稳分布的一个必要条件。如果一个马尔可夫链满足细致平衡条件,且有一个平稳分布存在,那么该分布就是唯一的。

连续状态马尔可夫链

在这里插入图片描述

马尔科夫链在机器学习中的应用

自然语音处理研究让机器“听懂”人类的语言,马尔科夫模型就解决了:

  • 语言模型:
    N-Gram 是一种简单有效的语言模型,基于独立输入假设:第 n 个词的出现只与前面 N-1 个词相关,而与其它任何词都不相关 。整句出现的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计 N 个词同时出现的次数得到。

在这里插入图片描述

  • 声学模型:

利用 HMM 建模(隐马尔可夫模型),HMM 是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征。

参考

马尔可夫链 (Markov Chains)
简述马尔可夫链

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

批量将本地N个英文Html文档进行中文翻译-操作篇

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

GPT、GPT-2、GPT-3论文精读笔记

视频:GPT,GPT-2,GPT-3 论文精读【论文精读】_哔哩哔哩_bilibili MAE论文:把bert用回计算机视觉领域 CLIP论文:打通文本和图像 GPT 论文:Improving Language Understanding by Generative Pre-Training …

Android开发从0开始(Activity篇)

Activity的生命周期 对应解释: startActivity(new Intent(源页面.this,目标页面.class)) 结束当前活动页面finish(); Activity的启动模式 App先后打开两个活动,此时活动会放入栈内。 (Android:launchMode”standard”)默认 &am…

全自动洗衣机什么牌子好?内衣洗衣机推荐

现在洗内衣内裤也是一件较麻烦的事情了,在清洗过程中还要用热水杀菌,还要确保洗衣液是否有冲洗干净,还要防止细菌的滋生等等,所以入手一款小型的烘洗全套的内衣洗衣机是非常有必要的,专门的内衣洗衣机可以最大程度减少…

实时语音克隆:5 秒内生成任意文本的语音 | 开源日报 No.84

CorentinJ/Real-Time-Voice-Cloning Stars: 43.3k License: NOASSERTION 这个开源项目是一个实时语音克隆工具,可以在5秒内复制一种声音,并生成任意文本的语音。 该项目的主要功能包括: 从几秒钟的录音中创建声纹模型根据给定文本使用参考…

聚类笔记/sklearn笔记:Affinity Propagation亲和力传播

1 算法原理 1.1 基本思想 将全部数据点都当作潜在的聚类中心(称之为 exemplar )然后数据点两两之间连线构成一个网络( 相似度矩阵 )再通过网络中各条边的消息( responsibility 和 availability )传递计算出各样本的聚类中心。 1.2 主要概念 Examplar聚类中心similarity S(i…

GitHub桌面版

GitHub桌面版 一、GitHub 桌面版二、clone 仓库三、更新仓库 一、GitHub 桌面版 二、clone 仓库 三、更新仓库

GDPU 数据结构 天码行空11

文章目录 数据结构实验十一 图的创建与存储一、实验目的二、实验内容三、【实验源代码】🍻 CPP版🍻 c 语言版🍻 java版 四、【实验结果】五、【实验总结】 数据结构实验十一 图的创建与存储 一、实验目的 1、 理解图的存储结构与基本操作&a…

mac电脑系统活动监控:iStat Menus 中文 for Mac

iStat Menus是一款Mac操作系统上的系统监控工具,它提供了实时的系统状态和性能数据,让用户可以方便地监控和管理自己的电脑。iStat Menus以菜单栏图标的形式显示各种系统指标,用户可以轻松访问和查看这些信息。 以下是iStat Menus软件的一些…

基于SSM安全生产培训管理平台设计与实现 毕业设计源码26918

赠送源码-毕业设计:SSM 安全生产培训平台https://www.bilibili.com/video/BV1gH4y1z7c6/?vd_source72970c26ba7734ebd1a34aa537ef5301 目录 摘 要 Abstract 第1章 前 言 1.1 研究背景 1.2 研究现状 1.3 系统开发目标 第2章 系统开发环境 2.1 JAVA简介…

VOC数据集转换为COCO数据集

VOC数据集格式 get_list.py import os import random import shutil# 设置随机种子 random.seed(1000)# 判断Annotations和JpegImages是否对应 train_precent=0.8 label_path= "../../Annotations" print(os.path.abspath(label_path)) save="../Main" pr…

服务号升级成订阅号容易弄吗

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?一、文章推送的篇数不同服务号在文章的推送篇数上是有所限制的(每月推4次)订阅号则每天可推送一篇文章。二、定义不同服务号主要是为关注用户提供服务使用的;订阅…

千兆光模块和万兆光模块的发展趋势

千兆光模块和万兆光模块是一种高速光电子器件,以其高速传输、长距离传输和高可靠性而广受关注。光模块是光学通讯系统中极为重要的组成部分之一。不同类型的光模块由于其不同的特性,可以适用于不同的应用场景。下面我们将着重介绍千兆光模块和万兆光模块…

数据结构与算法之美学习笔记:25 | 红黑树(上):为什么工程中都用红黑树这种二叉树?

目录 前言什么是“平衡二叉查找树”?如何定义一棵“红黑树”?为什么说红黑树是“近似平衡”的?解答开篇 前言 本节课程思维导图: 二叉查找树是最常用的一种二叉树,它支持快速插入、删除、查找操作,各个操作…

了解冶金行业MES系统的重要性与优势

冶金行业生产工艺极为复杂,冶金行业生产的产品种类多而繁复,并且每种企业生产的产品差异性极大,加上该行业生产需要各种大型生产设备,导致其工艺流程繁琐复杂,也因此在其生产过程中存在许多不安全的因素,若…

uniapp打包的ipa上架到appstore的傻瓜式教程

​ 转载:uniapp打包的ipa上架到appstore的傻瓜式教程 uniapp打包 在HBuilder X编辑器中打开需要打包的项目,然后点击上面菜单栏中 发行 > 原生App-云打包,对以下弹出的弹窗进行内容填写 ​ 填写完成以后,点击打包操作 ​ ​ …

rk3588配置uac功能,android13使能uac及adb的复合设备

最近,因新增需求需要在现有产品上增加UAC的功能,查阅并学习相关知识后,在rk3588 SOC硬件平台搭载android13系统平台上成功配置了uac及uac&adb的复合设备。基于开源共享精神希望给大家提供些参考。 1.技术可行性预研 (1&#…

什么是 TLS/SSL 握手

TLS/SSL 握手是一个加密过程,每当客户端(如浏览器)与服务器建立连接时,都会在后台进行,此握手协议有助于客户端和服务器之间的安全连接,从而促进隐私、数据完整性和机密性。 TLS/SSL 握手何时发生 每当客…

Android笔记(十四):JetPack Compose中附带效应(一)

在Android应用中可以通过定义可组合函数来搭建应用界面。应用界面的更新往往是与可组合函数内部定义的状态值相关联的。当界面的状态值发生变更,会导致应用界面进行更新。在Android笔记(九):Compose组件的状态,对Compo…

数据库实验五 数据库设计

数据库实验五 数据库设计 一、实验目的二、实验内容三、实验内容四、验证性实验五、设计性实验 一、实验目的 1.了解E-R图构成要素以及各要素图元。 2.掌握概念模型E-R图的绘制方法。 3.掌握概念模型向逻辑模型的转换原则和步骤。 4.运用sql编程实现 二、实验内容 1.选取一个…