当前位置: 首页 > news >正文

【机器学习之---数学】马尔科夫链

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

马尔科夫

v2-523405fafe4484f7be72e0a5569c42a9_720w

1. 概念

1.1 引言

马尔可夫链在许多领域都有应用,包括物理学、生物学、工程学、经济学和计算机科学等。在计算机科学中,特别是在算法设计、复杂性理论、网络科学和人工智能等领域,马尔可夫链是一个基本的概念。

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

它是一个离散时间随机过程,其中系统的下一个状态只依赖于当前状态,与过去的状态无关。这种“无后效性”(无记忆性)是马尔可夫链的核心特性(马尔科夫性)。

1.2 马尔可夫过程和马尔科夫链

其中,涉及两个概念,马尔科夫过程马尔科夫链。

马尔科夫过程:

  • 是一个随机过程,其特点是系统未来的状态仅依赖于当前状态,与过去的状态无关。
  • 它可以在任何时间点定义,并可以在连续或离散的时间框架下进行。
  • 马尔科夫过程可以是连续状态的,也可以是离散状态的。

马尔科夫链:

  • 是一种特殊的马尔科夫过程,它通常描述的是离散时间序列上的状态转移。
  • 它由一系列离散状态组成,每个状态之间的转移遵循马尔科夫性质,即仅依赖于当前状态。
  • 马尔科夫链通常用转移概率矩阵来描述,这些概率表示在当前时间步从一个状态转移到另一个状态的概率。

简而言之,所有马尔科夫链都是马尔科夫过程,但不是所有马尔科夫过程都是马尔科夫链。 马尔科夫链是马尔科夫过程在离散时间框架下的一个具体实现。在实际应用中,特别是在计算机科学和工程学中,马尔科夫链的概念更为常见,因为它易于建模和分析。而马尔科夫过程的概念更加广泛,包括连续时间马尔科夫过程和更复杂的结构。

image-7

1.3 数学定义

有序列状态: . . . X t − 2 , X t − 1 , X t , X t − 1 , . . . ...X_{t-2},X_{t-1},X_t,X_{t-1},... ...Xt2,Xt1,Xt,Xt1,...,那么 X t − 1 X_{t-1} Xt1时刻的状态,只与 X t − 1 X_{t-1} Xt1时刻的状态有关,与 X t − 2 X_{t-2} Xt2时刻的状态无关。

P ( X t + 1 ∣ . . . X t − 2 , X t − 1 , X t , . . . ) = P ( X t + 1 ∣ X t ) P(X_{t+1}|...X_{t-2},X_{t-1},X_t,...) = P(X_{t+1}|X_t) P(Xt+1∣...Xt2,Xt1,Xt,...)=P(Xt+1Xt)

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

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

image-8

其转移概率矩阵为:

image-9

有了状态转移矩阵以后,我们就可以很方便的计算n步以后在A和B的概率了。

1.4 性质

1.4.1 稳态分布

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

image-7

若,计算n天以后再g点的概率,则有:

$$
P_g{X_n = g} = (P^n)_{gg} \

P_b{ X_n=g } = (P^n)_{bg} \
$$

下表是n天以后在g点的概率:

image-10

我们发现马尔科夫链会“忘记”初始状态(无记忆性), 最终会收敛到稳定概率分布。

2. 应用

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

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

v2-47283cff65ce7f3a49b2c6c17d94d134_720w

参考

  1. https://zhuanlan.zhihu.com/p/448575579
  2. https://zhuanlan.zhihu.com/p/489239366
  3. https://blog.csdn.net/qq_27825451/article/details/100117715#t0
http://www.lryc.cn/news/326108.html

相关文章:

  • 教程3_图像的轮廓
  • 【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法
  • 基于SpringBoot和Vue的车辆管理系统的设计与实现
  • R折线图(自备)
  • web学习笔记(四十五)Node.js
  • 基于Gabor滤波器的指纹图像识别,Matlab实现
  • 55、Qt/事件机制相关学习20240326
  • Clip Converter - 视频在线下载方法
  • 【No.19】蓝桥杯简单数论上|模运算|快速幂|GCD|LCM|刷题统计|RSA解密|核桃的数量(C++)
  • 区块链安全之DDoS防护的重要性及其实施策略
  • 使用Spark单机版环境
  • 【分布式】——降级熔断限流
  • 代码随想录刷题笔记 Day 58 | 判断子序列 No.392 | 不同的子序列 No.115
  • 【C++11】thread线程库
  • 【OpenStack】创建系统(VM)实例镜像及实例创建方法
  • 灵途科技助力家电智能创新
  • Flask python :logging日志功能使用
  • ethers.js:sign(签名)
  • 使用npm i进行admin依赖安装的时候出现问题
  • 【Python笔记-FastAPI】定时任务实现(APScheduler)
  • 『Apisix入门篇』从零到一掌握Apache APISIX:架构解析与实战指南
  • easyExcel大数据量导出oom
  • react native上传二进制图片、视频的方法
  • JVM之堆
  • R语言实现——网状 Meta 分析
  • Java项目:77 springboot母婴商城
  • 【排序算法】深入解析快速排序(霍尔法三指针法挖坑法优化随机选key中位数法小区间法非递归版本)
  • 生成微信小程序二维码
  • 网络编程(1)写一个简单的UDP网络通信程序【回显服务器】,并且实现一个简单的翻译功能
  • Ansys Speos | Light Expert Group探测器组使用技巧