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

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本节系统讲解马尔可夫过程(MP)、马尔可夫决策过程(MDP)与马尔可夫奖励过程(MRP)三大核心模型,涵盖马尔可夫性、状态空间、转移矩阵、策略、奖励函数、价值函数及贝尔曼方程,并介绍强化学习的有/无模型、值/策/Actor-Critic及on/off-policy等分类体系。(239字)

 马尔可夫观测过程(看)

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

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

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

马尔可夫性

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

image.gif

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

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

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

image.gif

80% 的概率去上第三节课

20% 的概率去刷朋友圈

状态空间(S)

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

状态空间可以分为两类:

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

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

以学生的一天为例

状态 State(S)

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

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

 

状态转移矩阵(P)

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

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

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

image.gif

image.gif

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

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

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

image.gif


 

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

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

动作空间

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

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

Quit(放弃/退出)

策略

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

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

image.gif

image.gif


马尔可夫奖励过程(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

image.gif

动作奖励函数

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

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

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

image.gif

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

image.gif

回报 Return

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

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

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

image.gif

image.gif

价值函数

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

期望 Expectation

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

那么期望就是:

期望 = 每种结果 × 对应概率,然后全部加起来

image.gif

60% 的概率得到 10 分
40% 的概率得到 1 分
0.6 × 10 + 0.4 × 1 = 6.4

image.gif

回合 Episode

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

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

C1 → C2 → C3 → Pass → Sleep

image.gif

image.gif

状态价值函数 V(s)

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

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

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

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

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

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

image.gif

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

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

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

image.gif

所以 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

image.gif

动作价值函数 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回报
      + ...

image.gif

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

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

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

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

以 C3 为例,假设:

R(C3) = -2
P(Pass | C3) = 0.6
P(Pub | C3) = 0.4
γ = 1

image.gif

V(C3)
= R(C3) + P(Pass | C3)V(Pass) + P(Pub | C3)V(Pub)
= -2 + 0.6V(Pass) + 0.4V(Pub)

image.gif

C3 的价值
= C3 本身的奖励
+ 从 C3 可能到达的所有下一状态价值的加权平均

image.gif

image.gif


贝尔曼方程

状态价值函数

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

image.gif

image.gif

矩阵形式的贝尔曼方程

image.gif

求解贝尔曼方程

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

image.gif

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

炸。

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

例如

(1)动态规划

(2)蒙特卡洛估计

(3)时间差分学习

策略价值函数

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

image.gif

动作价值函数

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

image.gif


强化学习的分类

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

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

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

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

按是否学习环境模型分类

有模型 Model-based

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

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

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

后选择更好的动作。

World Models
MuZero
基于模型预测控制的方法

image.gif

无模型 Model-free

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

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

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

Q-learning
Sarsa
DQN
Policy Gradient
PPO

image.gif

按主要学习的函数分类

基于价值 Value-based

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

V(s)
Q(s,a)

image.gif

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

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

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

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

Q-learning
DQN

image.gif

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

基于策略 Policy-based

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

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

Policy Gradient
REINFORCE

image.gif

                                           连续动作空间

两者兼顾 Actor-Critic

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

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

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

A2C
A3C
DDPG
PPO
SAC

image.gif

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

同策略 On-policy

同策略学习指的是:

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

image.gif

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

Sarsa Policy Gradient PPO 通常也属于 On-policy 风格

image.gif

异策略 Off-policy

异策略学习指的是:

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

image.gif

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

代表算法:

Q-learning DQN DDPG SAC

image.gif

image.gif 编辑

目录
相关文章
|
15天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5701 29
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
10天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1157 2
|
7天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
919 1
|
16天前
|
人工智能 自然语言处理 供应链
|
7天前
|
人工智能 弹性计算 安全
阿里云618活动时间、活动入口、优惠活动详细解读
2026年阿里云618创新加速季已全面开启,作为年度力度最大的云产品促销活动,本次大促覆盖轻量应用服务器、ECS云服务器、GPU云服务器、数据库、AI算力、安全服务、CDN等全品类产品,推出5亿元算力补贴、新用户限时秒杀、普惠满减、企业专享、免费试用、云大使返佣等多重福利,个人开发者、中小企业、AI团队均可享受专属低价。本文将系统梳理2026年阿里云618活动的完整时间节点、官方参与入口、各类优惠细则、使用规则、热门产品推荐及实操代码,帮助用户精准参与、高效省钱,以最低成本完成上云部署。
699 3
|
23天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3822 15
|
8天前
|
运维
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
1416 0