news 2026/6/2 15:49:06

图解强化学习 |手算马尔可夫随机过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图解强化学习 |手算马尔可夫随机过程

🌞欢迎来到图解强化学习的世界

🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

📆首发时间:🌹2026年3月27日🌹

✉️希望可以和大家一起完成进阶之路!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

马尔可夫观测过程(看)

马尔可夫性

状态空间(S)

状态转移矩阵(P)

马尔可夫决策过程(MDP)(做)

动作空间

策略

马尔可夫奖励过程(MRP)(想)

奖励函数

回报 Return

价值函数

状态价值函数 V(s)

动作价值函数 Q(s,a)

为什么需要贝尔曼方程?

贝尔曼方程

状态价值函数

矩阵形式的贝尔曼方程

策略价值函数

动作价值函数

强化学习的分类

按是否学习环境模型分类

有模型 Model-based

无模型 Model-free

按主要学习的函数分类

基于价值 Value-based

基于策略 Policy-based

两者兼顾 Actor-Critic

按学习数据与当前策略的关系分类

同策略 On-policy

异策略 Off-policy

马尔可夫观测过程(看)

智能体未来状态的条件概率分布 仅依赖于当前状态

马尔可夫性,状态空间,状态转移矩阵

本小节介绍的马尔可夫观测过程(看)实际上就是马尔可夫过程(Markov Process)

马尔可夫性

智能体未来状态的条件概率分布,仅依赖于当前状态

比如:这些下一步会发生什么,只取决于他现在正在上第二节课这个状态,而不取决于他是怎么来

到第二节课的。 只要他现在都处于 C2,那么从 C2 出发的下一步转移概率就是一样的。

P(C3 | C2) = 0.8 P(FB | C2) = 0.2

80% 的概率去上第三节课

20% 的概率去刷朋友圈

状态空间(S)

状态空间是智能体可能处于的所有状态的集合。

状态空间可以分为两类:

离散状态空间:状态是有限或可数的,例如迷宫格子、课程阶段。

连续状态空间:状态是连续取值的,例如机器人位置坐标、速度、温度。

以学生的一天为例

状态 State(S)

C1:上第一节课C2:上第二节课C3:上第三节课Pass:通过考试Pub:去酒吧

FB:刷 Facebook / 刷朋友圈Sleep:睡觉(终止态)

状态转移矩阵(P)

智能体从一个状态到另外一个状态构成的矩阵。

P这是状态转移矩阵,把所有状态之间的转移概率都打包成一张表。比如第1行就是从状态

s1出发,到所有其他状态的概率。

学生一天的状态变化过程,可以看作马尔可夫过程产生的一条轨迹(trajectory),也称为一条

本路径(sample path)。若从强化学习视角看,从初始状态到终止状态(Sleep)的完整过程,

又可以称为一个episode(回合)


马尔可夫决策过程(MDP)(做)

有动作影响环境,动作空间,策略

动作空间

智能体在每个状态下可以选择的动作

例如:Study(学习) Facebook(刷朋友圈) Pub(去酒吧) Sleep(睡觉)

Quit(放弃/退出)

策略

在状态 s 下选择动作 a 的概率分布。

在策略 下,从 s到 s' 的总概率.在当前状态下选择某个动作的概率


马尔可夫奖励过程(MRP)(想)

奖励函数(状态奖励函数,动作奖励函数),回报,价值函数(状态价值函数,动作价值函数)

奖励函数

状态奖励函数

状态奖励函数只由当前状态决定:R(S)只要智能体进入状态 s,就获得对应奖励。

R(C1) = -2 R(C2) = -2 R(C3) = -2 R(Pass) = +10 R(Pub) = +1 R(FB) = -1 R(Sleep) = 0

动作奖励函数

由当前状态 s 和动作 a 共同决定的奖励信号,通常表示为R(s,a)

在状态 s 下选择动作 a,会获得一个奖励。

R(C2, study) = -1 R(C2, browse) = -2 R(C2, skip) = -3

选择状态奖励函数,还是动作奖励函数取决于任务性质和特点。

回报 Return

回报 Return =从某个时间点开始,沿着后续轨迹获得的累计奖励。如果是完整回合,从初始状态

开始算,那回报就是:这一整个回合的总奖励。

从当前状态出发的每个回合都有对应的回报

价值函数

在理解价值函数之前,先明确几个概念。

期望 Expectation

期望可以理解为“加权平均”。如果一个随机事件有多种可能结果,每种结果都有对应的发生概率,

那么期望就是:

期望 = 每种结果 × 对应概率,然后全部加起来
60% 的概率得到 10 分 40% 的概率得到 1 分 0.6 × 10 + 0.4 × 1 = 6.4

回合 Episode

回合指的是:智能体从初始状态开始,与环境进行一系列交互,直到终止状态为止的完整过程。

在学生例子中,一个回合可以是:

C1 → C2 → C3 → Pass → Sleep

状态价值函数 V(s)

从当前状态 s 开始,一直走到任务结束,未来能够获得的回报的期望值。

V(s) = E[G_t | S_t = s]

G_t:从当前时刻 t 开始的回报

E:求期望,也就是对所有可能轨迹做加权平均

用学生例子来说,计算 C1 状态下的价值,实际上就是在问:

如果一个学生现在处于 C1:第一节课, 按照图中的概率一直走下去, 他这一轮学习过程平均能获得多少分?

这里不是问某一条路线能得多少分,而是问:从 C1 出发,所有可能路线的回报平均是多少?

例如从 C1 出发,可能有很多条轨迹,每条轨迹都有自己的回报,也有自己的发生概率。

轨迹1:C1 → C2 → C3 → Pass → Sleep 轨迹2:C1 → C2 → C3 → Pub → Sleep 轨迹3:C1 → FB → Pub → Sleep 轨迹4:C1 → FB → Sleep ...

所以 C1 的价值就是:V(C1) = 所有可能轨迹的回报 × 该轨迹发生的概率,然后全部加起来

也可以说:C1 的价值 = 未来所有可能收益的折现加权平均值

轨迹概率怎么得到

以轨迹1为例:

C1 → C2 → C3 → Pass → Sleep P(C2 | C1) = 0.5 P(C3 | C2) = 0.8 P(Pass | C3) = 0.6 P(Sleep | Pass) = 1.0 P(轨迹1) = P(C2 | C1) × P(C3 | C2) × P(Pass | C3) × P(Sleep | Pass) = 0.5 × 0.8 × 0.6 × 1.0 = 0.24
动作价值函数 Q(s,a)

在状态 s 下,如果先选择动作 a,然后再继续走下去,未来平均能获得多少回报?

Q(s,a) = E[G_t | S_t = s, A_t = a]

Q(s,a):评价在某个状态下选择某个动作好不好

Q 函数可以直接用来指导智能体选动作: 在状态 s 下,选择 Q(s,a) 最大的动作。

为什么需要贝尔曼方程?

理论上,我们可以通过枚举所有可能轨迹来计算价值:

V(C1) = 轨迹1概率 × 轨迹1回报 + 轨迹2概率 × 轨迹2回报 + 轨迹3概率 × 轨迹3回报 + ...

但现实中,轨迹可能非常多,甚至无限多。手动列出一万条轨迹再加权平均是不现实的。

所以我们用贝尔曼方程直接递归求解价值。

V(s) = R(s) + γ Σ P(s' | s) V(s')

当前状态的价值= 当前状态的即时奖励+ 折扣因子 × 下一状态价值的加权平均

以 C3 为例,假设:

R(C3) = -2 P(Pass | C3) = 0.6 P(Pub | C3) = 0.4 γ = 1
V(C3) = R(C3) + P(Pass | C3)V(Pass) + P(Pub | C3)V(Pub) = -2 + 0.6V(Pass) + 0.4V(Pub)
C3 的价值 = C3 本身的奖励 + 从 C3 可能到达的所有下一状态价值的加权平均



贝尔曼方程

状态价值函数

“一个状态的价值,等于你现在能拿到的奖励,加上你下一步所在状态价值的折现。”

矩阵形式的贝尔曼方程

求解贝尔曼方程

贝尔曼方程是线性方程 ,可以直接求解:

这种方法只适合“小世界”。如果你的迷宫有几百万个格子,算这个矩阵逆的开销会大到让电脑爆

炸。

对于大规模的 MRPs 问题, 可以使用迭代或基于数据的方法,

例如

(1)动态规划

(2)蒙特卡洛估计

(3)时间差分学习

策略价值函数

状态 s的状态价值,等于我所有可能采取的动作(a)及其对应动作价值(Q)的加权平均数。

动作价值函数

一个动作的价值 = 现在的即时反馈 + 未来所有可能状态的平均价值


强化学习的分类

强化学习主要研究的就是3类函数,状态转移函数,策略函数,价值函数。

状态转移函数:环境会怎么变化

策略函数:智能体会怎么选动作

价值函数:状态或动作到底有多好

按是否学习环境模型分类
有模型 Model-based

有模型强化学习会尝试学习或使用一个环境模型。

这个模型可以预测:在状态 s 下采取动作 a,下一步可能到达哪个状态 s'会获得多少奖励 r。智能

体不只是直接在真实环境中试错,还额外拥有一个“虚拟环境”。它可以在脑子里提前模拟未来,然

后选择更好的动作。

World Models MuZero 基于模型预测控制的方法
无模型 Model-free

无模型强化学习不显式学习环境转移模型。它不去建模:P(s' | s, a) 而是直接通过和环境交互获得

经验:我做了动作 a 环境给了我奖励 r 我进入了新状态 s' 然后根据这些反馈改进策略或价值函

数。可以理解为:机器人不知道世界规则,只能一步一步试,根据真实反馈慢慢学。

Q-learning Sarsa DQN Policy Gradient PPO
按主要学习的函数分类
基于价值 Value-based

基于价值的方法主要学习价值函数,例如:

V(s) Q(s,a)

它会显式计算“某个状态或动作有多好”。

比如 Q-learning 会学习:Q(s,a)

策略本身通常是隐式的。也就是说,算法没有直接输出一个完整策略,而是根据 Q 值选动作:选

择 Q(s,a) 最大的动作a = argmax Q(s,a)

Q-learning DQN

动作空间离散、动作数量有限

基于策略 Policy-based

基于策略的方法直接学习策略函数: π(a | s) 在状态 s 下,选择动作 a 的概率是多少 它不一定先

计算每个动作的 Q 值,而是直接输出动作概率。

Policy Gradient REINFORCE

连续动作空间

两者兼顾 Actor-Critic

Actor-Critic 同时学习策略函数和价值函数。

Actor:演员,负责选择动作,也就是学习策略 π(a | s)

Critic:评论家,负责评价动作好不好,也就是学习价值函数 V(s) 或 Q(s,a)

A2C A3C DDPG PPO SAC
按学习数据与当前策略的关系分类
同策略 On-policy

同策略学习指的是:

用当前策略采集的数据,来改进当前策略。

也就是说,我现在怎么行动,就用我现在行动产生的经验来学习。

Sarsa Policy Gradient PPO 通常也属于 On-policy 风格
异策略 Off-policy

异策略学习指的是:

学习用的数据,不一定来自当前要优化的策略。

它可以使用过去的数据、别的策略产生的数据,甚至随机探索产生的数据。

代表算法:

Q-learning DQN DDPG SAC

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 15:46:43

Arduino力传感器与舵机联动:打造智能互动占卜板

1. 项目概述与核心思路如果你对智能硬件和互动装置感兴趣,想做一个既有技术含量又能带来点趣味和“神秘感”的小玩意儿,那么这个基于Arduino的“灵异占卜板”项目绝对值得一试。它本质上是一个精妙的机电一体化互动装置,核心原理并不复杂&…

作者头像 李华
网站建设 2026/6/2 15:46:39

HEIF Utility:让Windows也能“读懂“苹果照片的终极免费工具

HEIF Utility:让Windows也能"读懂"苹果照片的终极免费工具 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility 你是否曾经遇到过这样的尴尬&am…

作者头像 李华
网站建设 2026/6/2 15:45:28

Elsevier Tracker:科研投稿的智能监控助手,告别繁琐手动刷新

Elsevier Tracker:科研投稿的智能监控助手,告别繁琐手动刷新 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 作为科研工作者,您是否每天都要反复登录Elsevier投稿系统&#xff0c…

作者头像 李华
网站建设 2026/6/2 15:44:01

Linux内核学习轨迹第四部: 多核调度与负载均衡机制(第六小节)

8. 多核调度与负载均衡机制 现代服务器几乎都是多核SMP(对称多处理)架构,甚至是多NUMA节点架构,Linux调度器不仅要保证单CPU上的进程调度公平性,还要解决多核场景下的核心挑战:如何把进程均衡地分配到各个C…

作者头像 李华