强化学习:MDP、价值函数与 Bellman

强化学习:MDP、价值函数与 Bellman

Charles Lv8

强化学习的基础不是某个算法,而是一套描述闭环决策的语言。只要把 stateactionrewardpolicyvalueBellman equation 理顺,后面的 PPO、GRPO、Dreamer 和世界模型都会清楚很多。

读法定位

这页先回答“MDP、价值函数与 Bellman”在「强化学习」里的位置:它解决什么局部问题,依赖哪些前置,最后会影响哪类工程或研究判断。
前置:先懂概率、优化和基本训练曲线;PPO/GRPO 不必先记公式,先抓更新对象。 必要时先回 强化学习入口、基础知识 或 术语表。
主线关系:把状态、动作、奖励、策略优化和世界模型闭环连起来,看模型如何通过反馈改进决策。

初学者先抓住

强化学习要解决的是“现在做什么会让未来更好”。所以它不只关心当前动作看起来是否合理,还关心这个动作会把系统带到什么状态,以及后面还能拿到多少奖励。

主线定位:从预测未来到选择动作

MDP/Bellman 页在世界模型高效训练中负责把“预测未来”转成“选择动作”。如果 transition、reward 或 value 错了,策略会把这些错误系统性放大;如果它们足够可靠,agent 就能先在模型或价值函数里估计后果,减少真实试错。

MDP 是最小决策模型

MDP(Markov Decision Process,马尔可夫决策过程)通常写成:

M=(S,A,P,R,γ)\mathcal{M}=(\mathcal{S}, \mathcal{A}, P, R, \gamma)

逐项读法:一个 MDP 是五件东西的组合:有哪些状态、有哪些动作、动作会怎样改变状态、动作会得到什么奖励、未来奖励要打多少折扣。

符号 英文 直觉
M\mathcal{M} Markov Decision Process 一个完整决策问题
S\mathcal{S} state space 环境可能处在的所有状态集合
A\mathcal{A} action space agent 可以选择的所有动作集合
PP transition function 执行动作后状态如何变化
RR reward function 当前动作或结果带来的反馈
γ\gamma discount factor 未来奖励折算到当前的系数
生活例子:找钥匙

状态是“你知道或不知道钥匙可能在哪里”,动作是“看桌面、打开抽屉、翻外套口袋”,奖励是“找到钥匙加分、浪费时间扣分”。如果只看当前画面,桌上没有钥匙很容易被误读成“钥匙不存在”;如果状态里保留了历史记忆,就能知道刚才还没查过外套口袋。

如果状态不能完全观测,就变成 POMDP。机器人和 VLA 常常是 POMDP,因为摄像头只能看到一部分世界,抽屉里、遮挡后、过去发生过的接触都可能影响下一步。

state 不等于 observation

observation 是传感器看到的东西,例如当前图像;state 是足以预测未来的内部描述,例如物体位置、速度、接触关系和任务进度。VLM 往往处理 observation,世界模型要努力学习更接近 state 的 latent。

MDP 的一个隐含假设是 Markov property:只要知道当前 state,未来就不需要额外依赖更早历史。

P(st+1s1,a1,,st,at)=P(st+1st,at)P(s_{t+1}\mid s_1,a_1,\ldots,s_t,a_t)=P(s_{t+1}\mid s_t,a_t)

逐项读法:左边说“下一状态可能依赖完整历史”,右边说“如果当前状态 sts_t 已经足够好,预测下一状态只需要 sts_t 和当前动作 ata_t”。

符号 含义
s1,a1,,st,ats_1,a_1,\ldots,s_t,a_t 从过去到当前的状态和动作历史
st+1s_{t+1} 下一步状态
P()P(\cdot\mid\cdot) 条件概率:在已知右边条件时,左边事件发生的概率

这不是说真实世界没有历史,而是说我们选的 state 应该已经把有用历史压进去了。世界模型、RSSM、Transformer memory 和 VLA 的历史窗口,本质上都在努力构造更接近 Markov 的内部状态。

Policy 是行为规则

策略(policy)写成:

πθ(atst)\pi_\theta(a_t\mid s_t)

逐项读法:给定当前状态 sts_t,参数为 θ\theta 的模型选择动作 ata_t 的概率是多少。

符号 含义
π\pi policy,策略,也就是行为规则
θ\theta policy 的参数,例如神经网络权重
sts_t tt 步状态
ata_t tt 步动作
πθ(atst)\pi_\theta(a_t\mid s_t) 在状态 sts_t 下选中动作 ata_t 的概率

在语言模型 RLHF 中,状态可以理解为 prompt 加已经生成的前缀,动作就是下一个 token。在机器人里,状态可能是图像、关节角、任务指令和历史动作的组合,动作可能是一个连续控制向量或动作 token。

术语 简洁解释
deterministic policy 同一状态总输出同一动作,适合稳定执行
stochastic policy 同一状态按概率采样动作,适合探索和生成
behavior policy 负责采样数据的策略,可能是旧模型或示范策略
target policy 正在被优化或评估的策略
生活例子:走迷宫

如果每次到路口都固定向左走,这是 deterministic policy。如果有 70% 概率向左、30% 概率向右,这是 stochastic policy。训练早期需要一定随机性,否则 agent 可能永远发现不了右边有出口。

behavior policy 为什么重要

Offline RL 和 VLA 示范数据经常来自旧策略或人类示范,也就是 behavior policy。你要训练的新策略可能想选更好的动作,但如果这个动作在数据里几乎没出现过,value 估计就只能外推,容易虚高。

Trajectory、Episode 和 Horizon

RL 不只看单个样本,而是看一串状态、动作和奖励:

τ=(s0,a0,r0,s1,a1,r1,)\tau=(s_0,a_0,r_0,s_1,a_1,r_1,\ldots)

逐项读法:τ\tau 是一段交互记录。第 0 步在状态 s0s_0 做动作 a0a_0,得到奖励 r0r_0,进入状态 s1s_1,再继续。

符号 / 术语 含义
τ\tau trajectory,一段连续交互记录
sts_t tt 步状态
ata_t tt 步动作
rtr_t tt 步奖励
episode 从开始到终止的一整局任务,例如一局游戏或一次机器人任务
horizon 最多向前看多少步,短 horizon 看局部,长 horizon 看长期后果
rollout 用当前 policy 采样一段 trajectory,真实环境或模型环境都可以
生活例子:做饭任务的 horizon

如果 horizon 只有 1 步,机器人只会问“现在夹锅铲是否合理”。如果 horizon 有 30 步,它还要考虑夹起锅铲后抽屉是否打开、路径是否会撞到锅、放进去后是否需要松爪。世界模型之所以重要,是因为长 horizon 真实试错很贵,内部 rollout 可以先筛掉明显危险的候选动作。

Reward、Return 和 Value

单步 reward 是当前反馈:

rt=R(st,at)r_t = R(s_t,a_t)

逐项读法:在第 tt 步,如果状态是 sts_t,动作是 ata_t,奖励函数 RR 会给出一个反馈 rtr_t

符号 含义
rtr_t tt 步实际拿到的奖励
RR reward function,奖励函数
R(st,at)R(s_t,a_t) 在状态 sts_t 做动作 ata_t 的奖励

return 是从当前时刻开始累计的未来奖励:

Gt=rt+γrt+1+γ2rt+2+G_t = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \cdots

逐项读法:GtG_t 是从第 tt 步往后看的总收益。当前奖励权重是 1,下一步奖励乘 γ\gamma,再下一步乘 γ2\gamma^2,越远的奖励影响越小。

符号 含义
GtG_t return,从第 tt 步开始累计的未来奖励
rt+kr_{t+k} 未来第 kk 步的奖励
γk\gamma^k 未来第 kk 步奖励的折扣权重

value 是在某个策略下,从状态 ss 出发能拿到的期望 return:

Vπ(s)=Eπ[Gtst=s]V^\pi(s)=\mathbb{E}_\pi[G_t\mid s_t=s]

逐项读法:如果当前状态是 ss,之后都按照策略 π\pi 行动,那么平均下来能拿到多少 return。

符号 含义
Vπ(s)V^\pi(s) 策略 π\pi 下状态 ss 的价值
Eπ[]\mathbb{E}_\pi[\cdot] 按策略 π\pi 采样动作和轨迹后取平均
Gtst=sG_t\mid s_t=s 条件是“当前状态等于 ss”时的 return

Q-value 则多固定了当前动作:

Qπ(s,a)=Eπ[Gtst=s,at=a]Q^\pi(s,a)=\mathbb{E}_\pi[G_t\mid s_t=s,a_t=a]

逐项读法:如果当前在状态 ss,第一步强制做动作 aa,之后再按策略 π\pi 行动,平均能拿到多少 return。

符号 含义
Qπ(s,a)Q^\pi(s,a) 策略 π\pi 下,状态 ss 做动作 aa 的长期价值
at=aa_t=a 当前动作被固定为 aa
之后按 π\pi 第一步之后继续按当前策略行动

Advantage 衡量“这个动作比平均策略好多少”:

Aπ(s,a)=Qπ(s,a)Vπ(s)A^\pi(s,a)=Q^\pi(s,a)-V^\pi(s)

逐项读法:同一个状态里,如果先做动作 aa 的长期价值高于这个状态的平均价值,advantage 为正;如果更差,advantage 为负。

符号 含义
Aπ(s,a)A^\pi(s,a) 动作 aa 相对策略平均行为的优势
Qπ(s,a)Q^\pi(s,a) 先做动作 aa 的预期回报
Vπ(s)V^\pi(s) 不指定动作、按策略平均选择时的预期回报
reward 和 value 不要混

reward 像这一步考试得了几分,value 像从现在开始预计整门课最终能拿多少分。一个动作当前 reward 可能低,但如果它把系统带到更好的未来状态,value 仍然可能很高。很多长时任务难,就难在短期反馈和长期收益不一致。

常见误区:reward 写得越细越好

奖励太稀疏会难学,但奖励太细也会让模型钻空子。比如只奖励“夹爪靠近杯子”,机器人可能学会一直贴近杯子却不抓;只奖励“回答越长越好”,LLM 可能堆废话。好的 reward 要尽量贴近最终任务,同时监控是否出现投机行为。

Bellman 方程

Bellman 方程把“当前价值”拆成“当前奖励 + 下一状态价值”:

Vπ(s)=Eaπ,sP[R(s,a)+γVπ(s)]V^\pi(s)=\mathbb{E}_{a\sim\pi,\,s'\sim P} \left[ R(s,a)+\gamma V^\pi(s') \right]

逐项读法:在状态 ss 时,先按策略 π\pi 采样动作 aa,环境再按 transition PP 给出下一状态 ss'。当前状态的价值,等于当前奖励 R(s,a)R(s,a) 加上打折后的下一状态价值 γVπ(s)\gamma V^\pi(s'),再对可能发生的动作和下一状态取平均。

符号 含义
aπa\sim\pi 动作 aa 按策略 π\pi 采样
sPs'\sim P 下一状态 ss' 按环境转移概率采样
R(s,a)R(s,a) 当前状态动作的即时奖励
γVπ(s)\gamma V^\pi(s') 下一状态价值折算回当前
Eaπ,sP\mathbb{E}_{a\sim\pi,\,s'\sim P} 对动作随机性和环境随机性取平均

Q-value 也可以写成:

Qπ(s,a)=EsP[R(s,a)+γEaπQπ(s,a)]Q^\pi(s,a)=\mathbb{E}_{s'\sim P} \left[ R(s,a)+\gamma \mathbb{E}_{a'\sim\pi} Q^\pi(s',a') \right]

逐项读法:先固定当前动作 aa,所以外层只需要对下一状态 ss' 取平均;到了下一状态后,后续动作 aa' 又按策略 π\pi 采样。

符号 含义
Qπ(s,a)Q^\pi(s,a) 当前状态先做动作 aa 的长期价值
aa' 下一状态里要选择的后续动作
EaπQπ(s,a)\mathbb{E}_{a'\sim\pi} Q^\pi(s',a') 下一状态按策略平均选择动作后的价值
图像化理解:Bellman 是可递归的未来账本

Bellman 不是神秘公式,它只是说:要知道现在值多少钱,就看现在立刻得到多少,加上下一步状态值多少钱。世界模型的价值在这里很直接:如果能预测 ss'rr,就能在执行前估算未来账本。

5.1 算一遍:discount 不是哲学参数,是 horizon 预算

γ\gamma 决定未来奖励还能影响当前决策多久。一个粗略有效 horizon 是:

Heff11γH_{\text{eff}}\approx\frac{1}{1-\gamma}

逐项读法:当 γ\gamma 越接近 1,未来奖励衰减越慢,当前决策会受到更远未来的影响。这个近似不是严格任务边界,而是一个帮助估算时间尺度的经验读法。

如果机器人控制频率是 20Hz

γ\gamma 约等效步数 约等效真实时间
0.95 20 steps 1s
0.99 100 steps 5s
0.995 200 steps 10s

这不是说 γ=0.995\gamma=0.995 一定更好。更长 horizon 会让价值更关注长期后果,但也会放大世界模型 transition error 和 reward misspecification。若每步关键接触误判概率是 2%100 步内至少一次误判的概率约为:

10.9810086.7%1-0.98^{100}\approx86.7\%

所以真实取舍是:

1
2
3
4
5
症状:短 horizon 策略贪心,长 horizon 策略在真实环境崩
指标:effective horizon、reward prediction error、TD error、model exploitation、closed-loop success
机制:Bellman backup 会递归使用下一状态价值;transition/reward 错误会沿 horizon 放大
修复:缩短 rollout、加入 uncertainty penalty、使用 value clipping、用真实回放校准 reward/done/risk
边界:gamma 和 rollout horizon 要跟任务时间尺度、模型误差和控制频率一起定

从 Bellman 到 Q-learning

Q-learning 直接学习 Q(s,a)Q(s,a):在状态 ss 做动作 aa 后,长期看大概能拿多少回报。它用 Bellman 思路构造 TD target:

yt=rt+γmaxaQtarget(st+1,a)y_t = r_t + \gamma \max_{a'} Q_{\text{target}}(s_{t+1}, a')

逐项读法:训练目标 yty_t 等于这一步真实拿到的奖励 rtr_t,加上下一状态里“当前估计最好的动作价值”的折扣值。

符号 含义
yty_t TD target,用来训练当前 Q 网络的目标
maxa\max_{a'} 在下一状态的所有动作中挑估计价值最高的
QtargetQ_{\text{target}} target network 给出的较稳定 Q 估计

再让当前网络的 Q(st,at)Q(s_t,a_t) 靠近这个 target:

L=(ytQθ(st,at))2L=\left(y_t-Q_\theta(s_t,a_t)\right)^2

逐项读法:如果当前 Q 网络预测的 Qθ(st,at)Q_\theta(s_t,a_t) 和 TD target yty_t 差很多,平方误差就大;优化会让当前预测向 target 靠近。

符号 含义
LL value loss
QθQ_\theta 参数为 θ\theta 的 Q 网络
()2(\cdot)^2 平方误差,差距越大惩罚越大
术语 简洁解释
Q-learning 学状态-动作价值 Q(s,a)Q(s,a),再选价值最高的动作
TD target 用“当前奖励 + 下一状态估计价值”拼出的训练目标
bootstrapping 用模型自己的下一步估计来训练当前估计
replay buffer 保存过去交互样本,训练时随机抽取,减少样本相关性
target network 慢更新或延迟更新的目标网络,让 TD target 不至于每步剧烈漂移
生活例子:餐厅排队

你在商场里选择排哪家餐厅。reward 是这次吃得是否满意,value 是“排这家之后,等待、用餐、赶电影整体值不值”。Q-learning 不只记“这家好吃”,还要记“现在排队 50 分钟时还值不值”。

DQN 把 Q-learning 接到深度网络上,用图像作为输入,用神经网络预测每个动作的 Q-value。它的两个关键工程技巧是 experience replay 和 target network。

Deep Q-learning with Experience Replay: Breakout reward
Deep Q-learning with Experience Replay: Seaquest reward
Deep Q-learning with Experience Replay: Breakout value
Deep Q-learning with Experience Replay: Seaquest value

图源:Playing Atari with Deep Reinforcement Learning,Figure 2。原论文图意:左侧两图是 Breakout 和 Seaquest 训练中的平均回合奖励;右侧两图是固定状态集合上的平均最大预测 action-value。

图解:reward 曲线为什么抖,value 曲线为什么更平滑

平均回合 reward 很容易抖,因为策略一点小变化就会让整局游戏进入不同状态分布。右侧的平均最大 Q-value 用固定状态集合观察模型估计,像一个验证集上的长期价值读数,所以更平滑。初学者读训练曲线时不要只盯 reward:value、KL、entropy、success rate 和真实闭环评测经常要一起看。

Value 真的学到了什么

DQN 的 Seaquest 图很适合解释“value 是未来机会”,而不只是当前分数。

DQN Seaquest value curve
DQN Seaquest frame A
A
DQN Seaquest frame B
B
DQN Seaquest frame C
C

图源:Playing Atari with Deep Reinforcement Learning,Figure 3。原论文图意:左图是 Seaquest 中 30 帧片段的预测 value;A、B、C 是曲线上三个时间点对应的游戏画面。

图解:A、B、C 三个点在讲什么

A 点敌人出现,模型预测“现在有得分机会”,value 上升。B 点鱼雷快击中敌人,未来得分几乎要兑现,value 达到峰值。C 点敌人消失,机会被消耗,value 回落。这个例子能帮你分清 reward 和 value:reward 是打中那一下的即时分数,value 是打中之前模型已经看到的未来机会。

Model-free、Model-based、Imitation 和 Offline

路线 学什么 优点 风险
Model-free RL 直接学习 policy 或 value 不需要显式 dynamics,接口简单 样本效率低,长时信用分配难
Model-based RL 学 transition / world model,再规划或训练策略 可用 imagined rollout,提高样本效率 模型误差会被 planner 或 actor 利用
Imitation / BC 模仿示范动作 稳定、省交互、工程常用 出分布后容易连环偏离
Offline RL 只用离线数据学习策略 适合昂贵或危险环境 分布外动作的价值估计容易虚高

VLA 常从 BC 起步,因为机器人实机探索代价高。世界模型和 RL 的作用,是在 BC 之外补上“动作后果”和“长期奖励”的闭环。

On-policy、Off-policy 与 Offline RL

这三个词很容易混:

类型 数据从哪里来 更新时最怕什么
on-policy RL 当前 policy 刚采样的数据 样本贵、方差大、吞吐低
off-policy RL replay buffer 里的历史数据,仍会继续收新数据 旧数据和当前策略差太远
offline RL 固定数据集,不再和环境交互 分布外动作的价值被高估

Online, off-policy and offline RL

图源:Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems,Figure 1。原论文图意:对比 classic online RL、classic off-policy RL 和 offline RL 的数据收集与训练关系。

图解:三种 RL 的关键差别

左图 online RL 每轮用当前 policy 收新数据;中图 off-policy RL 把多轮 policy 的数据放进 buffer 反复使用;右图 offline RL 的数据集一开始就固定,训练过程不能再试错。机器人、医疗、自动驾驶和大模型后训练经常关心 offline 或接近 offline 的设置,因为真实试错成本高。

Offline RL 不是“把监督学习数据拿来做 RL”这么简单。它真正难的是:模型可能会想选数据里几乎没出现过的动作,而这些动作的 Q-value 只是神经网络外推出来的,可能虚高。

Offline RL support versus distribution constraints

图源:Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems,Figure 4。原论文图意:用一维 lineworld 说明 distribution constraint 和 support constraint 的差别。

图解:support constraint 为什么比“完全模仿分布”更灵活

图里 behavior policy 很偏向向左走,但只要数据支持向右这个动作,support constraint 仍允许学习出向右到达目标的策略。distribution constraint 更像“按照数据里的概率来”,容易把低概率但正确的动作压住。对 VLA 来说,这对应一个常见矛盾:既要避免分布外危险动作,又不能把策略锁死在低质量示范的频率上。

Offline RL 也可能从不完整轨迹里拼出更好的策略。

Offline RL Maze2D trajectory stitching

图源:Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems,Figure 6。原论文图意:展示 Maze2D 中利用轨迹组合结构找到更短路径的例子。

图解:trajectory stitching 是什么

数据里可能没有一条完整最优轨迹,但有“从 1 到 2”的片段和“从 2 到 3”的片段。好的 offline RL 应该能把这些片段组合起来,推出从 1 到 3 的更优行为。这比行为克隆更进一步:BC 只模仿已有路径,offline RL 尝试用 Bellman/value 把片段的长期价值接起来。

和世界模型的接口

世界模型本质上补上了 MDP 里的 transition:

P^θ(st+1st,at)\hat P_\theta(s_{t+1}\mid s_t,a_t)

逐项读法:P^θ\hat P_\theta 是模型学出来的环境转移近似。给它当前状态 sts_t 和动作 ata_t,它预测下一状态 st+1s_{t+1} 的分布。

如果还能预测 reward、done 和 risk:

(r^t,d^t,ρ^t)=fθ(st,at)(\hat r_t,\hat d_t,\hat \rho_t)=f_\theta(s_t,a_t)

逐项读法:世界模型不只预测下一画面,还预测这一步奖励、任务是否结束、风险是否升高。后面的 PlaNet、Dreamer、RLVR-World 都在围绕这件事展开:用可学习模型近似环境,再把强化学习的长期优化接上去。

下一站
  • 回到本专题入口:强化学习,确认这页在整条路线中的位置。
  • 按导航顺序继续:PG / PPO / GRPO
  • 概念或符号卡住时,先查 术语表,再回到当前页。
  • Title: 强化学习:MDP、价值函数与 Bellman
  • Author: Charles
  • Created at : 2026-01-12 09:00:00
  • Updated at : 2026-01-12 09:00:00
  • Link: https://charles2530.github.io/2026/01/12/ai-files-reinforcement-learning-mdp-value-bellman/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments