type
Post
status
Published
date
May 26, 2026
slug
bellman-formula
summary
讲解贝尔曼公式的定位,定义,推导
tags
强化学习
category
强化学习
icon
password
贝尔曼公式揭示了各个状态之间的关系,这一特性将在后面的算法中起到重要作用。除此之外,通过贝尔曼公式,我们还能针对某个特定的策略,求出其各个状态的状态价值函数
首先我们需要引入一个数学工具来评估策略,这个工具就是return
自举:

最终的简化公式(贝尔曼公式,但是这个公式不好解)
但是我们能从中明白,一个状态的value实际上依赖于其他状态的value。如果只看一个公式是很难求的,但是把所有公式合在一起就会有转机
State Value
有时候也写成 ,他们在数学上是一样的
其中涉及到三个概率,
- 是由策略控制的
- 由以下概率分布决定:
- 由以下概率分布决定:
考虑如下多步轨迹(trajectory):
折扣回报(discounted return)为:
- 是折扣率(discount rate)。
- 也是一个随机变量,因为 都是随机变量。
的期望(或称期望值、均值)被定义为状态价值函数(state-value function)或简称为状态价值(state value):
备注(Remarks):
- 它是 的函数。它是一个以状态从 开始为条件的条件期望。
- 它是基于策略 的。对于不同的策略,状态价值可能会有所不同。
- 它代表了一个状态的“价值”。如果状态价值更大,说明该策略更好,因为可以获得更大的累计奖励。
问(Q): 回报(return)和状态价值(state value)之间的关系是什么?
答(A): 状态价值是从某个状态开始可能获得的所有回报的均值。如果所有要素 —— , , —— 都是确定性的(deterministic),那么状态价值就等于回报。
状态价值与贝尔曼方程 (State Values and Bellman Equation)
1. 状态价值函数 (State-Value Function)
1.1 多步轨迹与折扣回报
考虑如下的多步轨迹(Trajectory):
- *折扣回报(Discounted Return)**的定义为:
- 是折扣率(Discount Rate)。
- 是一个随机变量,因为后续的奖励 都是随机变量。
1.2 状态价值的定义
的期望(或称期望值、均值)被定义为状态价值函数(State-Value Function),或简称为状态价值(State Value):
备注:
- 它是关于状态 的函数。它是一个以“当前状态从 开始”为条件的条件期望。
- 它是基于特定策略 的。对于不同的策略,同一个状态的状态价值可能会有所不同。
- 它代表了一个状态的“好坏”。如果某个状态的状态价值更大,意味着从该状态出发能获得更多的累计奖励,因此对应的策略也更好。
1.3 回报(Return)与状态价值(State Value)的关系
- 问: 回报与状态价值之间有什么区别和联系?
- 答: 状态价值是从某个状态开始,可能获得的所有回报的均值(期望)。如果环境和策略中的所有要素 —— 策略 、奖励概率 、状态转移概率 —— 都是确定性的(Deterministic),那么状态价值就直接等于回报。
2. 贝尔曼方程 (The Bellman Equation)
首先 可以写成如下形式:
因此状态价值可以被写成:
- 公式2.4中第一项 是即时奖励的期望。通过使用全期望公式(见附录 A),它可以计算为:
这里, 和 分别是可能采取的动作和可能获得的奖励的集合。需要注意的是,不同的状态下 可能会有所不同。在这种情况下, 应当写为 。类似地, 也可能依赖于 $。
- 第二项 是未来奖励的期望。它可以计算为:
上述推导利用了这样一个事实:,这是由于马尔可夫性质,即未来的奖励仅依赖于当前的状态,而与过去的状态无关。
将 (2.5) - (2.6) 代入 (2.4) 可得:
该方程即为贝尔曼方程(Bellman equation),它刻画了状态价值之间的关系。它是设计和分析强化学习算法的基本工具。
和 其实就表示了model,也就是环境,如果我们知道这个model,那就可以用model-based,如果不用那就是model-free
ps:注意到他其实也刻画了 之间的关系。需要明白的是,这个公式对于每一个state都有一个公式,所以我们会得到很多这样的等式,如果能搞出一个矩阵或者多个公式的集合,说不定就能解出来
给定一个策略,我们列出贝尔曼公式,然后求解贝尔曼公式,其实就是一个policy evaluation,这个是很重要的,因为只有能够评价一个策略到底是好还是不好,我们才能进行改进
公式 (2.7) 中的贝尔曼方程是按元素(elementwise)的形式给出的。由于它对每一个状态都成立,我们可以将所有这些方程结合起来,并将其简洁地写成矩阵-向量(matrix-vector)的形式,这在后续分析贝尔曼方程时将会被频繁使用。
为了推导矩阵-向量形式,我们首先将 (2.7) 中的贝尔曼方程重写为:
其中,
这里, 表示即时奖励的均值, 表示在策略 下从状态 转移到状态 的概率。
假设状态的索引为 ,其中 , 为状态总数。对于状态 ,公式 (2.8) 可以写为:
令 ,,以及 且其元素满足 。那么,(2.9) 可以写成以下矩阵-向量的形式:
其中 是待求解的未知量,而 和 是已知的。
矩阵 具有一些有趣的性质。首先,它是一个非负矩阵,意味着它的所有元素都大于或等于零。该性质表示为 ,其中 表示具有适当维度的零矩阵。 或 表示按元素进行的比较操作。其次, 是一个随机矩阵(stochastic matrix),意味着其每一行的元素之和都等于 1。该性质表示为 ,其中 具有适当的维度。
考虑图 2.6 中所示的例子。贝尔曼方程的矩阵-向量形式为:

比如下面这张图,将具体数值代入上式可得:
这样我们能直接解出来当前策略下每个状态的 值
解法有两种,一种是直接解,另一种是逐步收敛来解
直接解的一个重要前提是,这个方程复杂度不高,可以直接按如下方式解这个线性代数问题
但是如果直接解复杂度很高,我们可以直接使用以下迭代算法来求解贝尔曼方程:
该算法生成一个值序列 ,其中 是对 的初始猜测值。可以证明,当 时:
这个方法从 一直不停迭代更新,最后我们就能得到收敛的结果
(2.12) 的收敛性证明
将误差定义为 。我们只需要证明当 时 。将 和 代入 中,可得:
上式可以重写为:
因此,
由于 的每个元素都是非负的且不大于 1,因此对于任意 ,都有 。也就是说, 的每个元素都不大于 1。另一方面,由于 ,我们知道当 时 ,因此当 时,。
Action Value
- state value是从一个状态出发,得到的平均return
- action value是从一个状态出发,并且选择了一个action之后,得到的平均return
从action value我们可以确定哪个action是好的
尽管在前面部分我们一直在讨论状态价值(state values),但现在我们将转向动作价值(action value),它表示在某个状态下采取某种动作的“价值”。虽然动作价值的概念非常重要,但在最后一节才引入它的原因在于,它严重依赖于状态价值的概念。在学习动作价值之前,首先很好地理解状态价值是非常重要的。
状态-动作对 的动作价值定义为:
如上所示,动作价值被定义为在某个状态下采取某种动作后可以获得的预期回报。必须注意的是, 依赖于一个状态-动作对 ,而不仅仅是动作本身。为了更严谨,将其称为“状态-动作价值(state-action value)”可能更合适,但为了简单起见,习惯上简称为“动作价值”。
动作价值与状态价值之间的关系是什么?
- 首先,根据条件期望的性质可以得出:
由此可以得出:
因此,状态价值是与该状态相关联的动作价值的期望。
- 其次,由于状态价值由下式给出:
将其与 (2.13) 进行比较可以得到:
可以看出,动作价值由两项组成。第一项是即时奖励的均值(这个均值是因为环境的不确定,即使我们采取了某个措施,得到的奖励也不一定是固定的,环境的给出的状态转移也不是固定的),第二项是未来奖励的均值。
(2.13) 和 (2.14) 都描述了状态价值与动作价值之间的关系。它们是同一枚硬币的两面:(2.13) 展示了如何从动作价值中获得状态价值,而 (2.14) 则展示了如何从状态价值中获得动作价值。