跳转至

P4-19.5 补充学习:第一次读强化学习中的公式名称

Section ID: P4-19.5 Version: v2026.07.23

一旦开始阅读 P4-19.1 里的价值型强化学习(value-based reinforcement learning),下面这些名字很快就会跟着出现。

  • 贝尔曼方程(Bellman equation)
  • 收敛(convergence)
  • 函数近似(function approximation)

这一节不是按严格证明顺序把这些名字长篇展开,而是先把为什么价值型强化学习的分数表会递归地写出来为什么要检查反复更新是否稳定为什么在大问题里会从表转向函数连起来读。

本节范围

这一节回答下面这些问题。

  • 为什么贝尔曼方程会被读成当前奖励 + 下一状态的价值
  • 说“看收敛”到底是在看什么,什么正在变得不再大幅摇晃?
  • 为什么函数近似会代替 Q-table 出现?
  • DQN 应该被读成价值型强化学习的哪一种扩展?

这一节集中通过 递归式价值阅读重复更新的稳定化从表走向函数 这三个把手来理解强化学习的扩展背景。

用补充学习:如何第一次阅读贝尔曼方程、收敛与函数近似留下的判断标准

  • 能把贝尔曼方程解释成连接当前奖励和未来价值的方程
  • 能把收敛解释成反复更新之后,结果是否稳定在某个值附近这个问题。
  • 能把函数近似解释成当状态空间很大时,用模型而不是表来表达价值的方式
  • 能把 DQN 解释成把价值型直觉搬到大状态空间里的代表扩展

为什么需要这一节

Q-learning 和 SARSA 的直觉很好懂,但很快就会碰到两堵墙。

  • 为什么这种更新公式可以成立?
  • 如果状态太多,真的能把所有值都写进表里吗?

贝尔曼方程、收敛、函数近似,正是在这里出现的。

所以,这一节的核心,是第一次把Q-table 的直觉从哪里获得数学形式、又在哪里遇到计算极限、接着走向什么扩展连起来。

为什么会出现贝尔曼方程

价值型强化学习的核心想法很简单。

一个好的动作,不只是现在奖励大,还应该把我们带到一个之后也更好的状态。

如果把这个想法读成公式,下面这种结构就会自然出现。

  • 现在得到的奖励(reward)
  • 从下一状态(next state)继续延伸出来的未来价值(value)

所以,贝尔曼方程其实是把价值不只是当前一次收益,而是后续选择的好坏也一起算进去这句话压缩成了更短的表达。

入门阶段,可以先这样来读。

阅读问题 贝尔曼形式在说什么
为什么这个动作现在是好的? 因为不仅当前奖励大,下一状态的价值也大
为什么价值会看起来是递归的? 因为下一状态的价值也还是用同样的方式定义
为什么不能一次算完? 因为未来价值又继续连到未来价值

所以,比起一上来盯住复杂符号,更重要的是先把贝尔曼方程抓成已经把未来也放进来的分数表

说“看收敛”到底是在看什么

Q-learning 和 SARSA 不会一次就把值全部填完,而是随着经验累积一点点更新。所以会自然出现下面这个问题。

如果一直这样改下去,这些值会不会在某个时候稳定下来?

这个问题,就是收敛。

入门阶段,可以把收敛读成:

随着更新反复进行,这些值会不会不再剧烈摇晃,而是逐渐聚到某个比较稳定的值附近?

更像收敛良好的感觉 应该怀疑收敛的感觉
同一个状态-动作值在反复更新后,变化幅度越来越小 很久之后它仍然大幅起伏
经验越多,分数表越稳定 因为探索、学习率或表达问题,值一直在摇晃
策略比较变得越来越一致 哪个动作更好经常反复翻转

这一节不需要把完整的收敛证明一路看完,但为什么重复更新会继续连接到稳定性问题,而不只是经验感觉这一点,仍然值得先抓住。

为什么函数近似会出现

在一个小迷宫里,状态和动作数量都不多,所以 Q-table 可以直接写出来。但真实问题并不是这样。

  • 把整个屏幕像素当成状态的游戏
  • 拥有大量传感器值的机器人控制
  • 组合数极多的推荐问题

在这些场景里,要把每个状态-动作对的值都直接写进表里,会马上变得困难。

于是函数近似就出现了。

与其在每个格子里直接写值,不如用一个接受输入并预测值的函数或模型来代替。

Q-table 函数近似
每个状态-动作格子里直接写值 给定状态时,由模型估计价值
在小问题里直觉清楚 更容易处理大状态空间
状态一多,表会很快膨胀 可以泛化,但学习稳定性会更难

所以,函数近似并不是放弃价值型强化学习,而是为了把那种直觉搬进更大问题里,而进行的一次表达变化

DQN 应该怎样来读

DQN 是这条函数近似路径里的代表例子。

如果用一句很短的话来说:

它用神经网络(neural network)来近似 Q-value,而不是用表,从而能够处理更大的状态空间。

所以,DQN 不应该被读成一种全新的哲学,而更应该读成把价值型强化学习扩展到更大问题上的名字

Q-learning 中保留下来的东西 DQN 中改变的东西
仍然在问哪个动作价值更大 把价值由表改成函数近似器来表达
下一状态的价值仍然会进入当前更新 用神经网络读取大状态输入
仍然使用价值型直觉 学习稳定化所需的额外装置变得更重要

所以,DQN 不是放弃价值型学习的名字,而是把价值型学习抬到更大状态空间里的名字。这条总体脉络,还可以在 P4-19.4 里重新放到大图里来读。

案例与示例

案例 1. 当一个小迷宫还能用表,但一到屏幕游戏表就崩掉时

在一个小迷宫问题里,当前位置移动方向的组合并不多,所以 Q-table 往往足够。人最容易先采用的规则也很简单:格子不多,那就给每个状态写一个值,再去更新这张表。

这个规则在小型玩具问题里确实好用。比如在 5x5 网格里,就算给 当前格子 -> 上/下/左/右 都写上值并反复更新,整体图景也还看得过来。这个时候,贝尔曼式也能直接贴上去,读成当前奖励 + 下一格的价值

但一旦问题变成把整个屏幕像素都当成状态的游戏,情况就变了。现在,给这个新场景再加一个格子这种规则会很快失效。看起来相似的场景会大量出现,画面只要稍微变化一点,实际上就可能要被当成新状态。于是,核心问题会从要不要再给表里加一格,转成是不是需要一个能在相似场景之间共同估计价值的规则

flowchart TD
  A["先读小型迷宫"]
  B["把数值写进表格"]
  C["表格比较仍然可行"]
  D["扩展到屏幕游戏"]
  E["状态数量暴增"]
  F["继续加新格子会失效"]
  G["把数值改为函数近似"]

  A --> B --> C
  C --> D --> E --> F --> G
问题场景 人最容易先采用的规则 很快出现的限制 这一节补上的解释
5x5 迷宫 给每个状态格子写一个值 表还足够小,能管理 适合先用表来学习贝尔曼式和重复更新
屏幕游戏初期 每出现一个新场景就再加一个格子 场景数量太大,表几乎无法管理 价值表达必须转向函数近似
相似场景不断变化的环境 几乎把每个相似场景都分开记录 无法泛化,学习会变慢也更不稳定 需要能读取共通模式的模型

所以,在这个案例里,函数近似并不是放弃价值型强化学习的额外装置。它是当表已经无法承载同样判断时,把那个判断搬进更大状态空间的一次表达变化

这个案例最后要确认的结论是:在小迷宫里,把每个状态-动作值直接写进表里仍然可以稳定比较哪个动作更好;但像屏幕游戏那样状态数暴涨之后,继续多加格子就很难继续支撑同样的比较。此时真正要确认的,不是价值型直觉错了,而是该把这种直觉从表搬到函数里去了

练习与示例

这个练习直接接着案例 1,重点是确认为什么同样的贝尔曼式阅读 当前奖励 + 下一价值,会因为状态空间大小不同,而分叉成继续用表转向函数近似

输入里要看的值是当前奖励 1.0、折扣率 0.9、下一状态价值 0.8,以及状态数。输出里要读的不是某一个计算结果,而是同样的当前价值解释在小状态空间里会走向 Q-table,在大状态空间里会走向函数近似这个判断。

因此,这个练习不是把贝尔曼方程、收敛、函数近似分开背,而是把它们连成一条流。贝尔曼式是阅读 当前奖励 + 下一价值 的递归结构;收敛是在问不断更新这个值时,变化幅度会不会缩小;函数近似则是在大状态空间里更换承载同一判断的表达方式。

场景 计算 当前价值阅读 状态数 更自然的表达
small_maze 1.0 + 0.9 * 0.8 1.72 25 Q-table
screen_game 1.0 + 0.9 * 0.8 1.72 1,000,000 函数近似(function approximator)

这个例子里真正要读出来的是:

  1. 不管是小迷宫还是屏幕游戏,当前价值都还是通过同样的贝尔曼结构 当前奖励 + 下一价值 来读。
  2. 也就是说,状态空间变大,并不会让价值型直觉本身消失。
  3. 真正变化的是把这个值放在哪里,而当状态数增长时,同样的直觉就必须搬进函数近似里。

表格视角:状态数一变大,最先变得不舒服的是什么

这次保持奖励和折扣率不变,只增加状态数,看看什么时候表格式直觉会开始变得不舒服。因为这里是按状态数来区分表达方式的场景,所以比较表比代码更清楚。

状态数 当前价值阅读 最先变得不舒服的地方 表达方式
25 1.72 还能把状态-行动值写进表里 Q-table
2,500 1.72 表变大,管理变得困难 函数近似
250,000 1.72 难以直接保存所有值 函数近似

这里没有变的是当前奖励 + 未来价值这个解释;最先崩掉的是把它直接写进表里这种表达方式。所以真正要确认的重点不是贝尔曼式失效了,而是同样的判断现在必须搬到另一种表达里去

直接判断一下

看看下面这些观察,先选哪个解释更安全。

观察 过快下的结论 更安全的解释
小迷宫和屏幕游戏的 bellman view 一样 大状态空间里不用贝尔曼方程了 当前价值的阅读方式没变,变的是价值表达方式
状态数从 25 变成 2500 时,表达方式改了 价值型强化学习失效了 表开始不舒服,于是出现了转向函数近似的需要
反复更新后,变化幅度变小了 公式已经结束,没什么可问了 这会继续连到“值是否正在稳定下来”的收敛问题

这张表的目的,不是背数学名词,而是把一条流抓住:为什么当前价值会连到未来为什么会冒出稳定性问题为什么表达形式会改变

检查清单

  • 你能否说明,贝尔曼方程是把当前奖励和未来价值一起读进去的递归价值表达?
  • 你能否把收敛解释成“重复更新的结果是否会变得更稳定”这个问题?
  • 你能否说明,函数近似是把 Q-table 的直觉搬到更大状态空间里的表达变化?
  • 你能否把 DQN 解释成价值型强化学习中一条代表性的扩展脉络?

来源与参考资料

  • Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction, 2nd ed., The MIT Press, 2018. 用于确认 Bellman equation、价值型方法、convergence、function approximation 的流程。确认日期: 2026-07-19. https://mitpress.mit.edu/9780262039246/reinforcement-learning/
  • Volodymyr Mnih et al., Human-level control through deep reinforcement learning, Nature, 2015. 用于确认把 DQN 连接到高维感官输入和 Q-value function approximation 的代表案例。确认日期: 2026-07-19. https://doi.org/10.1038/nature14236