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

专业学习|马尔可夫链(概念、变体以及例题)

一、马尔可夫链的概念及组成

(一)学习资料分享

来源:024-一张图,但讲懂马尔可夫决策过程_哔哩哔哩_bilibili

        马尔可夫链提供了一种建模随机过程的方法,具有广泛的应用。在实际问题中,通过转移概率矩阵及初始状态分布,我们可以推导出未来的状态概率。这使得马尔可夫链成为许多复杂系统分析中的重要工具。

其余学习文章:马尔可夫链 ▏小白都能看懂的马尔可夫链详解-CSDN博客马尔可夫链 ▏小白都能看懂的马尔可夫链详解-CSDN博客

基础知识:如何理解马尔可夫链?

(二)概念

        马尔可夫链是一种随机过程,其特点是未来的状态只依赖于当前状态,而与过去的状态无关。这一特性称为“无记忆性”或“马尔可夫性质”。马尔可夫链广泛应用于各个领域,包括物理学、经济学、计算机科学等。

(三)基本组成

  1. 状态空间:马尔可夫链的所有可能状态的集合,通常用集合 ( S ) 表示。
  2. 转移概率:从一个状态转移到另一个状态的概率,通常用转移概率矩阵 ( P ) 表示,其中 ( P(i,j) ) 表示从状态 ( i ) 转移到状态 ( j ) 的概率。
  3. 初始状态分布:描述系统在起始时刻处于各状态的概率分布,通常用向量 ( \pi_0 ) 表示。

(四)相关扩展变体

1. 隐马尔可夫模型(HMM):在观察数据和隐藏状态之间建立联系的模型,常用于语音识别、自然语言处理等领域。

改进点:
  • 隐藏状态:在HMM中,系统的状态是不可直接观察的,而只能通过与之相关的观测数据来推断。这与基本马尔可夫模型中的状态是可以直接观察到的情况不同。
  • 输出概率分布:HMM引入了从每个隐藏状态生成观测数据的概率分布,使得可以建模更复杂的现象。例如,一个隐藏状态可能对应于多个观测结果,这使得HMM能够处理更加复杂和不确定的情况。
  • 序列建模能力:HMM特别适合处理时序数据,比如语音信号或文本序列,通过学习隐藏状态序列与观测数据之间的关系,可以进行预测、分类等任务。

2. 时间非齐次马尔可夫链:转移概率随时间变化的马尔可夫链。

改进点:
  • 动态转移概率:在时间非齐次马尔可夫链中,转移概率不仅依赖于当前状态,还依赖于时间。这意味着模型可以捕捉到时间变化带来的影响,能够更精确地描述某些过程,如经济周期的变化。
  • 灵活性:这种模型允许在不同时间点使用不同的转移概率矩阵,从而增强了模型的表达能力,可以更好地适应具有时间依赖性的实际应用场景。

3. 连续时间马尔可夫链:状态转移发生在连续时间上的马尔可夫链。

改进点:
  • 时间参数化:在连续时间马尔可夫链中,状态转移发生在连续时间上,而不是离散的步骤。这种模型能够更真实地描述一些现实世界中的随机过程,例如排队系统、药物在体内的浓度变化等。
  • 指数分布的使用:状态转移间隔时间通常遵循指数分布,使得模型能够自然地处理事件发生的时间间隔,这是在离散时间马尔可夫链中无法实现的。
  • 更广泛的应用:连续时间马尔可夫链适用于许多需要实时监控和分析的领域,如生物统计学、金融工程和通信网络等。

(五)例题

(1)例题 0:  马尔可夫链例题

1)例题描述

        假设有一个简单的天气模型,天气状态可以是“晴天”、“阴天”或“雨天”。状态空间 ( S = {晴天, 阴天, 雨天} )。已知转移概率矩阵如下:

晴天阴天雨天
晴天0.80.10.1
阴天0.40.40.2
雨天0.20.50.3

假设今天是晴天,问明天天气为阴天的概率是多少?

2)解题讲解
  1. 确定初始状态:根据题意,今天是晴天,因此初始状态分布可以表示为:

  2. 利用转移概率矩阵:我们需要找出从“晴天”到“阴天”的转移概率。根据转移概率矩阵,我们可以看到:

  3. 最终结果:因此,如果今天是晴天,则明天天气为阴天的概率为 ( 0.1 )。

(2)例题 1:隐马尔可夫模型(HMM)

1)问题描述

        假设有一个隐马尔可夫模型用于识别天气状态与观察到的气象。隐藏状态为“晴天”、“阴天”、“雨天”,观察状态为“户外活动”、“在家”。已知转移概率矩阵和发射概率矩阵如下:

转移概率矩阵 ( P )

晴天阴天雨天
晴天0.70.20.1
阴天0.30.40.3
雨天0.20.50.3

发射概率矩阵 ( B )

户外活动在家
晴天0.90.1
阴天0.50.5
雨天0.10.9

如果今天观察到的是“户外活动”,求出最可能的天气状态序列。

2)解题讲解

为了求解这个问题,我们可以使用维特比算法,该算法用于寻找最有可能的状态序列。

1.初始化

  • 根据初始状态分布假设,假设初始状态均匀分布。
  • 计算每个状态的初始概率乘以观测概率:

2.递推计算:对于后续的观测进行递推计算,每个状态计算最大概率路径:

  • 对于第二个观测(假设为“在家”),需要考虑前一步的转移概率和当前的观测概率。
  • 重复此过程直到最后一步,选择最大概率路径。

3.回溯找到最优路径:在获得所有状态的最大概率后,回溯找到最优状态序列。

(3)例题 2:时间非齐次马尔可夫链

1)问题描述

        考虑一个市场状态模型,有两种状态:“上涨”和“下跌”。它们的转移概率不是固定不变的,而是随时间变化,如下表所示:

时间上涨转上涨上涨转下跌下跌转上涨下跌转下跌
t=10.60.40.30.7
t=20.80.20.40.6

假设在时刻 ( t=0 ) 的状态为“上涨”,计算在时刻 ( t=2 ) 时状态为“下跌”的概率。

2)解题讲解
  1. 确定初始状态:在时间 ( t=0 ),状态为“上涨”,即初始状态分布为:

  2. 计算转移概率

    • 从 ( t=0 ) 到 ( t=1 ):
  3. 计算从 ( t=1 ) 到 ( t=2 )

    • 已知在 ( t=1 ) 时状态分布为:
    • 接下来使用 ( t=2 ) 的转移概率矩阵进行计算:
    时间上涨转上涨上涨转下跌下跌转上涨下跌转下跌
    t=20.80.20.40.6
    • 计算在 ( t=2 ) 时状态分布:

    对于状态“上涨”和“下跌”,计算如下:

    • 状态“上涨”在时刻 ( t=2 ) 的概率:

    • 状态“下跌”在时刻 ( t=2 ) 的概率:

  4. 结果:因此,在时刻 ( t=2 ) 状态为“下跌”的概率为 ( 0.36 )。

(4)例题 3:吸收马尔可夫链

1)问题描述

考虑一个抽奖游戏,参与者可以处于以下三种状态:

  • 状态 0: 未中奖
  • 状态 1: 中了一等奖
  • 状态 2: 中了二等奖

如果在状态 0,参与者以 50% 的概率中一等奖,以 30% 的概率中二等奖,以 20% 的概率继续保持在状态 0。

已知奖金不再返回到状态 0,因此这是一个吸收马尔可夫链。求在多次抽奖后最终进入状态 1 或状态 2 的概率。

2)解题讲解
  1. 建立转移概率矩阵 ( P ):

  2. 这里的第一行表示从状态 0 转移到其他状态的概率,第二、第三行分别表示状态 1 和状态 2 是吸收状态。

  3. 求解吸收概率

    • 定义 ( R ) 为吸收状态的概率矩阵,即只有状态 1 和状态 2 的转移概率。即:

    • 计算 ( B ) 为从未中奖状态(状态 0)转入各吸收状态的概率。

    • 首先,计算 ( Q ) 矩阵(非吸收状态间的转移概率):

  1. 求解吸收概率(续)

    第一个方程表示,从状态 0 转移到状态 1 的概率包括直接转移到状态 1 的概率 ( 0.5 ) 和保持在状态 0 后再次转移到状态 1 的概率 ( 0.2p_1 )。

    第二个方程同理,表示从状态 0 转移到状态 2 的概率。

    • 我们已经建立了状态转移矩阵 ( P ) 和吸收概率矩阵 ( R )。现在,我们需要找到从未中奖状态(状态 0)进入状态 1 和状态 2 的最终概率。

    • 对于这个问题,我们可以通过计算期望吸收时间和对应的吸收概率来解决。首先,定义:

      • ( p_1 ): 从状态 0 进入状态 1 的概率
      • ( p_2 ): 从状态 0 进入状态 2 的概率
    • 因为状态 1 和状态 2 是吸收状态,所以在状态 0 下的转移可以写作:

  2. 解方程

    • 将第一个方程重组为:

    • 第二个方程同样重组为:

  3. 结果

    • 最后,我们得到了从状态 0 开始进入各个吸收状态的概率:

      • 从状态 0 进入状态 1 的概率 ( p_1 = 0.625 )
      • 从状态 0 进入状态 2 的概率 ( p_2 = 0.375 )
    • 验证:这两个概率的总和为 ( p_1 + p_2 = 0.625 + 0.375 = 1 ),符合概率性质。

二、马尔可夫链与动态规划的联系和区别

        马尔可夫链和动态规划虽然在某些方面有交集,但它们的核心理念、应用目标和具体实现方法有所不同。理解这两者的关系和区别,有助于在实际问题中选择合适的工具和方法。

(一)联系

马尔可夫链和动态规划都是处理状态转移和决策过程的重要工具,它们之间存在如下联系:

  1. 状态:二者都涉及状态的概念。在马尔可夫链中,状态是系统在某一时刻可能处于的情况;而在动态规划中,状态通常表示某个子问题的解决方案。

  2. 转移:马尔可夫链关注状态之间的转移概率,而动态规划则关注从一个状态到下一个状态的决策过程。两者都利用先前的状态信息来推导后续状态。

  3. 优化:动态规划常用于求解具有最优子结构性质的问题,而马尔可夫决策过程(MDP)是一种将动态规划应用于随机环境的方法。这使得动态规划可以处理带有不确定性的决策问题。

  4. 递归关系:动态规划依赖于递归关系来定义状态间的转移;马尔可夫链也通过转移概率定义了状态之间的关系

(二)区别

尽管马尔可夫链和动态规划有相似之处,但它们在目的、方法和应用等方面存在显著区别:

  1. 目的

    • 马尔可夫链:主要用于建模和分析随机过程,关注的是状态转移的概率分布。
    • 动态规划:主要用于寻找最优解,关注的是如何在给定条件下做出最佳决策。
  2. 决策 vs. 预测

    • 马尔可夫链:通常是被动的,描述现象的演化,可以用于预测未来状态的概率
    • 动态规划:是主动的,制定决策以达到目标,通常涉及优化某个目标函数
  3. 模型类型

    • 马尔可夫链:是一种随机模型,强调无记忆性和状态转移的随机性。
    • 动态规划:可以是确定性的,也可以是随机的,但其核心是通过分解问题并逐步构建解决方案。
  4. 应用领域

    • 马尔可夫链:广泛应用于统计学、金融、物理、计算机科学等领域,尤其是在序列数据和随机过程的分析中。
    • 动态规划:常用在运筹学、算法设计、计算机程序优化等领域,适用于背包问题、最长公共子序列等经典问题。

相关文章:

专业学习|马尔可夫链(概念、变体以及例题)

一、马尔可夫链的概念及组成 (一)学习资料分享 来源:024-一张图,但讲懂马尔可夫决策过程_哔哩哔哩_bilibili 马尔可夫链提供了一种建模随机过程的方法,具有广泛的应用。在实际问题中,通过转移概率矩阵及初…...

RK3576 安卓SDK编译环境搭建

编译 Android14 对机器的配置要求较高: 建议预留500G存储 多分配CPU和内存 建议使用 Ubuntu 20.04 操作系统或更高版本 sudo apt-get updatesudo apt-get install make gcc sudo apt-get install g++ patchelf gawk texinfo chrpath diffstat binfmt-support sudo apt-get …...

Renesas R7FA8D1BH (Cortex®-M85) 上光电编码器测速功能

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 硬件架构 2.1 硬件框架结构 2.2 测速功能原理介绍 2.2.1 理论描述 2.2.2 实现原理 2.2.3 系统硬件结构 3 软件实现 3.1 FSP配置项目 3.2 代码实现 3.2.1 初始化函数 3.2.2 功能函数 3.…...

软件测试学习笔记丨Linux三剑客-sed

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32521 一、简介 sed(Stream editor)是一个功能强大的文本流编辑器,主要用于对文本进行处理和转换。它适用于自动化处理大量的文本数据,能够支持…...

Vue脚手架学习 vue脚手架配置代理、插槽、Vuex使用、路由、ElementUi插件库的使用

目录 1.vue脚手架配置代理 1.1 方法一 1.2 方法二 2.插槽 2.1 默认插槽 2.2 具名插槽 2.3 作用域插槽 3.Vuex 3.1 概念 3.2 何时使用? 3.3 搭建vuex环境 3.4 基本使用 3.5 getters的使用 3.6 四个map方法的使用 3.6.1 mapState方法 3.6.2 mapGetter…...

使用yml文件安装环境时,如何添加conda和pip的镜像源

博客参考 添加conda镜像源 name: NAME channels:- conda-forge- pytorch- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2- defaults depende…...

c语言经典100例

1.字符串转为数字 #include <stdio.h>int strToInt(char *s) {int num0;int sign1;int step1;if (*s -){sign -1;s;}while (*s > 0&&*s < 9){num num*10(*s-0);step 10;s;}return num*sign; }int main() {char a[10] "-1234";char *s a ;pr…...

百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现

0x01 产品描述&#xff1a; 百易云资产管理运营系统&#xff0c;是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理&#xff0c;包括资产的登记、盘点、评估、处置等多个环节&#xff0c;同时提供强大的运营分析功能&#…...

【分布式微服务云原生】《Redis RedLock 算法全解析:应对时钟漂移与网络分区挑战》

《Redis RedLock 算法全解析&#xff1a;应对时钟漂移与网络分区挑战》 摘要&#xff1a; 本文深入探讨 Redis 的 RedLock 算法&#xff0c;详细阐述其步骤及工作原理&#xff0c;同时重点分析该算法如何处理时钟漂移和网络分区这两个常见的分布式系统问题。读者将通过本文深入…...

OceanBase 的写盘与传统数据库有什么不同?

背景 在数据库开发过程中&#xff0c;“写盘”是一项核心操作&#xff0c;即将内存中暂存的数据安全地转储到磁盘上。在诸如MySQL这样的传统数据库管理系统中&#xff0c;写盘主要有以下几步&#xff1a;首先将数据写入缓存池&#xff1b;其次&#xff0c;为了确保数据的完整性…...

用Java爬虫API,轻松获取taobao商品SKU信息

在电子商务的世界里&#xff0c;SKU&#xff08;Stock Keeping Unit&#xff0c;库存单位&#xff09;是商品管理的基础。对于商家来说&#xff0c;SKU的详细信息对于库存管理、价格策略制定、市场分析等都有着重要作用。taobao作为中国最大的电子商务平台之一&#xff0c;提供…...

OpenHarmony 入门——ArkUI 自定义组件内同步的装饰器@State小结(二)

文章大纲 引言一、组件内状态装饰器State1、初始化2、使用规则3、变量的传递/访问规则说明4、支持的观察变化的场景5、State 变量的值初始化和更新机制6、State支持联合类型实例 引言 前一篇文章OpenHarmony 入门——ArkUI 自定义组件之间的状态装饰器小结&#xff08;一&…...

【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符设备开发入门,点亮LED

【Linux驱动开发】嵌入式Linux驱动开发基本步骤&#xff0c;字符设备开发入门&#xff0c;点亮LED 文章目录 开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射&#xff0c;虚拟内存和硬件内存地址字符驱动旧字符驱动新字符驱动 应用程序开发…...

搬砖14、Python网络编程入门

网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称&#xff0c;组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数&#xff0c;而计算机网络也可以称得上是一个“复…...

Transformer: Attention is All you need

Transformer Transformer是基于Encoder-Decoder结构的&#xff0c;将Seq2Seq中的RNN/GRU部分更换为Self-Attention部分 位置编码 Positional Encoding Self-attention丢失了位置信息 CNN 卷积神经网络可以保存相邻的位置信息 RNN 是顺序输入的&#xff0c;是包含了位置信息…...

C++:排序算法

目录 一、插入排序 1.直接插入排序 2.希尔排序 二、交换排序 1.冒泡排序 2.快速排序 三、选择排序 1.简单选择排序 2.堆排序 四、归并排序 1.二路归并排序的递归实现 2.二路归并排序的非递归实现 一、插入排序 1.直接插入排序 直接插入排序的基本思想是&#xff…...

期货日内稳赢策略:双15交易法详解

Eagle Trader的考试不仅涵盖了CFD交易&#xff0c;期货交易的考生人数也颇为可观。与外汇市场相比&#xff0c;期货在国内市场的普及程度更高&#xff0c;参与的群体也更为广泛。这得益于期货市场在国内相对成熟的监管体系&#xff0c;使得交易员对期货有了更深入的了解和信任。…...

2024年10月第2个交易周收盘总结:怎样卖出!

计划自己的交易&#xff0c;交易自己的计划。 跟随市场而情绪波动&#xff0c;最终一定会导向失败&#xff01; 连续、平稳、冷静地惯彻交易计划&#xff0c;比什么都重要&#xff01; 交易本身是极其简单和清楚的&#xff0c;让事情变复杂的原因不是行情走势和交易本身&…...

mysql 不支持utf8mb4_0900_ai_ci

Unknowncollation:‘utf8mb4_0900_ai_ci’ 解决方案&#xff1a; 1. 升级mysql为8.0以上&#xff08;不包含8.0&#xff09; 2. 修改编码类型&#xff1a; utf8mb4_0900_ai_ci/utf8mb4_0900_ci 修改为utf8_general_ci utf8mb4修改为utf8 utf8mb4_0900_ai_ci 是一种 MySQL 数…...

第10篇:防火墙与入侵检测系统

目录 引言 10.1 防火墙的基本概念 10.2 防火墙的分类 10.3 防火墙策略的配置与实现 10.4 入侵检测系统&#xff08;IDS&#xff09; 10.5 防火墙与IDS的结合 10.6 总结 第10篇&#xff1a;防火墙与入侵检测系统 引言 在当今的数字世界中&#xff0c;网络安全已经成为企…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...