📑 本页目录(点开跳转)
02 · MDP:把问题写成数学
⏱ 25 分钟 | ⭐ 整个领域的通用语言
🎯 一句话
MDP(马尔可夫决策过程)= 强化学习问题的标准格式。 把一个问题写成 MDP,就等于把它翻译成了这个领域所有算法都能读的语言。
📦 一、MDP 的五元组
$$\text{MDP} = \langle \mathcal{S},\ \mathcal{A},\ P,\ R,\ \gamma \rangle$$
| 符号 | 名字 | 是什么 |
|---|---|---|
| $\mathcal{S}$ | 状态空间 | 所有可能局面的集合 |
| $\mathcal{A}$ | 动作空间 | 所有可能动作的集合 |
| $P(s'\mid s,a)$ | 转移概率 | 在 s 做 a,到 s' 的概率 ⭐ |
| $R(s,a)$ | 奖励函数 | 在 s 做 a 得到的(期望)奖励 |
| $\gamma$ | 折扣因子 | 未来奖励打多少折 |
💡 人话:
有哪些局面(S)、能干什么(A)、干了会到哪(P)、干了给多少分(R)、未来值多少钱(γ)。
🎲 P 为什么是「概率」不是确定的
因为世界有随机性:
· 机器人下达「前进 1 米」→ 地面打滑,实际走了 0.8 米
· 推荐系统推了商品 → 用户可能买、可能划走
· 语言模型输出 token → 采样本身就是随机的
⭐ 即使动作确定,结果也不一定确定
🔑 二、「马尔可夫」到底在说什么
马尔可夫性质:未来只取决于现在,与过去无关。
$$P(s_{t+1}\mid s_t, a_t, s_{t-1}, a_{t-1},\ldots) = P(s_{t+1}\mid s_t, a_t)$$
💡 人话:当前状态已经包含了所有有用的历史信息,不用再回头看。
✅ 一个正例和一个反例
✅ 满足:国际象棋
当前棋盘 = 全部信息
「这个局面是怎么走出来的」不影响后续最优走法
❌ 不满足:只看到当前一帧画面的乒乓球游戏
光看一张图,你不知道球是【在往上飞还是往下掉】 💀
→ 必须知道速度,而速度需要【前后两帧】
⭐ 解法:把状态重新定义成「最近 4 帧」
→ 马尔可夫性就恢复了
🔑 这是 MDP 建模里最重要的实践技巧: 马尔可夫性不是问题的属性,是你「状态怎么定义」的属性。 不满足?把缺的信息塞进状态里。
💡 状态设计的三个真实例子
| 场景 | ❌ 差的状态 | ✅ 好的状态 |
|---|---|---|
| Atari 游戏 | 当前 1 帧 | 最近 4 帧堆叠(能看出速度) |
| 推荐系统 | 当前用户画像 | 画像 + 最近 N 次交互序列 ⭐ |
| 对话/RLHF | 最后一句话 | 完整对话历史(即上下文) ⭐ |
⭐ 注意最后一行:语言模型的上下文窗口,本质上就是 MDP 的状态。 这解释了为什么上下文长度对 Agent 表现影响那么大 —— 上下文放不下的东西,等于从状态里消失了。 🔗 智能体工程第 4 章上下文工程讲的是同一件事的工程面。
🎮 三、一个能手算的小 MDP
「学生的一天」MDP ——
状态:上课、刷手机、睡觉(终止);
动作:学、玩。
转移与奖励:
| 状态 | 动作 | 到哪(转移概率) | 奖励 |
|---|---|---|---|
| 上课 | 学 | 上课 (0.8) / 睡觉 (0.2) | +2 |
| 上课 | 玩 | 刷手机 (1.0) | +1 |
| 刷手机 | 学 | 上课 (0.6) / 刷手机 (0.4) | -1 |
| 刷手机 | 玩 | 刷手机 (0.9) / 睡觉 (0.1) | +1 |
⭐ 注意「刷手机 + 玩」的即时奖励是 +1,比「刷手机 + 学」的 -1 高, 但它会让你一直待在刷手机状态 —— 这就是即时奖励和长期回报冲突的最小例子。
💡 第 4 章会用这个 MDP 把最优策略真的算出来。 先记住这个直觉:+1 的舒服可能不如 −1 的难受值钱,只要后者能带你去更好的地方。
🧭 四、策略:你要学的那个东西
$$\pi(a\mid s) = \text{在状态 } s \text{ 下选动作 } a \text{ 的概率}$$
| 类型 | 含义 | 例子 |
|---|---|---|
| 确定性策略 | 每个状态只输出一个动作 | π(上课) = 学 |
| 随机策略 ⭐ | 输出一个概率分布 | π(学|上课)=0.7, π(玩|上课)=0.3 |
为什么常用随机策略(三个理由)
① 探索需要随机性(第 7 章)
② 有些问题的最优策略【本身就是随机的】
例:石头剪刀布 —— 任何确定性策略都会被针对 ⭐
③ 随机策略对参数是【可微】的
→ 才能用梯度下降优化(第 9 章策略梯度的前提)⭐⭐
🔑 第 ③ 点是深度强化学习能成立的技术前提。 确定性策略的 argmax 不可微,梯度传不过去。 随机策略 = 一个概率分布 = 可以求梯度。
🌡️ 五、MDP 的几个变体(知道存在即可)
| 变体 | 差别 | 典型场景 |
|---|---|---|
| POMDP(部分可观测) | 看不到完整状态,只看到观测 o | 扑克(看不到对手的牌)、真实机器人 |
| 多臂老虎机 | 只有一个状态,退化成纯探索利用问题 ⭐ | 推荐、广告、A/B 测试 |
| 上下文老虎机 | 有状态但动作不影响下一状态 | 推荐(推什么不改变用户是谁)⭐ |
| 连续 MDP | 状态/动作是连续的 | 机器人控制、自动驾驶 |
⭐ 中间两行对推荐系统特别重要: 推荐算法第 13 章的探索利用,本质是上下文老虎机, 不是完整的 MDP —— 因为「推荐什么」通常不改变「用户是谁」。 这让问题简单得多(不用考虑长期状态演化),所以那里 Thompson Sampling 就够用了。
但信息茧房恰恰说明这个假设会失效 —— 推得多了,用户兴趣真的会被改变,它就变回真正的 MDP 了。 🔗 推荐算法挑战 B 做的就是这件事。
⚠️ 六、建模时最容易犯的三个错
| 错误 | 后果 | 正确做法 |
|---|---|---|
| 状态里漏了关键信息 | 马尔可夫性破坏,怎么学都学不好 ⭐ | 问自己:「只看这个状态,我能做出好决策吗?」 |
| 奖励设计得太稀疏 | 只在最后给 +1,中间全是 0 → 几乎学不动 | 加中间奖励(reward shaping),但小心引入偏差 |
| 把「想要的结果」写成奖励,而不是「想要的行为」 | 奖励黑客(第 1 章那个赛艇) | 想清楚:优化到极致会发生什么? |
💡 奖励稀疏有多要命(一个数字感受):
迷宫任务:只有走到终点才给 +1,其他全是 0
随机探索走到终点的概率 ≈ 0.001
→ 平均要试 1000 回合才见到【一次】非零奖励
→ 在那之前,所有梯度都是 0,模型什么都学不到 💀
⭐ 这就是为什么 RLHF 用【奖励模型】给每段回答打分,
而不是只在对话结束时给一个 0/1
🔗 七、和站内其他章的关系
| 相关的地方 | 这里的位置 |
|---|---|
| 语言模型的上下文窗口 | 就是 MDP 的状态 ⭐ |
| 智能体工程 04 上下文工程 | 状态设计的工程版 |
| 推荐算法 13 | 上下文老虎机(MDP 的退化情形) |
| 推荐算法 挑战B | 老虎机假设失效、变回真 MDP 的例子 |
| 第 1 章的五个零件 | 这一章给了它们精确定义 |
| ⭐⭐ 博弈论与集体决策 09 · 正常形博弈 | MDP 的一条隐藏前提:环境有随机性,但它没有偏好、不想赢你 —— 转移概率是写死的一张表,不会因为你学会了就偷偷改。⭐ 那一章讲的是这个前提失效之后的世界:对面也在最大化,你的「最优」一旦被看穿就不再最优。「我改进了所以收益变高」在那里不成立 |
✅ 检查点
- MDP 五元组分别是什么?
- 为什么转移 P 是概率而不是确定的?举两个例子。
- 马尔可夫性质说的是什么?乒乓球那个反例问题在哪、怎么修?
- 「马尔可夫性不是问题的属性」这句话什么意思?
- 语言模型的上下文窗口对应 MDP 里的什么?这解释了什么现象?
- 为什么深度强化学习常用随机策略而不是确定性策略?(说出关键的那一条)
- 上下文老虎机和完整 MDP 差在哪?推荐系统属于哪个?什么时候这个假设会失效?
- 奖励稀疏为什么要命?RLHF 怎么绕开的?
👀 答案
- ⟨S 状态空间, A 动作空间, P 转移概率, R 奖励函数, γ 折扣因子⟩。
- 因为世界有随机性。例:机器人下"前进1米"但地面打滑实际走0.8米;推荐了商品但用户可能买可能划走。
- 未来只取决于现在,与过去无关。乒乓球看单帧不知道球在上升还是下落(缺速度信息);把状态改成最近 4 帧堆叠即可。
- 马尔可夫性取决于你怎么定义状态。不满足时,把缺的信息塞进状态里就能恢复。
- 就是 MDP 的状态。解释了为什么上下文长度对 Agent 表现影响巨大——上下文放不下的东西等于从状态里消失了。
- 关键那条:随机策略对参数可微,能用梯度下降优化;确定性策略的 argmax 不可微,梯度传不过去。(另两条:探索需要随机性;某些问题最优策略本身就是随机的,如石头剪刀布。)
- 上下文老虎机里动作不影响下一状态。推荐系统通常属于上下文老虎机(推什么不改变用户是谁),所以 Thompson Sampling 就够用。信息茧房时假设失效——推多了真的会改变用户兴趣,就变回真 MDP。
- 只在终点给 +1 时,随机走到终点概率约 0.001,平均 1000 回合才见一次非零奖励,在那之前梯度全是 0。RLHF 用奖励模型给每段回答打分,而不是只在对话结束给 0/1。
🛑 可以停在这里
⚡ 走神救援
MDP = RL 问题的标准格式,五元组 ⟨S 状态, A 动作, P 转移概率, R 奖励, γ 折扣⟩。P 是概率因为世界有随机性(机器人打滑、用户可能划走)。⭐马尔可夫性=未来只取决于现在;乒乓球看单帧不知球在升还是降 → 把状态改成最近4帧。⭐关键洞察:马尔可夫性不是问题的属性,是你"状态怎么定义"的属性——不满足就把缺的信息塞进状态。⭐⭐语言模型的上下文窗口就是 MDP 的状态——这解释了上下文长度为什么对 Agent 影响那么大(放不下=从状态里消失)。策略 π(a|s):常用随机策略,关键理由是⭐随机策略可微才能梯度下降(argmax 不可微)。变体:POMDP、多臂老虎机(只有一个状态)、⭐上下文老虎机(动作不影响下一状态)——推荐系统属于这类,所以 Thompson Sampling 够用;但信息茧房说明这假设会失效。三个建模错误:状态漏信息、奖励太稀疏(只在终点给+1时随机走到概率0.001,1000回合才见一次非零奖励,之前梯度全是0)、把想要的结果而非行为写成奖励。
下一节 👉 03-价值函数与贝尔曼方程.md ⭐⭐