🏠 总目录📚 本教程 02 · MDP
📑 本页目录(点开跳转)

02 · MDP:把问题写成数学

25 分钟 | ⭐ 整个领域的通用语言


🎯 一句话

MDP(马尔可夫决策过程)= 强化学习问题的标准格式。 把一个问题写成 MDP,就等于把它翻译成了这个领域所有算法都能读的语言。

智能体 Agentπ(a | s) ← 你要学的环境 EnvironmentP(s' | s,a)动作 a状态 s′、奖励 r奖励只说「结果好不好」,不说「该做什么」—— 这就是它和监督学习的根本区别
整个强化学习就是这个循环在反复转。⭐ 注意回传的是奖励不是正确答案 —— 环境只告诉你「结果好不好」,从不告诉你「该做什么」。

📦 一、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 的一条隐藏前提:环境有随机性,但它没有偏好、不想赢你 —— 转移概率是写死的一张表,不会因为你学会了就偷偷改。⭐ 那一章讲的是这个前提失效之后的世界:对面也在最大化,你的「最优」一旦被看穿就不再最优。「我改进了所以收益变高」在那里不成立

✅ 检查点

  1. MDP 五元组分别是什么?
  2. 为什么转移 P 是概率而不是确定的?举两个例子。
  3. 马尔可夫性质说的是什么?乒乓球那个反例问题在哪、怎么修?
  4. 「马尔可夫性不是问题的属性」这句话什么意思?
  5. 语言模型的上下文窗口对应 MDP 里的什么?这解释了什么现象?
  6. 为什么深度强化学习常用随机策略而不是确定性策略?(说出关键的那一条)
  7. 上下文老虎机和完整 MDP 差在哪?推荐系统属于哪个?什么时候这个假设会失效?
  8. 奖励稀疏为什么要命?RLHF 怎么绕开的?
👀 答案
  1. ⟨S 状态空间, A 动作空间, P 转移概率, R 奖励函数, γ 折扣因子⟩。
  2. 因为世界有随机性。例:机器人下"前进1米"但地面打滑实际走0.8米;推荐了商品但用户可能买可能划走。
  3. 未来只取决于现在,与过去无关。乒乓球看单帧不知道球在上升还是下落(缺速度信息);把状态改成最近 4 帧堆叠即可。
  4. 马尔可夫性取决于你怎么定义状态。不满足时,把缺的信息塞进状态里就能恢复。
  5. 就是 MDP 的状态。解释了为什么上下文长度对 Agent 表现影响巨大——上下文放不下的东西等于从状态里消失了
  6. 关键那条:随机策略对参数可微,能用梯度下降优化;确定性策略的 argmax 不可微,梯度传不过去。(另两条:探索需要随机性;某些问题最优策略本身就是随机的,如石头剪刀布。)
  7. 上下文老虎机里动作不影响下一状态。推荐系统通常属于上下文老虎机(推什么不改变用户是谁),所以 Thompson Sampling 就够用。信息茧房时假设失效——推多了真的会改变用户兴趣,就变回真 MDP。
  8. 只在终点给 +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 ⭐⭐

打卡记录保存在你的浏览器里,首页能看到总进度