目录
前言
学习赵老师讲授的强化学习的数学原理视频,本篇文章记录第三讲 Part 4:贝尔曼最优公式(最优策略的有趣性质),记录个人学习笔记,和大家一起分享交流😄
1. Factors affecting the optimal policy
到此为止实际上我们已经介绍了 贝尔曼最优公式 的全部内容, 贝尔曼最优公式 给我们提供了一个非常强大的工具,我们可以求解 最优的策略 ,求解 最优的 state value ,下面我们就立刻用这个工具来分析一些 最优的策略,看它有哪些有意思的性质。

首先我们来回答一个问题,那就是 什么样的因素决定了最优的策略?
如果大家不了解 贝尔曼最优公式 的话,这个问题其实是挺难回答的,但如果你了解 贝尔曼最优公式,就会发现这是一个非常简单的问题。
v ( s ) = max π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ) v(s) = \max_{\pi} \sum_{a} \pi(a \mid s) \left( \sum_{r} \textcolor{red}{p(r \mid s, a)r} + \textcolor{red}{\gamma} \sum_{s'} \textcolor{red}{p(s' \mid s, a)} v(s') \right) v(s)=πmaxa∑π(a∣s)(r∑p(r∣s,a)r+γs′∑p(s′∣s,a)v(s′))
这就是 贝尔曼最优公式 ,我们要做的是什么呢?从这个公式里边去求出来这些 黑色的变量 ,它们分别对应了 最优的策略还有最优的 state value 。我们已知的是什么呢?就是这些 红色的量 ,它们分别对应了概率 p ( s ′ ∣ s , a ) , p ( r ∣ s , a ) p(s'|s,a),p(r | s,a) p(s′∣s,a),p(r∣s,a) ,这些概率就代表了 系统的模型 ,然后 r r r 代表了我们设计这个 reward , γ \gamma γ 是一个 discount rate。
所以求解 贝尔曼最优公式 就是,已知这些红色的量,把黑色的量算出来,很显然 最优的策略和最优的 state value 由什么决定呢?就是由这些红色的量来决定 ,它们分别是:如何设计 r r r、如何选择 γ \gamma γ 以及系统的模型是什么样的。
下面我们来看一看当我改变 r r r 或者改变 γ \gamma γ 的时候,这个 最优的策略 会发生什么样的改变,因为系统的模型一般是很难改变的,所以我们就不考虑这个。

在上面这个 grid-world 例子当中,蓝色区域是我们的目标区域(我们希望到达的地方),其中 reward 的设计是:
r boundary = r forbidden = − 1 , r target = 1 r_{\text{boundary}} = r_{\text{forbidden}}=-1, \quad r_{\text{target}}=1 rboundary=rforbidden=−1,rtarget=1
当 agent 跑出边界的时候获得 -1,进入 forbidden area 时获得 -1,到达 target 时则获得 +1,取折扣因子 γ = 0.9 \gamma=0.9 γ=0.9 ,利用前面介绍的算法求解 贝尔曼最优公式 ,即可得到 最优策略。
右图给出了相应的 最优 state value ,观察 最优策略 ,我们会发现一个有趣的现象:虽然我们希望避开 forbidden area ,但最优策略并未选择绕行。例如,从状态 ( 2 , 3 ) (2,3) (2,3) 出发时,它会向右进入 forbidden area 并穿越过去,最终抵达 target area。
为什么会这样呢?就是因为它发现我这样穿过去,虽然暂时会得到负的奖励(惩罚),但从长远来看,穿过去所得到的 return 比绕一圈所得到的 return 更大。
从例子 (a) 出发,我们去改变一些参数,看看最后的策略会发生什么样的改变。

在例 (b) 中,除 γ \gamma γ 从 0.9 改为 0.5 之外,其余参数都与例 (a) 完全一样,此时 最优的策略 是上面左图绿色箭头所展示的这个,最优的 state value 是上面右图所展示的。
从图中我们可以看到,最优的策略已经发生了改变 ,刚才在状态 ( 2 , 3 ) (2,3) (2,3) 中它是要往右走穿过 forbidden area ,现在它是要往左走绕一个大圈最终进入 target area ,为什么会这样呢?因为它发现,绕一个大圈所得到的 return 比直接穿过去所得到的 return 要大。而这一差异,本质上取决于折扣因子 γ \gamma γ 的选取。
其实我们之前提过,当 γ \gamma γ 比较大的时候 意味着这个 agent 会比较 远视 ,它会比较重视 未来的这个 reward ,而当 γ \gamma γ 比较小的时候 它就会变得 近视 ,return 主要由 近期所得到 reward 来决定。原因很简单: γ \gamma γ 越小,它的幂次方衰减越快,未来的奖励打折得越厉害。
刚才 γ \gamma γ 是从 0.9 降到 0.5,我们现在直接再把 γ \gamma γ 往下降,降到 0,会发生什么呢?

我们会发现这个 最优的策略又发生了改变 ,这时候最优策略变得 extremely short-sighted ,就是非常地近视,它只会关注这个 immediate reward,为什么会这样呢?
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ... G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \ldots Gt=Rt+1+γRt+2+γ2Rt+3+...
大家可以回想一下这个 G t G_t Gt 的计算公式,当 γ = 0 \gamma=0 γ=0 时,后面所有项全被清零,无论未来奖励多大都无济于事,于是 return 只剩下了 immediate reward R t + 1 R_{t+1} Rt+1 ,所以 agent 当然会毫不犹豫地选取 immediate reward 最大的 action。
例如,从状态 ( 3 , 2 ) (3,2) (3,2) 出发时,agent 往上走会进入 forbidden area,往右走会得到负的 reward,原地不动或者往左走得到的 reward 是 0,所以它显然会要么原地不动要么往左走,在我们程序里面是随机选择一个,那这里刚好它就选择了原地不动。
但是在 ( 4 , 4 ) (4,4) (4,4) 这边因为这个状态它就是挨着 target area 的,所以它还是会进去,为什么呢?因为往上走得到 0,往右边得到 0,下边还是 0,然后原地不动是惩罚得到 -1,所以它就会往左边,左边是一个正数,那它自然会选择往这边。
总而言之,当 γ = 0 \gamma=0 γ=0 的时候,整个策略会变得非常地短视 ,非常不好,甚至从很多状态出发根本都到达不了 target area 目标区域。
我们再看一个这个例子。

这里面所有的参数和例子 ( a ) (a) (a) 中的完全一样,但是有一点不同,那就是刚才 forbidden area 是 -1,现在的这个 forbidden area 是 -10,这意味着你进到 forbidden area 你会得到 额外的更重的惩罚 ,这时候策略就变成了让 agent 绕开 forbidden area。
注意,在 γ = 0.9 \gamma=0.9 γ=0.9 的时候,我们可以通过把 进入 forbidden area 的惩罚设得更 重,来让它绕开;而如果 γ \gamma γ 从 0.9 降到 0.5,即便不加重惩罚,它也会自动绕开。
2. Invariance of the optimal policy
刚刚我们通过例子,展示了修改 r r r 或者修改 γ \gamma γ 的时候是否会改变 最优的策略 ,我们下面再来看一个非常重要的情况。当每一个 reward r r r 都乘上因子 a a a 再加上偏置量 b b b ,变成 a r + b ar+b ar+b 时,整个系统的 最优策略 会改变吗?
我们考虑一个具体例子。

比如说我们经常用的
r boundary = r forbidden = − 1 , r target = 1 r_{\text{boundary}} = r_{\text{forbidden}}=-1, \quad r_{\text{target}}=1 rboundary=rforbidden=−1,rtarget=1
现在我们给所有的 r r r 全都加上 1,变成
r boundary = r forbidden = 0 , r target = 2 , r otherstep = 1 r_{\text{boundary}} = r_{\text{forbidden}}=0, \quad r_{\text{target}}=2, \quad r_{\text{otherstep}}=1 rboundary=rforbidden=0,rtarget=2,rotherstep=1
为什么会出现 "otherstep" 这一项呢?实际上,它对应的是从普通状态(白色格子)转移到另一个普通状态时的奖励。其默认值为 0。也就是说,在普通格间移动本身不产生奖惩,当如果我们对所有动作引入一个固定的奖励偏置(例如每步增加一个常数),那么这个偏置同样需要加到 "otherstep" 上,于是便得到了相应的表达式。
注意,当我们做了这样的变换之后最后的 策略实际上是不会改变的。
为什么呢?因为最重要的其实不在于这个 reward 的 absolute value ,而在于它们相互之间的这种 relative value,这样一个结果可以用下面这个定理更严谨地表述:

定理(最优策略不变性)
考虑一个马尔可夫决策过程,其最优状态价值为 v ∗ ∈ R ∣ S ∣ v^* \in \mathbb{R}^{|\mathcal{S}|} v∗∈R∣S∣ ,满足 v ∗ = max π ( r π + γ P π v ∗ ) v^* = \max_\pi (r_\pi + \gamma P_\pi v^*) v∗=maxπ(rπ+γPπv∗) 。如果每个奖励 r r r 通过仿射变换变为 a r + b ar + b ar+b ,其中 a > 0 , b ∈ R a>0, \, b \in \mathbb{R} a>0,b∈R ,则对应的最优状态价值 v ′ v' v′ 也是 v ∗ v^* v∗ 的仿射变换:
v ′ = a v ∗ + b 1 − γ 1 , v' = av^* + \frac{b}{1 - \gamma} \mathbf{1}, v′=av∗+1−γb1,
其中 γ ∈ ( 0 , 1 ) \gamma \in (0, 1) γ∈(0,1) 是折扣率, 1 = 1 , ... , 1 T \mathbf{1} = 1, \\dots, 1^T 1=1,...,1T 。因此,最优策略对奖励信号的仿射变换具有不变性。
首先我们来看一下
v ∗ = max π ( r π + γ P π v ∗ ) v^* = \max_\pi (r_\pi + \gamma P_\pi v^*) v∗=πmax(rπ+γPπv∗)
这样一个 贝尔曼最优公式 ,它的最优解是 v ∗ v^* v∗ ,现在我对这个 r r r 进行了改变。原来是 r r r ,现在每一个 reward 我都改成了 a r + b ar+b ar+b 。
这时候对应的 贝尔曼最优公式 是
v ′ = max π ( r π ′ + γ P π v ′ ) v' = \max_{\pi}(r'{\pi} + \gamma P{\pi} v') v′=πmax(rπ′+γPπv′)
由于我改变了 r r r ,所以这里的 r π ′ r'{\pi} rπ′ 和刚才的 r π r{\pi} rπ 是不一样的,然后我们会发现这个 v ′ v' v′ ,也就是上面这个 贝尔曼最优公式的解 其实和 v ∗ v^* v∗ 有如下关系:
v ′ = a v ∗ + b 1 − γ 1 v' = av^* + \frac{b}{1 - \gamma} \mathbf{1} v′=av∗+1−γb1
即 v ′ v' v′ 是 v ∗ v^* v∗ 的缩放加上一个统一偏置。在决定最优策略时,我们需要考察 action value ,如之前所述,已知 state value v ∗ v^* v∗ 可求出各 action value;类似地,已知 v ′ v' v′ 同样可求出对应的各 action value。
你会发现,action value 也遵循同样的变换规律---新的 action value 等于原 action value 乘以 a a a 再加一个常数偏置。但决策时我们只关心 action value 之间的相对排序,而非其绝对大小。
举个例子:若五个动作的价值分别为 1, 2, 1, 1, 1,显然我们会选择第二个;将它们同时乘以 100 后,虽然绝对值增大,但相对关系不变,最优选择依然为第二个,这个定理的详细证明可参见书中相关内容。
3. Shortest path
我们下面再来看一个例子,这个例子其实也很有意思,也可能会让大家脑筋拐不过来弯。

大家可以看一看,首先左边这个是一个非常简单的例子,有 4 个网格,然后我们通过求解 贝尔曼最优公式 ,我得到了如图这样一个 最优的策略 ,旁边是相应的 optimal state value。
右边这个例子它的区别就是在 ( 1 , 2 ) (1,2) (1,2) 这个状态它是往左走而不是往下走,这个显然 不是一个最优的策略 ,然后它相应的 state value 如图所示,很明显在 ( 1 , 2 ) (1,2) (1,2) 它的 state value 没有 optimal policy 对应的 state value 大,所以它不是最优的策略。
但是我们的问题是,为什么这个不是最优的策略?为什么它不能这样拐一个弯,去做这种所谓的叫 meaningless detour?为什么它不能做这种绕路呢?

我们在设计 r r r 的时候,从一个白色区域进到另一个白色区域时的 reward 为 0,这个没有惩罚,没有惩罚 agent 就可以从 ( 1 , 2 ) (1,2) (1,2) 走到 ( 1 , 1 ) (1,1) (1,1) ,甚至再走回来都可以,那为什么这样不是最优的呢?
其实答案是很简单的, 因为 discount rate!
针对 Policy (a),我们有
return = 1 + γ 1 + γ 2 1 + ⋯ = 1 / ( 1 − γ ) = 10 \text{return} = 1 + \gamma 1 + \gamma^2 1 + \cdots = 1/(1-\gamma)=10 return=1+γ1+γ21+⋯=1/(1−γ)=10
针对 Policy (b),我们有
return = 0 + γ 0 + γ 2 1 + ⋯ = γ 2 / ( 1 − γ ) = 8.1 \text{return} = 0 + \gamma 0 + \gamma^2 1 + \cdots = \gamma^2/(1-\gamma)=8.1 return=0+γ0+γ21+⋯=γ2/(1−γ)=8.1
和 Policy (a) 相比,Policy (b) 的 return 整体多乘了一个 γ 2 \gamma^2 γ2(因为晚了两步才到达 target),所以 state value 变小了。
那我想说的是什么呢?就是在大家设计 reward 的时候,很多人可能会觉得我每走一步我应该给它一个惩罚,比如说 r = − 1 r=-1 r=−1 ,那实际当中这个 r = − 1 r=-1 r=−1 就代表一种能量的消耗,这样的话它就不会绕远路,它就会尽可能地走最短的路径到目标区域,那如果 r = 0 r=0 r=0 的话好像它就会绕远路,实际上是不是这样的呢?
通过我们刚才的介绍其实可以发现 并不是这个样子 ,因为除了 r r r 来约束它不要绕远路之外其实我们还有 γ \gamma γ ,由于绕远路意味着到达目标、获得奖励的时间越晚,而越晚对应的 γ \gamma γ 幂次越高,折扣打得越厉害 ,所以它自然就会找一个 最短的路径 过去。
4. Summary
到此为止我们介绍完了本节课的全部内容,下面我们非常简要地再回顾和总结一下。

首先我们得到了 贝尔曼最优公式,它有两种表达形式:
- Elementwise form
v ( s ) = max π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ) ⏟ q ( s , a ) , ∀ s ∈ S v(s) = \textcolor{blue}{\max_{\pi}} \sum_{a} \textcolor{blue}{\pi(a \mid s)} \underbrace{\left( \sum_{r} p(r \mid s, a)r + \gamma \sum_{s'} p(s' \mid s, a)v(s') \right)}_{q(s, a)}, \quad \forall s \in \mathcal{S} v(s)=πmaxa∑π(a∣s)q(s,a) (r∑p(r∣s,a)r+γs′∑p(s′∣s,a)v(s′)),∀s∈S
- Matrix-vector form
v = max π ( r π + γ P π v ) \textcolor{blue}{v = \max_{\pi}(r_{\pi} + \gamma P_{\pi}v)} v=πmax(rπ+γPπv)
这个 贝尔曼最优公式 有没有解呢?我们知道它 一定存在解 ,这个解是否是唯一的呢? 我们知道这个解 一定是唯一的 ,这些结论都可以用 contraction mapping theorem 来保证。

需要特别指出:optimal state value v ∗ v^* v∗ 是唯一的,但对应的最优策略 π ∗ \pi^* π∗ 未必唯一,至于如何求解最优策略与最优 state value,我们之前已经给出了一个迭代算法。
另外就是关于 optimality ,我们知道了:贝尔曼最优公式的解 v ∗ v^* v∗ 就是最优的 state value,而取得最大值的策略 π ∗ \pi^* π∗ 就是最优策略 ,这也是我们为什么要研究 贝尔曼最优公式 的原因。
OK,以上就是本节课的全部内容,我们下节课再见。
结语
本讲第四部分从应用的角度出发,深入探讨了最优策略的若干有趣性质。首先,通过改变折扣率 γ \gamma γ 和 forbidden area 的惩罚值,我们直观地看到: γ \gamma γ 越大,agent 越 "远视",敢于穿越 forbidden area 以换取长期回报; γ \gamma γ 越小甚至为 0,agent 越 "近视",只贪图眼前的即时奖励。而加重惩罚则可以直接塑造策略,让 agent 主动绕开危险区域。这说明 reward 设计与折扣率是调控最优策略的两大关键旋钮。
其次,我们学习了最优策略的不变性定理:对 reward 施加仿射变换 a r + b ar+b ar+b 不会改变最优策略,因为策略的选择只看 action value 的相对大小而非绝对值。最后,"最短路径" 的例子揭示了 γ \gamma γ 的深层作用---即使每步移动的 reward 为 0,discount 本身就能阻止无意义的绕路,因为越晚到达目标,奖励被折扣得越厉害。
至此,第三讲的全部内容圆满结束。我们掌握了贝尔曼最优公式这一强大工具,理解了最优策略的存在性、唯一性、贪婪确定性,以及影响它的各种因素,为后续的算法学习奠定了坚实的理论基础🤗。