跳转到正文

D.1.2 贝尔曼方程的矩阵形式

前置知识E.1.1 向量与矩阵——需要了解向量、矩阵和矩阵乘法。同时建议先阅读第 3 章的贝尔曼方程,熟悉单个状态的贝尔曼方程形式。


从单个方程到矩阵方程

第 3 章给出了单个状态的贝尔曼方程:

这行公式处理一个状态没有问题。但当环境包含 个状态时,需要 个这样的方程,每个状态一个。将这 个方程合并,可以得到单一的矩阵表达:

其中 是所有状态的价值向量, 是所有状态的即时奖励, 是状态转移矩阵。移项后还可以得到闭式解:

下面从单个方程出发,分三步推导出这两个公式:先将价值写成向量,再将转移关系写成矩阵,最后拼成方程组并求解。


把所有状态的价值排成向量

沿用附录导读中的两状态例子:

  • ,奖励是 ,下一步一定到
  • ,奖励是 ,下一步一定到
  • 折扣因子

两个状态的价值分别是 。将所有状态的价值排成一列向量:

是待求的量, 是已知的即时奖励。两状态时向量有两个分量;推广到 个状态,向量就有 个分量,写法不变。


把转移关系写成矩阵

出发一定到 ,从 出发一定到 。转移矩阵为:

矩阵的行对应"从哪个状态出发",列对应"下一步到哪个状态"。矩阵乘向量的含义是: 的第 行给出"从状态 出发,下一步期望到达的价值"。验算如下:

这正是在说:从 出发下一步到 ,因此未来价值为 ;从 出发下一步到 ,因此未来价值为 。矩阵乘向量自动完成了概率加权求和。


拼成方程组

现在有了三样东西:价值向量 、奖励向量 、转移矩阵 。将单个状态的贝尔曼方程逐个写出:

用矩阵语言重写右边:即时奖励是 ,折扣后的未来价值是 。二者相加:

验证右边第一行:

右边第二行:

与逐个写出的方程完全一致。矩阵形式没有引入新内容,只是将大量结构相同的方程压缩为一个。

压缩有效的原理

关键在于 这一步。 的每一行恰好是一组转移概率(行和为 ),矩阵乘法恰好是"概率 价值"的加权平均。贝尔曼方程表述"价值 = 即时奖励 + 折扣后的未来价值",而矩阵方程表述的是完全相同的关系——只是对所有状态同时进行。

符号含义维度
v所有状态的价值(待求)n × 1
r所有状态的即时奖励n × 1
γPv折扣后的概率加权未来价值n × 1

三个量的维度均为 ,等号两边形状一致。这也就是第 3 章中 DP(动态规划)方法背后的操作——反复应用 ,直至收敛。


闭式解与不动点

是一个线性方程组,因此可以直接求解。将含有 的项移至左边:

提取公因子( 是单位矩阵——对角线为 ,其余为 ):

可逆,则存在闭式解:

代入两状态的具体数值:

求解方程组:

交点就是不动点

这个方程组对应于 平面上的两条直线:

  • 第一个方程
  • 第二个方程

两条直线的交点即为 。这个点同时也是贝尔曼更新的不动点:将 代入 ,得到的仍然是 。价值不再变化,说明这就是真实价值。


从两个状态到 个状态

上述闭式解 是在两个状态下推导的。将状态数从 2 推广到任意 ,方程的形式保持不变:

其中:

  • :策略 下所有状态的价值
  • :每个状态的期望即时奖励
  • :策略诱导的转移矩阵(

三个状态时,,方程 依然成立。矩阵表示的核心优势正在于此:无论状态数多大,方程的形式始终不变

的可逆性条件

求解的关键在于 必须可逆。直观上,这要求贝尔曼更新不会发散。当 是合法转移矩阵(每行概率和为 )时, 几乎总是可逆的。

更严格地, 的谱半径(最大特征值的绝对值)满足 ,因此 的特征值均远离 ,矩阵必定可逆。E.1.4 将给出详细解释。


不直接求逆的原因

从推导来看,闭式解很简洁:写出矩阵形式,求逆,得到答案。但这一路径在实际中不可行,原因有三:

  1. 规模过大。 若状态数 ,矩阵 ,求逆的计算复杂度为 ,几乎无法完成。
  2. 矩阵未必显式存在。 在许多实际问题中, 的具体数值不可知,只能通过采样观察状态转移。第 3 章介绍的 MC 和 TD 方法正是在不知 的条件下运行的。
  3. 状态可能连续。 若状态是图像或文本,根本不存在有限大小的矩阵——无法构造

实际算法采用迭代方法逼近这一解:

  • 值迭代:反复执行 ,直至收敛。
  • 策略评估:在策略迭代中反复应用贝尔曼更新。
  • TD 学习:利用采样数据进行增量更新。

这些方法本质上都是通过更可扩展的方式逼近 这一解,而无需实际求逆。第 3 章中 DP、MC、TD 三代方法的演进,对应的正是"已知模型直接迭代 → 不知模型用采样 → 采样仅需一步"这条路径。

常见误区

看到 时,不应认为实际算法真的在计算矩阵逆。这个公式是理论的闭式解,用以说明解的存在性与唯一性。实际算法是迭代的。


Q 函数的矩阵形式

前面只处理了状态价值 。动作价值 也可以写成矩阵形式,且与 的矩阵形式之间存在清晰的代数联系。

符号定义

把所有 对的 Q 值排成一个长向量:

类似地, 存放每个 对的即时奖励。

转移矩阵扩展为 ,每一行对应一个 对,每一列对应一个下一状态

策略矩阵 把 Q 向量"压缩"回 V 向量:

V-Q 关系

验证第 行:。这正是 的矩阵写法。

Q 的贝尔曼期望方程

写成矩阵形式:

代入,得到纯 Q 的递推:

闭式解为

Q 的贝尔曼最优方程

矩阵形式:

其中 对每个状态取出该状态所有动作中的最大 Q 值。由于 max 不是线性运算,最优方程没有闭式解,只能通过迭代(如 Q-Learning)逼近。

从 Q 的矩阵形式推出 V 的矩阵形式

代入 ,两边左乘

这就是前面推导过的 。V 的矩阵形式中 已经把策略平均融进去了,而 Q 的矩阵形式保留了动作维度——策略平均由 单独完成。这正是" 携带更细粒度信息"的矩阵语言表达。


DP 迭代的矩阵形式

第 3 章介绍了 DP 策略评估的逐状态更新:

矩阵形式就是把贝尔曼期望方程拆成迭代:

每轮对所有状态同时做一次贝尔曼更新。前面用两状态例子演示过:从 开始,反复迭代会收敛到闭式解

策略改进 在矩阵视角下等价于:对每个状态 ,比较 中属于该状态的那几行(每行对应一个动作),选出值最大的动作。


对照总表

概念逐状态形式(第 3 章)矩阵形式
贝尔曼期望方程
贝尔曼最优方程(逐行取 max)
闭式解
V-Q 关系
Q 贝尔曼期望
Q 贝尔曼最优
DP 策略评估

MC 和 TD 方法基于采样更新单个状态,没有对应的矩阵形式。


矩阵形式的局限性

本篇将贝尔曼方程压缩为矩阵形式 ,并给出了闭式解 。无论状态数多少,方程始终是一行。

但矩阵形式隐含了一个前提:每个状态都有独立的 可以存储

环境状态空间大小能否存储
两状态小环境2
GridWorld 10×10100
围棋棋盘~10¹⁷⁰
连续状态(如机器人关节角度)无穷

状态数量增大后,不仅矩阵求逆无法执行,连价值表本身都超出了存储能力。闭式解虽然形式简洁,但面对围棋的 个状态,所需的存储量是不现实的。

解决思路是:不存储每个状态的值,而是用函数来近似表示价值。为状态提取特征,用特征与权重的点积计算价值——下一篇将展开这一思路。

下一篇E.1.3 点积、范数与函数近似 —— 当状态数量超出存储能力时,如何用特征向量和点积近似表示价值。

现代强化学习实战课程

个人非商业离线镜像 · 内容版权归 WalkingLabs 所有,依 CC BY-NC-SA 4.0 授权 · 查看原文