世界は優しい
首页博客关于

Site

世界は優しい

世界很温柔,我们都在努力变得更好。

Navigation

  • 首页
  • 博客
  • 关于

Connect

  • GitHub
  • 作者

© 2026 ZZC. 本站内容以 CC BY-NC-SA 4.0 协议发布。

Built with Next.js · Tailwind CSS

Folders

课程介绍与评分Lec1: IntroductionLec2: Lexical AnalysisLec3: ParsingLec4: Abstract SyntaxLec5: Semantic AnalysisLec6: Activation RecordsLec7: Translate to Intermediate CodeLec8: Basic Blocks and TracesLec9: 指令选择Lec10: Liveness Analysis
Lec0: 课程介绍与成绩Lec1: IntroductionLec2: Operating-System StructuresLec3: ProcessesLec4: Threads(多线程编程)Lec5: CPU SchedulingLec6: 进程同步Lec7: DeadlocksLec8: Main MemoryLec9: Virtual MemoryLec10: File-System InterfaceLec11: File System ImplementationLec12: Mass-Storage System
Lec1: Basic Concepts in Reinforcement LearningLec2: Bellman EquationLec3: Bellman Optimality EquationLec4: Value Iteration & Policy IterationLec5: Monte Carlo Learning
首页
ManiGaussian 论文笔记ManiGaussian++ 论文笔记
AMP: 对抗动作先验替代复杂奖励函数DeepMimic: 从动作捕捉数据学习物理仿真角色技能DreamWaQ: 纯本体感知的四足鲁棒行走Imitating Animals: 从动物模仿到真实四足敏捷运动MoE-Loco: 多任务腿足运动的专家混合架构Multi-AMP: 多重对抗动作先验学习高级技能PIE: Proprioception with Imagination for ParkourRMA: Rapid Motor Adaptation for Legged Robots
论文阅读
Lec1: 五十音Lec2: 日语声调Lec3: 浊音和长音
Callout 语法速查
Hello World - 我的第一篇博客
Typora 语法兼容性测试
首页博客Coure-NotebookReinforcement_learningLec3: Bellman Optimality Equation

强化学习

Lec3: Bellman Optimality Equation

Bellman 最优方程及其压缩映射性质,Banach 不动点定理保证收敛唯一解,以及最优策略的存在性。

2026 年 01 月 29 日/8 min read/ZZCZZC
#强化学习#课程笔记#计算机科学

Motivating examples

​ 我们以一个例子作为引入:

image-20260201194959813

​ 于是显然有:

v_{\pi}(s_1) &= -1 + \gamma v_{\pi}(s_2), \\ v_{\pi}(s_2) &= +1 + \gamma v_{\pi}(s_4), \\ v_{\pi}(s_3) &= +1 + \gamma v_{\pi}(s_4), \\ v_{\pi}(s_4) &= +1 + \gamma v_{\pi}(s_4).

​ 假设 γ=0.9\gamma = 0.9γ=0.9,计算得到:

vπ(s4)=vπ(s3)=vπ(s2)=10,  vπ(s1)=8v_{\pi}(s_4)=v_{\pi}(s_3)=v_{\pi}(s_2)=10, \; v_{\pi}(s_1)=8vπ​(s4​)=vπ​(s3​)=vπ​(s2​)=10,vπ​(s1​)=8

​ 于是我们就可以计算得到每一个状态的所有的 Action value:

qπ(s1,a1)=−1+γvπ(s1)=6.2,qπ(s1,a2)=−1+γvπ(s2)=8,qπ(s1,a3)=0+γvπ(s3)=9,qπ(s1,a4)=−1+γvπ(s1)=6.2,qπ(s1,a5)=0+γvπ(s1)=7.2.\begin{align} q_{\pi}(s_1, a_1) &= -1 + \gamma v_{\pi}(s_1) = 6.2, \\ q_{\pi}(s_1, a_2) &= -1 + \gamma v_{\pi}(s_2) = 8, \\ q_{\pi}(s_1, \color{blue}{a_3}) &= 0 + \gamma v_{\pi}(s_3) = 9, \\ q_{\pi}(s_1, a_4) &= -1 + \gamma v_{\pi}(s_1) = 6.2, \\ q_{\pi}(s_1, a_5) &= 0 + \gamma v_{\pi}(s_1) = 7.2. \end{align}qπ​(s1​,a1​)qπ​(s1​,a2​)qπ​(s1​,a3​)qπ​(s1​,a4​)qπ​(s1​,a5​)​=−1+γvπ​(s1​)=6.2,=−1+γvπ​(s2​)=8,=0+γvπ​(s3​)=9,=−1+γvπ​(s1​)=6.2,=0+γvπ​(s1​)=7.2.​​

​ 对于原来的策略,我们可以写成:

π(a∣s1)={1a=a20a≠a2\pi(a|s_1) = \begin{cases} 1 & a = a_2 \\ 0 & a \neq a_2 \end{cases}π(a∣s1​)={10​a=a2​a=a2​​

​ 我们可以发现,原来的策略并不是最好的,因为它走进了 forbidden area。于是,我们可以把策略换成 action value 最大的那一条路:

πnew(a∣s1)={1a=a∗0a≠a∗a∗=arg⁡max⁡aqπ(s1,a)=a3.\pi_{\text{new}}(a|s_1) = \begin{cases} 1 & a = a^* \\ 0 & a \neq a^* \end{cases} \\ a^* = \arg\max_{a} q_{\pi}(s_1, a) = a_3.πnew​(a∣s1​)={10​a=a∗a=a∗​a∗=argamax​qπ​(s1​,a)=a3​.

​ 直观上来来理解,选择一个 action value 最大 action 就可以获得一个最好的策略。

​ 但在数学上,有时候仅仅一次的选择不能保证整个 π\piπ 的选择都是最优的。(我们需要从终点向起点开始,一步步保证最优)于是可以选择多迭代几轮来达到整体的最优。

Optimal policy

​ 我们定义策略 π1\pi_{1}π1​ 比 π2\pi_{2}π2​ 更优(better)如果:

vπ1(s)≥vπ2(s)for  all  s∈Sv_{\pi_1}(s) \geq v_{\pi_2}(s) \quad for\;all \; s\in \mathcal{S}vπ1​​(s)≥vπ2​​(s)foralls∈S

​ 同时定义策略 π∗\pi^*π∗ 是最优(optimal)的若:

vπ∗(s)≥vπ(s)for  all  s  and  other  policy  πv_{\pi^*}(s) \geq v_{\pi}(s) \quad for \; all \; s \; and\;other\;policy\; \pi vπ∗​(s)≥vπ​(s)forallsandotherpolicyπ

Bellman optimality equation(BOE)

v(s)=max⁡π∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)v(s′)),∀s∈S=max⁡π∑aπ(a∣s)q(s,a)s∈S\begin{align} v(s) &= {\max_{\pi}} \sum_{a} {\pi(a|s)} \left( \sum_{r} p(r|s, a)r + \gamma \sum_{s'} p(s'|s, a)v(s') \right), \quad \forall s \in \mathcal{S} \\ &= {\max_{\pi}} \sum_{a} {\pi(a|s)} q(s, a) \quad s \in \mathcal{S} \end{align}v(s)​=πmax​a∑​π(a∣s)(r∑​p(r∣s,a)r+γs′∑​p(s′∣s,a)v(s′)),∀s∈S=πmax​a∑​π(a∣s)q(s,a)s∈S​​

​ 以上就是 BOE。我们的目标是求出一个最优的策略 π\piπ,使得 v(s)v(s)v(s) 的值最大。

​ 类似的我们可以将贝尔曼最优公式写成向量形式:

v=max⁡π(rπ+γPπv)[rπ]s≜∑aπ(a∣s)∑rp(r∣s,a)r[Pπ]s,s′=p(s′∣s)≜∑aπ(a∣s)∑s′p(s′∣s,a)\mathbf{v} = \max_{\pi} (\mathbf{r}_{\pi} + \gamma \mathbf{P}_{\pi} \mathbf{v}) \\ [\mathbf{r}_{\pi}]_s \triangleq \sum_{a} \pi(a|s) \sum_{r} p(r|s, a)r \\ [\mathbf{P}_{\pi}]_{s,s'} = p(s'|s) \triangleq \sum_{a} \pi(a|s) \sum_{s'}p(s'|s, a)v=πmax​(rπ​+γPπ​v)[rπ​]s​≜a∑​π(a∣s)r∑​p(r∣s,a)r[Pπ​]s,s′​=p(s′∣s)≜a∑​π(a∣s)s′∑​p(s′∣s,a)

​ 这里第二三行的下标指的是向量中的一项。比如 [Pπ]s,s′[\mathbf{P}_{\pi}]_{s,s'}[Pπ​]s,s′​,指的是 [Pπ][\mathbf{P}_{\pi}][Pπ​] 中的第 sss 行,第 s′s's′ 列。

Maximization on the right-hand side of BOE

​ 我们先来处理贝尔曼最优公式的右边的最大(max)部分。

​ 回顾最优策略的定义,我们知道其要对任意状态 sss 都要成立,因此我们先考虑一个特殊的状态 sss:

v(s)=max⁡π∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)v(s′)),∀s∈S=max⁡π∑aπ(a∣s)q(s,a)s∈S\begin{align} v(s) &= {\max_{\pi}} \sum_{a} {\pi(a|s)} \left( \sum_{r} p(r|s, a)r + \gamma \sum_{s'} p(s'|s, a)v(s') \right), \quad \forall s \in \mathcal{S} \\ &= {\max_{\pi}} \sum_{a} {\pi(a|s)} q(s, a) \quad s \in \mathcal{S} \end{align}v(s)​=πmax​a∑​π(a∣s)(r∑​p(r∣s,a)r+γs′∑​p(s′∣s,a)v(s′)),∀s∈S=πmax​a∑​π(a∣s)q(s,a)s∈S​​

​ 我们知道,∑aπ(a∣s)=1\sum_{a}\pi(a \mid s)=1∑a​π(a∣s)=1,且对于一个场景来说,q(s,a)q(s,a)q(s,a)是确定的。因此有:

max⁡π∑aπ(a∣s)q(s,a)≤∑aπ(a∣s)⋅max⁡a∈Aq(s,a)=max⁡a∈Aq(s,a){\max_{\pi}} \sum_{a} {\pi(a|s)} q(s, a) \leq \sum_a \pi(a \mid s) \cdot \max_{a \in \mathcal{A}}q(s,a)=\max_{a \in \mathcal{A}}q(s,a)πmax​a∑​π(a∣s)q(s,a)≤a∑​π(a∣s)⋅a∈Amax​q(s,a)=a∈Amax​q(s,a)

​ 当且仅当:

π(a∣s)={ 1a=a∗ 0a≠a∗a∗=arg⁡max⁡aq(s,a)\pi(a|s) = \begin{cases}   1 & a = a^* \\   0 & a \neq a^* \end{cases} \\ a^*=\arg \max_aq(s,a)π(a∣s)={ 1 0​a=a∗a=a∗​a∗=argamax​q(s,a)
Note

对于这里的推导,一种可能的解释是,q(s,a)q(s,a)q(s,a) 确实依赖于我们之前所算出来的策略 π\piπ,但是,在优化的过程中,我们始终将此次的 q(s,a)q(s,a)q(s,a) 看作是一个定值进行计算。经过多次迭代后,一定会得到最优解。

The whole of BOE

v=max⁡π(rπ+γPπv)v=\max_{\pi}(r_\pi + \gamma P_\pi v)v=πmax​(rπ​+γPπ​v)

​ 经过上面的分析,我们知道 π\piπ 和 vvv 之间有密不可分的联系。不妨将 π\piπ 视作 vvv 的一个函数,我们就能得到:

f(v):=max⁡π(rπ+γPπv)f(v):=\max_\pi (r_\pi+\gamma P_\pi v)f(v):=πmax​(rπ​+γPπ​v)

​ 于是就有:

v=f(v)where[f(v)]s=max⁡π∑aπ(a∣s)q(s,a),s∈Sv=f(v)\\ where\\ [f(v)]_s=\max_{\pi}\sum_a \pi(a \mid s)q(s,a), \quad s \in \mathcal{S}v=f(v)where[f(v)]s​=πmax​a∑​π(a∣s)q(s,a),s∈S

​ 显然,这是一个有关不动点的问题。

Fixed point & Contraction mapping

​ 在继续正文部分之前,我们首先来介绍一下不动点(Fixed point)以及 Contraction mapping theorem。

​ 我们称一个点 x∈Xx \in Xx∈X 为函数 f:X→Xf:X \rightarrow Xf:X→X 的 Fixed point 若:

f(x)=xf(x)=xf(x)=x

​ 我们称 fff 为一个 contraction mapping 若:

∣∣f(x1)−f(x2)∣∣≤γ∣∣x1−x2∣∣γ∈(0,1)||f(x_1)-f(x_2)|| \leq \gamma||x_1-x_2|| \\ \gamma \in \left( 0,1 \right)∣∣f(x1​)−f(x2​)∣∣≤γ∣∣x1​−x2​∣∣γ∈(0,1)

​ 此处的两个 ∣∣||∣∣ 操作,一个用于取绝对值,一个用于计算矩阵的值。

Contraction mapping theorem

​ 对任何形如 x=f(x)x=f(x)x=f(x) 的等式来说,若 fff 为 contraction mapping,则:

  • 必定存在一个不动点 x∗x^*x∗,满足 f(x∗)=x∗f(x^*)=x^*f(x∗)=x∗
  • 这个不动点 x∗x^*x∗ 是唯一的
  • 考虑一组序列 {xk}\{x_k\}{xk​},满足 xk+1=f(xk)x_{k+1}=f(x_k)xk+1​=f(xk​)。当 k→∞k \rightarrow \infink→∞ 的时候,xk→x∗x_k \rightarrow x^*xk​→x∗。而且,增长率是指数级别增加的(非常快)

​ 回到正文,对于贝尔曼最优方程 v=f(v)=max⁡π(rπ+γPπv)v=f(v)=\max_{\pi}(r_\pi + \gamma P_\pi v)v=f(v)=maxπ​(rπ​+γPπ​v) 来说,有:

∣∣f(v1)−f(v2)∣∣≤γ∣∣v1−v2∣∣||f(v_1)-f(v_2)|| \leq \gamma||v_1-v_2||∣∣f(v1​)−f(v2​)∣∣≤γ∣∣v1​−v2​∣∣

​ 所以,f(v)=vf(v)=vf(v)=v 是 contraction mapping 的。因此由 BOE 的三条性质,我们知道:

  • 对于 BOE v=f(v)=max⁡π(rπ+γPπv)v=f(v)=\max_{\pi}(r_\pi + \gamma P_\pi v)v=f(v)=maxπ​(rπ​+γPπ​v) 来说,一定存在一个唯一的答案,而且这个答案可以被递归的计算出来:
vk+1=f(vk)=max⁡π(rπ+γPπvk)v_{k+1}=f(v_k)=\max_\pi (r_\pi+\gamma P_\pi v_k)vk+1​=f(vk​)=πmax​(rπ​+γPπ​vk​)

​ 这个式子的收敛程度是指数级快的,且收敛等级是由 γ\gammaγ 所决定的。

Policy optimality

​ 假设 v∗v^*v∗ 是贝尔曼最优方程的解,那么就会满足下面的式子:

v∗=max⁡π(rπ+γPπv∗)v^*=\max_\pi(r_\pi+\gamma P_\pi v^*)v∗=πmax​(rπ​+γPπ​v∗)

​ 假设:

π∗=arg⁡max⁡π(rπ+γPπv∗)\pi^*=\arg \max_\pi(r_\pi+\gamma P_\pi v^*)π∗=argπmax​(rπ​+γPπ​v∗)

​ 于是就有:

v∗=rπ∗+γPπ∗v∗v^*=r_{\pi^*}+\gamma P_{\pi^*} v^*v∗=rπ∗​+γPπ∗​v∗

​ 其中,π∗{\pi}^*π∗ 是最优策略且 v∗=vπ∗v^*=v_{\pi^*}v∗=vπ∗​ 是对应的 state value。

Provement

​ 至于为什么 v∗v^* v∗ 和 π∗\pi^*π∗ 是最优的,我们可以参考以下证明过程:

image-20260202143635986

Optimal policy

​ 由上面的推导中,我们可以总结出一个 theorem(Greedy Optimal Policy):

对任意 s∈Ss \in \mathcal{S}s∈S,the deterministic greedy policy:

π∗(a∣s)={1a=a∗(s)0a≠a∗(s)\pi^*(a|s) = \begin{cases} 1 & a = a^*(s) \\ 0 & a \neq a^*(s) \end{cases}π∗(a∣s)={10​a=a∗(s)a=a∗(s)​

是一个可以解决 BOE 的 optimal policy。此时:

a∗(s)=arg⁡max⁡aq∗(a,s)a^*(s)=\arg \max_aq^*(a,s)a∗(s)=argamax​q∗(a,s)

且:

π∗(s)=arg⁡max⁡π∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)v∗(s′))⏟q∗(s,a)\pi^*(s)=\arg \max_\pi \sum_a \pi(a \mid s)\underbrace{\left(\sum_rp(r \mid s,a)r+\gamma \sum_{s'}p(s' \mid s,a)v^*(s')\right)}_{q^*(s,a)}π∗(s)=argπmax​a∑​π(a∣s)q∗(s,a)(r∑​p(r∣s,a)r+γs′∑​p(s′∣s,a)v∗(s′))​​

Analyzing optimal policies

​ 我们接下来分析影响最优策略的因素:

v(s)=max⁡π∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)v(s′))v(s) = \max_{\pi} \sum_{a} \pi(a|s) \left( \sum_{r} \textcolor{red}{p(r|s, a)r} + \textcolor{red}{\gamma} \sum_{s'} \textcolor{red}{p(s'|s, a)}v(s') \right)v(s)=πmax​a∑​π(a∣s)(r∑​p(r∣s,a)r+γs′∑​p(s′∣s,a)v(s′))

​ 观察公式,我们可以发现正是红色部分的内容影响了最优策略:

  • Reward design:rrr
  • System model:p(s′∣s,a),  p(r∣s,a)p(s' \mid s,a), \; p(r\mid s,a)p(s′∣s,a),p(r∣s,a)
  • Discount rate:γ\gammaγ

​ 对于 discount rate γ\gammaγ 来说,越高代表越远视,越低代表越近视。

rrr 的改变

​ 接下了我们来看一种特殊的情况,我们改变奖励 r→αr+βr \rightarrow \alpha r+\betar→αr+β。

​ 可以证明的是,改变后的最优策略以及 state value 相对大小关系并未改变。

v′=αv∗+β1−γ1v'=\alpha v^*+\frac{\beta}{1-\gamma}\mathbf{1}v′=αv∗+1−γβ​1

​ 具体证明如下所示:

image-20260202161917954

image-20260202161927617

ZZC

Written by

ZZC
每天研究怎么摸鱼的神人

Comments

评论功能即将上线

On this page

  • Motivating examples
  • Optimal policy
  • Bellman optimality equation(BOE)
  • Maximization on the right-hand side of BOE
  • The whole of BOE
  • Fixed point & Contraction mapping
  • Contraction mapping theorem
  • Policy optimality
  • Provement
  • Optimal policy
  • Analyzing optimal policies
  • $r$ 的改变