回报(Return)可以用来判断一条轨迹的长期表现。为了让更远的奖励影响逐渐减弱,我们通常使用折扣回报。它可以拆成当前一步奖励与下一时刻回报:
Gt=Rt+1+γRt+2+γ2Rt+3+⋯=Rt+1+γGt+1
Bellman Equation 的关键思想正是这种“一步展开”:一个状态的长期价值,等于即时奖励加上下一状态价值的折扣期望。
状态值函数(State Value Function)描述的是:当智能体处于状态 s,并且从现在开始一直按照策略 π 行动时,能够获得的期望折扣回报:
Vπ(s)=Eπ[Gt∣St=s]
这里的上标 π 表明价值取决于所执行的策略。同一个状态在不同策略下可能拥有不同的价值。例如,在一个迷宫中,状态 s 可能既能通过较短路径到达终点,也能通过较长路径到达终点;策略不同,未来回报的期望也不同。
Gt 和 Vπ(s) 都与“从时刻 t 开始的回报”有关,但它们不是同一个量:
| 量 | 含义 | 是否随机 |
|---|
| Gt | 某一次具体轨迹从 t 开始实际得到的折扣回报 | 通常是 |
| Vπ(s) | 在状态 s 下遵循策略 π 时,所有可能回报的期望 | 是一个期望值 |
即使当前状态相同,之后仍可能因为动作选择具有随机性,或者环境转移具有随机性,而得到不同的 Gt。状态值函数就是对这些可能的回报进行平均:
Vπ(s)=Eπ[Gt∣St=s]
因此,Bellman Equation 不是在描述某一条具体轨迹,而是在描述所有状态的期望价值之间的递归关系。它把“最大化完整长期回报”的目标,转化为“即时奖励加上下一状态价值”的局部计算。
下面对状态值函数进行逐步推导。假设当前时刻已经处于状态 s,并且之后始终遵循策略 π。
Vπ(s)=Eπ[Gt∣St=s]
利用回报的递归关系 Gt=Rt+1+γGt+1:
Vπ(s)=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1+γEπ[Gt+1∣St+1]∣St=s]
根据状态值函数的定义:
Eπ[Gt+1∣St+1=s′]=Vπ(s′)
这里使用了马尔可夫性质:给定下一状态 St+1 后,未来回报只与这个状态以及后续策略有关,而不再依赖更早的历史。
因此:
Vπ(s)=Eπ[Rt+1+γVπ(St+1)∣St=s]
这就是 Bellman 期望方程的紧凑形式。
当处于状态 s 时,策略 π 以概率 π(a∣s) 选择动作 a。因此需要对所有可能动作求期望:
Vπ(s)=a∑π(a∣s)E[Rt+1+γVπ(St+1)∣St=s,At=a]
执行动作 a 后,环境可能转移到不同的下一状态 s′,并产生不同的奖励 r。用联合概率
p(s′,r∣s,a)=P(St+1=s′,Rt+1=r∣St=s,At=a)
表示这种转移,则:
Vπ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γVπ(s′)]
这就是有限离散 MDP 中状态值函数的 Bellman 期望方程。它包含两层平均:
- 对策略可能选择的动作 a 按 π(a∣s) 加权。
- 对环境可能产生的 (s′,r) 按 p(s′,r∣s,a) 加权。
如果状态或奖励是连续变量,求和相应替换为积分:
Vπ(s)=a∑π(a∣s)∫∫p(s′,r∣s,a)[r+γVπ(s′)]drds′
对于终止状态,通常约定:
Vπ(sterminal)=0
这样最后一步的价值只包含到达终止状态前获得的奖励。
动作值函数(Action Value Function,也称 Q 函数)描述的是:当前处于状态 s 时,先固定执行动作 a,然后从下一步开始按照策略 π 行动时的期望折扣回报:
Qπ(s,a)=Eπ[Gt∣St=s,At=a]
与 State Value 相比,Action Value 多指定了当前动作。因此:
- Vπ(s) 回答“处于状态 s 时,按照策略行动,平均能得到多少回报?”
- Qπ(s,a) 回答“处于状态 s 时,如果现在执行动作 a,之后按照策略行动,平均能得到多少回报?”
Action Value 可以直接比较同一状态下不同动作的好坏,因此在控制问题中尤其重要。
从定义开始:
Qπ(s,a)=Eπ[Gt∣St=s,At=a]
展开 Gt:
Qπ(s,a)=E[Rt+1+γGt+1∣St=s,At=a]=E[Rt+1+γVπ(St+1)∣St=s,At=a]
注意,这里当前动作 At=a 已经被固定,因此不需要再对当前动作按照 π(a∣s) 求平均。只需要对环境产生的奖励和下一状态求平均:
Qπ(s,a)=s′,r∑p(s′,r∣s,a)[r+γVπ(s′)]
再把下一状态的 State Value 展开:
Vπ(s′)=a′∑π(a′∣s′)Qπ(s′,a′)
可以得到只使用 Action Value 表示的形式:
Qπ(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′∑π(a′∣s′)Qπ(s′,a′)]
由于策略在状态 s 下以概率 π(a∣s) 选择动作 a,状态值就是所有动作值的策略加权平均:
Vπ(s)=a∑π(a∣s)Qπ(s,a)
反过来,动作值可以理解为固定第一步动作后的价值:
Qπ(s,a)=E[Rt+1+γVπ(St+1)∣St=s,At=a]
两者的区别可以概括为:
| 函数 | 当前动作是否固定 | 主要用途 |
|---|
| Vπ(s) | 否,由策略进行平均 | 评价一个状态 |
| Qπ(s,a) | 是,固定为 a | 比较同一状态下的动作 |
如果策略是确定性的,即 At=π(s),则:
Vπ(s)=Qπ(s,π(s))
如果策略是随机的,则需要对所有可能动作进行加权平均。
定义策略 π 对应的 Bellman 算子:
(TπV)(s)=Eπ[Rt+1+γV(St+1)∣St=s]
Bellman 方程可以写成不动点形式:
Vπ=TπVπ
当 γ<1 时,Tπ 在最大范数下是压缩映射:
∥TπV−TπU∥∞≤γ∥V−U∥∞
因此它具有唯一不动点。从任意初始值函数开始反复应用该算子,都会收敛到 Vπ。
对有限状态 MDP,若 Pπ 是策略诱导的状态转移矩阵,rπ 是期望即时奖励向量,则:
Vπ=rπ+γPπVπ
理论上可以直接求解:
Vπ=(I−γPπ)−1rπ
但状态数量很大时,矩阵求逆代价高且可能无法存储,因此实践中更常使用迭代方法或采样方法。
Bellman Equation 将一个无限时间跨度的目标转化为局部的一步递归关系。动态规划、Monte Carlo、Temporal-Difference Learning 以及许多深度强化学习算法,都可以看作是在用不同方式逼近这个方程的解。