AI 学习课程 / LESSON 14

第十四节:从预测走向决策

强化学习问的不是“这个样本的正确标签是什么”,而是“我现在做什么,能让之后的累计奖励更高”。在一个可手算的网格里,亲手走出状态、动作、奖励与回报。

网格世界折扣回报MDP / Bellman探索与利用离线 HTML

01 / 学习范式的变化

预测一个答案,还是选择一连串行动?

监督学习

样本带标签。例如看一张图,目标是预测“猫”。训练时可直接比较预测与标签。

强化学习

智能体在状态中选动作,环境返回新状态和奖励。单步动作不一定有“正确标签”;好坏要看之后的累计回报。

状态 sₜ现在位于哪一格
动作 aₜ向上、右、下、左
环境转移到达 sₜ₊₁
奖励 rₜ₊₁得到即时反馈
策略 π给每个状态安排动作

本节是独立的序列决策练习,不把强化学习只当成语言模型偏好训练。先学清状态、回报和策略,再在下一节写 Q-learning。

02 / 和环境交互

右边立刻 +2;下方绕路最后 +10

起点是 S。走进 C 立即拿 2 分并结束;走进 G 拿 10 分并结束。A、B、D 是没有即时奖励的通道;# 是墙,撞墙或越界会留在原地,奖励 0。终止后要重置才能开始新回合。

网格(带边框的是当前位置)
这一回合

状态可用格子名称表示;动作由智能体选;转移和奖励由环境给。你可以试“起点向上”:因为越界,下一状态仍是 S,奖励 0。

03 / 别只看眼前的 2 分

折扣因子 γ 决定远处的奖励值多少

两条路线的奖励序列固定:即时路线为 [2];延迟路线为 [0, 0, 0, 10]。这里第 0 步的奖励不打折,第 3 步的奖励乘 γ³。改变 γ,看你对未来奖励的重视程度如何影响起点选择。

G₀ = r₁ + γr₂ + γ²r₃ + ⋯ + γᵀ⁻¹r_T 即时路线:G₀ = 2 延迟路线:G₀ = 0 + γ·0 + γ²·0 + γ³·10 = 10γ³

γ=0.5 时,延迟路线回报 1.25,低于即时 2;γ=0.8 时是 5.12,高于 2。它比较的是从起点出发的整条路线,不是最后一步“10 比 2 大”这么简单。

04 / 给环境一个数学名字

马尔可夫性质:当前状态足够描述下一步

在这个例子中,只要知道当前位置和动作,就能确定下一格与奖励;之前是怎样走到这里的,不改变下一步规则。这是马尔可夫性质。环境加上状态、动作、转移概率和奖励规则,构成一个马尔可夫决策过程(MDP)。本例是确定性的,所以目标下一状态的概率为 1。

P(s' | s,a) = 发生下一状态 s' 的概率 r(s,a,s') = 这次转移得到的即时奖励 本例:给定 s,a 后,某一个 s' 的 P=1,其余为 0。

“马尔可夫”不等于“环境一定确定”。真实 MDP 可以随机转移;只要求给定当前状态和动作后,下一步分布不再额外依赖更早的历史。若状态没有包含决定未来所需的信息,这个状态表示可能不是马尔可夫的。

05 / 从一条路线走向一个策略

V 看状态,Q 看状态加动作

策略 π 规定每个状态如何选动作。Vπ(s) 是从状态 s 开始按 π 行动的期望累计回报;Qπ(s,a) 是先做动作 a,再按 π 行动的期望累计回报。上标 * 表示最优策略。本例确定,且本页 γ 都在 0.5~0.95 范围内,长路线后续选择一直向右是到 G 的最优延续。

Qπ(s,a) = Σ_s' P(s'|s,a) [r(s,a,s') + γ Vπ(s')] Vπ(s) = Σ_a π(a|s) Qπ(s,a) V*(s) = max_a Q*(s,a)
起点 S:向右

起点 S:向下

从 S 向右立刻到终点 C,所以没有未来价值;向下第一步奖励 0,但会来到 A,再沿通道到 G。这个“即时奖励 + 折扣后的下一状态价值”就是 Bellman 关系的核心。下一节会用它更新未知的价值估计。

06 / 奖励在最后才出现

起点向下为什么也该“记一功”?

延迟路线前三步都是 0 分,最后一步才拿 10 分。如果只按每一步即时奖励评价,起点向下看起来毫无用处;但它使之后到达 G 成为可能。把末尾奖励沿整条轨迹折回去,前面的动作才会得到适当的评价。

这里直接展示每个位置的实际后续回报,环境与路线都已知。真正学习时,智能体可能不知道转移或最终奖励,需要靠探索获得经历,再估计这些值;这就是“信用分配”问题的一个小例子。

07 / 不试就永远不知道

探索与利用:在起点选整条路线的简化实验

假设智能体起初只知道两条路线的估计都是 0,平手先选即时路线。每个回合它在起点选一条路线,走完后才看到从起点算的回报;估计值是该路线已观察回报的平均值。以 γ=0.8 运行 30 回合。

ε-greedy:以概率 ε 随机选一条路线; 其余时候选当前估计回报最高的路线。 本页只比较“起点选整条路线”的回报; 尚未按每个格子的状态—动作对学习 Q(s,a)。

橙色边框表示那回合触发了随机探索,绿色底表示选了长路线。随机探索也可能碰巧选到当前已知的较好路线,所以“触发探索”和“实际选长路线”不是一回事。固定种子只为让页面记录可复现;单次 30 回合结果不能当作算法优劣结论。

08 / 代码与验收

自己验证网格规则和回报

配套代码使用 Python 标准库,生成两条路线的逐步奖励、状态转移表和起点探索实验。代码内部还核对 Bellman 值,但下一节才系统学习价值迭代与 Q-learning。无需下载任何环境或启动服务。

uv run python lessons/lesson-14-rl-basics.py

阅读代码 · 查看实验数据

  1. 写出 S、A、B、D、C、G 分别表示什么;手动走一次两条终止路线。
  2. 手算 γ=0.8 时延迟路线从起点的回报,以及从 B 出发沿路线向右的回报。
  3. 说明为什么 γ=0.5 时起点选右,而 γ=0.8 时选下;求两条路线相等时的 γ。
  4. 解释 P(s'|s,a)=1 在本例中的意思。把撞墙的情况也写成一个转移。
  5. 比较 ε=0 与 ε=0.2 的 30 回合记录,说明为什么不探索可能一直不知道长路线更好;不要把这段路线选择实验误称为 Q-learning。

09 / 自测

五道题

1. 起点向下第一步得 0,为什么仍可能是好动作?

2. 本例的马尔可夫状态是什么?

3. γ=0.8,延迟路线的起点回报?

4. Qπ(s,a) 比 Vπ(s) 多指定了什么?

5. ε=0 且一开始只选即时路线,可能发生什么?

下一节:表格型强化学习。打开第十五节互动讲义。 从已知环境的价值迭代,走到蒙特卡洛、TD 和 Q-learning。