Skip to content

E.1.5 线性代数公式速查与练习

前置知识:本页汇总 E.1 模块所有公式,建议在读完 E.1.1E.1.4 后再来回顾。如果你是第一次读,先跳到正文章节。


回到第 3 章再看一遍

现在你有了向量、矩阵、点积、范数、特征值这些工具。回头看看第 3 章学过的东西,会发现很多"当时只是接受"的公式,其实都有更简洁的矩阵表达。

贝尔曼方程:从逐个手写到一行矩阵

第 3 章里,贝尔曼期望方程写成:

Vπ(s)=aπ(as)[R(s,a)+γsP(ss,a)Vπ(s)].V^\pi(s) = \sum_{a} \pi(a|s)\left[R(s,a) + \gamma\sum_{s'} P(s'|s,a)V^\pi(s')\right].

有了矩阵之后,nn 个这样的方程压缩成一行:

v=r+γPv.\boldsymbol{v} = \boldsymbol{r} + \gamma P\boldsymbol{v}.

闭式解是 v=(IγP)1r\boldsymbol{v} = (I-\gamma P)^{-1}\boldsymbol{r}。第 3 章的 DP 方法反复做 vk+1=r+γPvkv_{k+1} = r + \gamma Pv_k,本质上是在迭代逼近这个闭式解。

TD Error:增量更新与矩阵方程的关系

第 3 章的 TD 更新是:

V(s)V(s)+α[r+γV(s)V(s)].V(s) \leftarrow V(s) + \alpha\left[r + \gamma V(s') - V(s)\right].

用向量语言看,这可以写成:

vv+αesδ,\boldsymbol{v} \leftarrow \boldsymbol{v} + \alpha \cdot \boldsymbol{e}_s \cdot \delta,

其中 es\boldsymbol{e}_s 是状态 ss 的 one-hot 向量(只有第 ss 个位置为 11,其余为 00),δ=r+γV(s)V(s)\delta = r + \gamma V(s') - V(s) 是 TD Error。这和 E.1.2 的贝尔曼矩阵形式 v=r+γPv\boldsymbol{v} = \boldsymbol{r} + \gamma P\boldsymbol{v} 是同一个东西的两种表达——前者是逐步增量更新(每次只改一个分量),后者是整体方程(所有分量同时满足)。

Q-Learning 表格法:one-hot + 点积的特例

第 3 章的 Q-Learning 为每个 (状态, 动作) 对存一个数。从线性代数的视角看,这就是用了 one-hot 特征的线性近似:Q(s,a)=wx(s,a)Q(s,a) = \boldsymbol{w}^\top \boldsymbol{x}(s,a),其中 x(s,a)\boldsymbol{x}(s,a) 是 one-hot 向量。查表是线性近似的特例。

策略梯度更新:范数和信任域的舞台

第 3 章路线二定义了策略目标 J(θ)J(\theta)。更新参数时,梯度裁剪限制 g2c\|\boldsymbol{g}\|_2 \leq c,信任域约束 ΔθFΔθδ\Delta\theta^\top F\,\Delta\theta \leq \delta——这些都是在用线性代数工具保证训练安全。


概念地图

下面这张表按依赖关系组织了 E.1 模块的所有概念。可以顺着依赖链从上往下读,也可以当作索引直接跳到某个概念。

概念核心公式依赖RL 角色
标量r=2,γ=0.9奖励、超参数
向量v ∈ ℝⁿ标量装所有状态的价值
矩阵P ∈ ℝⁿˣⁿ向量装所有状态间的转移
矩阵乘法(Pv)ᵢ = Σⱼ Pᵢⱼvⱼ矩阵 + 向量概率加权未来价值
贝尔曼矩阵形式v = r + γPv矩阵乘法价值递推方程
线性方程解v = (I − γP)⁻¹r贝尔曼矩阵理论闭式解
点积wx = Σᵢ wᵢxᵢ向量线性价值/策略近似
L2 范数x‖₂ = √Σᵢ xᵢ²向量梯度裁剪、正则化
特征值Au = λu矩阵分析矩阵的放缩特性
谱半径与收敛ρ(γP) ≤ γ < 1特征值值迭代收敛保证
信任域约束(θ−θₒₗₐ)ᵀF(θ−θₒₗₐ) ≤ δ范数 + 特征值TRPO 的安全更新

沿着这张表从上往下读,每个概念都在前一个的基础上增加新能力。如果某个概念卡住了,回到它"依赖"的那一行重新看。


从困难到工具

E.1 模块的核心脉络:从"算不出来"到"算得安全"。

阶段遇到的困难引入的数学工具关键公式
困难一1000 个状态 = 1000 个方程向量、矩阵、方程组v = (I − γP)⁻¹r
困难二状态太多存不下价值表点积、范数v̂(s) = wx(s),‖g‖₂ ≤ c
困难三训练可能发散/爆炸/偏移特征值、加权范数ρ(γP) ≤ γ < 1,ΔθᵀFΔθ ≤ δ

常见误区

  1. 把矩阵当成抽象符号。 在贝尔曼方程里,转移矩阵 PP 的每一行都是"从当前状态出发,下一步去哪里"的概率表。
  2. 以为求逆就是实际算法。 v=(IγP)1r\boldsymbol{v}=(I-\gamma P)^{-1}\boldsymbol{r} 是理论闭式解,真实大规模问题通常用迭代或函数近似——这就是第 3 章 DP → MC → TD 的演进逻辑。
  3. 忽略向量方向。 梯度、优势更新、信任域约束都不仅关心"数值大小",还关心参数空间中的方向。
  4. 混淆范数和正则化。 范数是度量工具("有多大"),正则化是把范数加入训练目标来约束参数,梯度裁剪是限制单步更新的幅度——三种不同用途。
  5. 以为 L2 范数是唯一的范数。 L1 范数产生稀疏解,Frobenius 范数衡量矩阵大小,加权范数(二次型)考虑方向敏感度——不同场景用不同范数。

练习

基础题

  1. 贝尔曼方程手算。γ=0.9\gamma=0.9v1=1+0.9v2v_1=1+0.9v_2v2=2+0.9v1v_2=2+0.9v_1,试手算 v1,v2v_1,v_2

  2. 写出矩阵。 写出上题对应的 r\boldsymbol{r}PP,然后验证 v=(IγP)1r\boldsymbol{v} = (I - \gamma P)^{-1}\boldsymbol{r} 是否等于你的手算结果。

  3. 梯度裁剪。 若梯度为 [6,8][6,8]^\top,最大范数设为 55,裁剪后的梯度是多少?

进阶题

  1. 特征值计算。 矩阵 A=[3102]A = \begin{bmatrix} 3 & 1 \\ 0 & 2 \end{bmatrix} 的特征值是多少?它是上三角矩阵,特征值有什么规律?

  2. 三状态贝尔曼方程。 三个状态,转移矩阵 P=[0.20.50.30.00.40.60.70.30.0]P = \begin{bmatrix} 0.2 & 0.5 & 0.3 \\ 0.0 & 0.4 & 0.6 \\ 0.7 & 0.3 & 0.0 \end{bmatrix},奖励向量 r=[1,2,3]\boldsymbol{r}=[1, 2, 3]^\topγ=0.5\gamma=0.5。写出贝尔曼矩阵形式,不做求解。

  3. 点积近似。 状态 ss 的特征是 x(s)=[0.3,0.5,0.8]\boldsymbol{x}(s)=[0.3, -0.5, 0.8]^\top,权重 w=[2,1,3]\boldsymbol{w}=[2, -1, 3]^\top。计算 Q(s,a)=wx(s)Q(s,a) = \boldsymbol{w}^\top\boldsymbol{x}(s)。如果 Q(s,a)Q(s,a) 的真实值是 55,误差是多少?

挑战题

  1. 收敛速度估计。 假设 γ=0.95\gamma=0.95,初始误差 e0=100\|\boldsymbol{e}_0\|=100。至少需要多少次贝尔曼更新才能让误差降到 0.010.01 以下?(提示:ekγke0\|\boldsymbol{e}_k\| \leq \gamma^k \|\boldsymbol{e}_0\|

  2. 信任域验证。 F=[2008]F = \begin{bmatrix} 2 & 0 \\ 0 & 8 \end{bmatrix}Δθ=[0.3,0.1]\Delta\theta = [0.3, 0.1]^\topδ=0.5\delta = 0.5。这次更新在信任域内吗?如果 Δθ=[0.3,0.2]\Delta\theta = [0.3, 0.2]^\top 呢?解释为什么第二个方向更"贵"。

Built for reusable bilingual course delivery