1. 终极目标:寻找最优策略
在第2章中,我们学会了“给定一个策略,评估它好不好(Policy Evaluation)”。但这只是第一步,RL 的终极目标是找到最好的那个策略(Optimal Policy, $\pi^*$)。
什么叫“最好”?
数学定义:如果策略 $\pi^$ 的状态价值 $v_{\pi^}(s)$ 在每一个状态 $s$ 上都不低于其他任何策略 $\pi$ 的价值 $v_\pi(s)$,那么 $\pi^$ 就是最优策略。
$$ v_{\pi^}(s) \ge v_\pi(s), \quad \forall s \in \mathcal{S}, \forall \pi $$
直观理解:
最优策略就像一个完美的导航仪,无论你现在身处何地(哪怕是被风吹到了错误的格子),它都能告诉你接下来该怎么走才能获得最大的未来回报。
2. 贝尔曼最优方程 (Bellman Optimality Equation, BOE)
2.1 从 Bellman Equation 到 BOE
回忆普通贝尔曼方程:
$$ v_\pi(s) = \sum_{a} \pi(a|s) \underbrace{\left( \sum_{s’} p(s’|s,a) [ r + \gamma v_\pi(s’) ] \right)}{q\pi(s,a)} $$
如果我们想要 $v(s)$ 最大,那么在选择动作 $a$ 时,就不应该犹豫,而应该只选 Q 值最大的那个动作。
于是,求和号 $\sum_a \pi(a|s)$ 变成了取最大值 $\max_a$:
$$ v^(s) = \max_{a \in \mathcal{A}} \underbrace{\sum_{s’} p(s’|s,a) [ r(s,a,s’) + \gamma v^(s’) ]}_{q^*(s,a)} $$
这就是 Bellman Optimality Equation (BOE)。它描述了最优状态价值 $v^*$ 必须满足的递归关系。
2.2 为什么 BOE 很难解?
对比一下:
- Bellman Equation (BE): $v = R_\pi + \gamma P_\pi v$。这是线性方程,可以直接 $v = (I - \gamma P)^{-1} R$。
- Bellman Optimality Equation (BOE): $v = \max (R + \gamma P v)$。这里有个 $\max$ 操作。
- $\max(a+b) \ne \max(a) + \max(b)$。
- $\max$ 是非线性的。
- 结论:我们不能用矩阵求逆来解 BOE!必须使用迭代算法(Value Iteration)。
3. 压缩映射定理 (Contraction Mapping Theorem)
这是 RL 中最硬核的数学理论之一,它保证了 Value Iteration 算法一定会收敛。
3.1 什么是压缩映射?
把 BOE 的右边看作一个算子(Operator)$f$:
$$ f(v) = \max_a (R_a + \gamma P_a v) $$
如果能证明对于任意两个向量 $v_1, v_2$,经过 $f$ 变换后,它们的距离变小了:
$$ | f(v_1) - f(v_2) |\infty \le \gamma | v_1 - v_2 |\infty $$
因为 $\gamma < 1$,所以 $f$ 是一个压缩映射。
3.2 不动点 (Fixed Point)
根据 Banach Fixed Point Theorem:
- 存在性:$v^* = f(v^*)$ 一定存在。
- 唯一性:$v^*$ 是唯一的。
- 收敛性:任意初始化 $v_0$,只要不断算 $v_{k+1} = f(v_k)$,最终一定收敛到 $v^*$。
简单人话:你随便猜一个 Value Table,只要不断用“贪心”的方式更新它,最后它一定会变成真正的最优 Value Table。
3.3 深度思考:压缩映射的物理意义
为什么 $\gamma < 1$ 就能保证压缩?
$$ | v_{k+1} - v^* | \le \gamma | v_k - v^* | $$
这表示每次迭代,我们离真理的距离都会缩小 $\gamma$ 倍。
物理意义:
$\gamma$ 是折扣因子,它代表了我们对未来的**“遗忘速度”**。
- 如果 $\gamma \approx 0$,Agent 是超级近视眼,只看眼前。任何遥远的误差都影响不到现在,所以收敛极快。
- 如果 $\gamma \approx 1$,Agent 是远视眼,千秋万代都要考虑。远处的微小误差都会传递到现在,所以收敛很慢。
结论:压缩映射的本质是**“用时间的衰减来消除初始猜测的错误”**。
4. 最优策略的确定性
一个有趣且重要的结论:对于有限 MDP,总是存在一个确定性的最优策略(Deterministic Optimal Policy)。
这意味着最优策略不需要随机扔骰子(不需要 $\pi(a|s) = 0.5$)。
$$ \pi^(s) = \arg\max_{a} q^(s, a) $$
在每个路口,只要坚定地走 Q 值最大的那条路就行了。如果有多个动作 Q 值一样大,随便选一个确定的即可。
5. Python 代码实战:验证最优性
在第2章的代码中,我们计算了一个随机策略的 Value。现在我们来“手动”算一下最优策略。
1 | import numpy as np |
通过这段代码逻辑,我们可以看到 Value Iteration 的雏形:算 Q 值 -> 取 Max -> 更新 V。
6. 总结
本章解决了 RL 的核心目标问题:
- 定义最优:$v^*(s) \ge v_\pi(s)$。
- 方程描述:$v^* = \max (R + \gamma P v^*)$。
- 求解难点:非线性,无法矩阵求逆。
- 理论保障:压缩映射定理保证了迭代法的收敛性。
这为下一章正式介绍 Value Iteration (VI) 和 Policy Iteration (PI) 算法铺平了道路。

