Personal Knowledge Base

A long-term research and learning notebook for posts, notes, papers, projects, and research directions.

Skip to content
← Back to notes

强化学习 02:Bellman Equation

推导策略值函数的 Bellman 期望方程,理解一步奖励与后续价值之间的递归关系。

9 min read

从回报的递归形式开始

回报(Return)可以用来判断一条轨迹的长期表现。为了让更远的奖励影响逐渐减弱,我们通常使用折扣回报。它可以拆成当前一步奖励与下一时刻回报:

Gt=Rt+1+γRt+2+γ2Rt+3+=Rt+1+γGt+1\begin{aligned} G_t &=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\cdots \\ &=R_{t+1}+\gamma G_{t+1} \end{aligned}

Bellman Equation 的关键思想正是这种“一步展开”:一个状态的长期价值,等于即时奖励加上下一状态价值的折扣期望。

State Value

定义

状态值函数(State Value Function)描述的是:当智能体处于状态 ss,并且从现在开始一直按照策略 π\pi 行动时,能够获得的期望折扣回报:

Vπ(s)=Eπ[GtSt=s]V^\pi(s) =\mathbb{E}_\pi\left[G_t\mid S_t=s\right]

这里的上标 π\pi 表明价值取决于所执行的策略。同一个状态在不同策略下可能拥有不同的价值。例如,在一个迷宫中,状态 ss 可能既能通过较短路径到达终点,也能通过较长路径到达终点;策略不同,未来回报的期望也不同。

GtG_t 与 State Value 的区别

GtG_tVπ(s)V^\pi(s) 都与“从时刻 tt 开始的回报”有关,但它们不是同一个量:

含义是否随机
GtG_t某一次具体轨迹从 tt 开始实际得到的折扣回报通常是
Vπ(s)V^\pi(s)在状态 ss 下遵循策略 π\pi 时,所有可能回报的期望是一个期望值

即使当前状态相同,之后仍可能因为动作选择具有随机性,或者环境转移具有随机性,而得到不同的 GtG_t。状态值函数就是对这些可能的回报进行平均:

Vπ(s)=Eπ[GtSt=s]V^\pi(s) =\mathbb{E}_\pi[G_t\mid S_t=s]

因此,Bellman Equation 不是在描述某一条具体轨迹,而是在描述所有状态的期望价值之间的递归关系。它把“最大化完整长期回报”的目标,转化为“即时奖励加上下一状态价值”的局部计算。

状态值函数的 Bellman 期望方程

下面对状态值函数进行逐步推导。假设当前时刻已经处于状态 ss,并且之后始终遵循策略 π\pi

第一步:从状态值定义出发

Vπ(s)=Eπ[GtSt=s]V^\pi(s) =\mathbb{E}_\pi\left[G_t\mid S_t=s\right]

第二步:展开回报

利用回报的递归关系 Gt=Rt+1+γGt+1G_t=R_{t+1}+\gamma G_{t+1}

Vπ(s)=Eπ[Rt+1+γGt+1St=s]=Eπ[Rt+1+γEπ[Gt+1St+1]St=s]\begin{aligned} V^\pi(s) &=\mathbb{E}_\pi \left[ R_{t+1}+\gamma G_{t+1} \mid S_t=s \right] \\ &=\mathbb{E}_\pi \left[ R_{t+1} +\gamma\, \mathbb{E}_\pi[G_{t+1}\mid S_{t+1}] \mid S_t=s \right] \end{aligned}

根据状态值函数的定义:

Eπ[Gt+1St+1=s]=Vπ(s)\mathbb{E}_\pi[G_{t+1}\mid S_{t+1}=s'] =V^\pi(s')

这里使用了马尔可夫性质:给定下一状态 St+1S_{t+1} 后,未来回报只与这个状态以及后续策略有关,而不再依赖更早的历史。

因此:

Vπ(s)=Eπ[Rt+1+γVπ(St+1)St=s]V^\pi(s) =\mathbb{E}_\pi \left[ R_{t+1}+\gamma V^\pi(S_{t+1}) \mid S_t=s \right]

这就是 Bellman 期望方程的紧凑形式。

第三步:对策略选择的动作求平均

当处于状态 ss 时,策略 π\pi 以概率 π(as)\pi(a\mid s) 选择动作 aa。因此需要对所有可能动作求期望:

Vπ(s)=aπ(as)E[Rt+1+γVπ(St+1)St=s,At=a]V^\pi(s) =\sum_a\pi(a\mid s) \mathbb{E} \left[ R_{t+1}+\gamma V^\pi(S_{t+1}) \mid S_t=s,A_t=a \right]

第四步:对环境转移和奖励求平均

执行动作 aa 后,环境可能转移到不同的下一状态 ss',并产生不同的奖励 rr。用联合概率

p(s,rs,a)=P(St+1=s,Rt+1=rSt=s,At=a)p(s',r\mid s,a) =P(S_{t+1}=s',R_{t+1}=r\mid S_t=s,A_t=a)

表示这种转移,则:

Vπ(s)=aπ(as)s,rp(s,rs,a)[r+γVπ(s)]\boxed{ V^\pi(s) =\sum_a\pi(a\mid s) \sum_{s',r}p(s',r\mid s,a) \left[ r+\gamma V^\pi(s') \right] }

这就是有限离散 MDP 中状态值函数的 Bellman 期望方程。它包含两层平均:

  1. 对策略可能选择的动作 aaπ(as)\pi(a\mid s) 加权。
  2. 对环境可能产生的 (s,r)(s',r)p(s,rs,a)p(s',r\mid s,a) 加权。

如果状态或奖励是连续变量,求和相应替换为积分:

Vπ(s)=aπ(as)p(s,rs,a)[r+γVπ(s)]drdsV^\pi(s) =\sum_a\pi(a\mid s) \int\int p(s',r\mid s,a) \left[r+\gamma V^\pi(s')\right] \,dr\,ds'

对于终止状态,通常约定:

Vπ(sterminal)=0V^\pi(s_{\text{terminal}})=0

这样最后一步的价值只包含到达终止状态前获得的奖励。

Action Value

定义

动作值函数(Action Value Function,也称 QQ 函数)描述的是:当前处于状态 ss 时,先固定执行动作 aa,然后从下一步开始按照策略 π\pi 行动时的期望折扣回报:

Qπ(s,a)=Eπ[GtSt=s,At=a]Q^\pi(s,a) =\mathbb{E}_\pi \left[ G_t\mid S_t=s,A_t=a \right]

与 State Value 相比,Action Value 多指定了当前动作。因此:

  • Vπ(s)V^\pi(s) 回答“处于状态 ss 时,按照策略行动,平均能得到多少回报?”
  • Qπ(s,a)Q^\pi(s,a) 回答“处于状态 ss 时,如果现在执行动作 aa,之后按照策略行动,平均能得到多少回报?”

Action Value 可以直接比较同一状态下不同动作的好坏,因此在控制问题中尤其重要。

Action Value 的 Bellman 期望方程推导

从定义开始:

Qπ(s,a)=Eπ[GtSt=s,At=a]Q^\pi(s,a) =\mathbb{E}_\pi \left[ G_t\mid S_t=s,A_t=a \right]

展开 GtG_t

Qπ(s,a)=E[Rt+1+γGt+1St=s,At=a]=E[Rt+1+γVπ(St+1)St=s,At=a]\begin{aligned} Q^\pi(s,a) &=\mathbb{E} \left[ R_{t+1}+\gamma G_{t+1} \mid S_t=s,A_t=a \right] \\ &=\mathbb{E} \left[ R_{t+1}+\gamma V^\pi(S_{t+1}) \mid S_t=s,A_t=a \right] \end{aligned}

注意,这里当前动作 At=aA_t=a 已经被固定,因此不需要再对当前动作按照 π(as)\pi(a\mid s) 求平均。只需要对环境产生的奖励和下一状态求平均:

Qπ(s,a)=s,rp(s,rs,a)[r+γVπ(s)]\boxed{ Q^\pi(s,a) =\sum_{s',r}p(s',r\mid s,a) \left[ r+\gamma V^\pi(s') \right] }

再把下一状态的 State Value 展开:

Vπ(s)=aπ(as)Qπ(s,a)V^\pi(s') =\sum_{a'}\pi(a'\mid s')Q^\pi(s',a')

可以得到只使用 Action Value 表示的形式:

Qπ(s,a)=s,rp(s,rs,a)[r+γaπ(as)Qπ(s,a)]\boxed{ Q^\pi(s,a) =\sum_{s',r}p(s',r\mid s,a) \left[ r+\gamma \sum_{a'}\pi(a'\mid s')Q^\pi(s',a') \right] }

State Value 与 Action Value 的关系

由于策略在状态 ss 下以概率 π(as)\pi(a\mid s) 选择动作 aa,状态值就是所有动作值的策略加权平均:

Vπ(s)=aπ(as)Qπ(s,a)\boxed{ V^\pi(s) =\sum_a\pi(a\mid s)Q^\pi(s,a) }

反过来,动作值可以理解为固定第一步动作后的价值:

Qπ(s,a)=E[Rt+1+γVπ(St+1)St=s,At=a]Q^\pi(s,a) =\mathbb{E} \left[ R_{t+1}+\gamma V^\pi(S_{t+1}) \mid S_t=s,A_t=a \right]

两者的区别可以概括为:

函数当前动作是否固定主要用途
Vπ(s)V^\pi(s)否,由策略进行平均评价一个状态
Qπ(s,a)Q^\pi(s,a)是,固定为 aa比较同一状态下的动作

如果策略是确定性的,即 At=π(s)A_t=\pi(s),则:

Vπ(s)=Qπ(s,π(s))V^\pi(s)=Q^\pi(s,\pi(s))

如果策略是随机的,则需要对所有可能动作进行加权平均。

Bellman 算子与不动点

定义策略 π\pi 对应的 Bellman 算子:

(TπV)(s)=Eπ[Rt+1+γV(St+1)St=s](\mathcal{T}^\pi V)(s) =\mathbb{E}_\pi \left[R_{t+1}+\gamma V(S_{t+1})\mid S_t=s\right]

Bellman 方程可以写成不动点形式:

Vπ=TπVπV^\pi=\mathcal{T}^\pi V^\pi

γ<1\gamma<1 时,Tπ\mathcal{T}^\pi 在最大范数下是压缩映射:

TπVTπUγVU\|\mathcal{T}^\pi V-\mathcal{T}^\pi U\|_\infty \le \gamma\|V-U\|_\infty

因此它具有唯一不动点。从任意初始值函数开始反复应用该算子,都会收敛到 VπV^\pi

矩阵形式

对有限状态 MDP,若 PπP^\pi 是策略诱导的状态转移矩阵,rπr^\pi 是期望即时奖励向量,则:

Vπ=rπ+γPπVπV^\pi=r^\pi+\gamma P^\pi V^\pi

理论上可以直接求解:

Vπ=(IγPπ)1rπV^\pi=(I-\gamma P^\pi)^{-1}r^\pi

但状态数量很大时,矩阵求逆代价高且可能无法存储,因此实践中更常使用迭代方法或采样方法。

Bellman 方程的作用

Bellman Equation 将一个无限时间跨度的目标转化为局部的一步递归关系。动态规划、Monte Carlo、Temporal-Difference Learning 以及许多深度强化学习算法,都可以看作是在用不同方式逼近这个方程的解。

Related Posts