3013 字
15 分钟
强化学习(二):价值函数与贝尔曼方程

本文承接第一篇:MDP 与强化学习基础,回答一个问题:如果环境模型 PP、RR 完全已知,如何精确地评价一个策略、并求出最优策略? 这是理解后续无模型方法的理想参照系。

一、记号回顾#

  • St,At,Rt,St+1S_t,A_t,R_t,S_{t+1} 是随机变量,s,a,r,s′s,a,r,s' 是它们的具体取值;
  • π(a∣s)\pi(a\mid s) 是策略,p(s′∣s,a)p(s'\mid s,a) 是状态转移概率;
  • rˉ(s,a)=E[Rt∣St=s,At=a]\bar r(s,a)=\mathbb{E}[R_t\mid S_t=s,A_t=a] 是平均即时奖励;
  • 0≤γ<10\le\gamma<1 是折扣因子;
  • 终止状态不再产生后续奖励,若下一状态是终止状态,则后续价值项取 00。

有限离散状态下求和遍历所有 aa、rr、s′s';连续场景把求和换成积分即可。

二、从回报到价值函数#

上一篇给出了回报的定义 Gt=Rt+γRt+1+γ2Rt+2+⋯G_t=R_t + \gamma R_{t+1}+\gamma^2 R_{t+2}+\cdots 以及递推关系 Gt=Rt+γGt+1G_t=R_t+\gamma G_{t+1}。但由于策略和环境都有随机性,同一个状态出发每次得到的 GtG_t 并不相同,所以用 回报的期望 来定义价值。

1. 状态价值函数#

固定策略 π\pi 后,状态 ss 的状态价值函数(state-value function) 定义为回报的期望:

Vπ(s)=Eπ[Gt∣St=s].V^\pi(s)=\mathbb{E}_\pi[G_t\mid S_t=s].

它回答:从状态 ss 出发,之后一直按策略 π\pi 行动,能得到的期望折扣回报是多少? 价值必须带策略上标,因为同一状态用不同策略,未来回报通常不同。

2. 动作价值函数#

固定策略 π\pi 后,状态—动作对 (s,a)(s,a) 的动作价值函数(action-value function) 为:

Qπ(s,a)=Eπ[Gt∣St=s,At=a].Q^\pi(s,a)=\mathbb{E}_\pi[G_t\mid S_t=s,A_t=a].

它回答:在 ss 先执行动作 aa,之后按策略 π\pi 行动,能得到的期望折扣回报是多少? 如果不考虑具体动作,那么 Vπ(s)V^\pi(s) 就相当于对 Qπ(s,a)Q^\pi(s,a) 按策略取期望。状态价值和动作价值的关系为:

Vπ(s)=Eπ[Q(s,a)]=∑a∈A(s)π(a∣s)Qπ(s,a),V^\pi(s)=\mathbb{E}_{\pi}[Q(s,a)]=\sum_{a\in\mathcal{A}(s)}\pi(a\mid s)Q^\pi(s,a),
Q 比 V 更重要

VV 只能告诉”这个状态大概值多少分”,不能直接指导选哪个动作;QQ 可以在同一状态下直接比较 Q(s,a1),Q(s,a2),…Q(s,a_1),Q(s,a_2),\dots,选最大的那个。所以决策阶段几乎都用 QQ。

三、价值与贝尔曼期望方程#

贝尔曼方程表达的是:当前价值 = 当前一步的期望奖励 + 下一状态价值的折扣。能搓出来这么一坨的根源在于回报 GtG_t 的递推关系 Gt=Rt+γGt+1G_t=R_t+\gamma G_{t+1},套上条件期望,再借马尔可夫性做一步条件替换。

1. 状态价值的贝尔曼方程#

从状态价值函数的定义出发,先用回报递推和期望的线性性把”当前一步”和”未来”拆开:

Vπ(s)=Eπ[Gt∣St=s](定义)=Eπ[Rt+γGt+1∣St=s](回报递推)=Eπ[Rt∣St=s]⏟当前一步+γEπ[Gt+1∣St=s]⏟未来.(线性性)\begin{aligned} V^\pi(s)&=\mathbb{E}_\pi[G_t\mid S_t=s] & &\text{(定义)}\\ &=\mathbb{E}_\pi[R_t+\gamma G_{t+1}\mid S_t=s] & &\text{(回报递推)}\\ &=\underbrace{\mathbb{E}_\pi[R_t\mid S_t=s]}_{\text{当前一步}} +\gamma\underbrace{\mathbb{E}_\pi[G_{t+1}\mid S_t=s]}_{\text{未来}}. & &\text{(线性性)} \end{aligned}

两项分别落地,需要把 Eπ\mathbb{E}_\pi 换成具体的表达式。

  • 当前一步按策略 π\pi 选动作 aa(乘 π(a∣s)\pi(a\mid s) )、再取平均奖励:
Eπ[Rt∣St=s]=∑aπ(a∣s) rˉ(s,a).\mathbb{E}_\pi[R_t\mid S_t=s]=\sum_a\pi(a\mid s)\,\bar r(s,a).
  • 未来项要先按 π\pi 选动作 aa、再按 pp 转移到 s′s',然后把条件从 St=sS_t=s 换成 St+1=s′S_{t+1}=s':
Eπ[Gt+1∣St=s]=∑aπ(a∣s)∑s′p(s′∣s,a) Eπ[Gt+1∣St+1=s′]⏟= Vπ(s′)\mathbb{E}_\pi[G_{t+1}\mid S_t=s] =\sum_a\pi(a\mid s)\sum_{s'}p(s'\mid s,a)\, \underbrace{\mathbb{E}_\pi[G_{t+1}\mid S_{t+1}=s']}_{=\,V^\pi(s')}

这一步正是马尔可夫性在起作用:给定 s′s' 之后,Gt+1G_{t+1} 的期望与”你从哪个 ss 来”无关,于是塌缩成 Vπ(s′)V^\pi(s')。没有马尔可夫性,这个条件替换不成立,贝尔曼方程也就写不出来。

放一块发现可以提出 ∑aπ(a∣s)\sum_a\pi(a\mid s),得到状态价值的贝尔曼期望方程:

Vπ(s)=∑aπ(a∣s)[rˉ(s,a)+γ∑s′p(s′∣s,a)Vπ(s′)].V^\pi(s)=\sum_a\pi(a\mid s) \left[\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)V^\pi(s')\right].

理解层次:先按 p(s′∣s,a)p(s'\mid s,a) 加权,表示状态转移可能到不同的状态,再按 π(a∣s)\pi(a\mid s) 对动作加权,表示按策略选动作。若 s′s' 是终止状态,约定 Vπ(s′)=0V^\pi(s')=0。

奖励的三种等价格式
Vπ(s)=∑aπ(a∣s)[rˉ(s,a)+γ∑s′p(s′∣s,a)Vπ(s′)]① 平均奖励(正文采用)=∑aπ(a∣s)∑s′p(s′∣s,a)[R(s,a,s′)+γVπ(s′)]② 转移绑定(教材常见)=∑aπ(a∣s)∑r,s′p(r,s′∣s,a)[r+γVπ(s′)]③ 联合分布(最一般)\begin{aligned} V^\pi(s) &=\sum_a\pi(a\mid s)\Big[\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)V^\pi(s')\Big] & &\text{① 平均奖励(正文采用)}\\ &=\sum_a\pi(a\mid s)\sum_{s'}p(s'\mid s,a)\big[R(s,a,s')+\gamma V^\pi(s')\big] & &\text{② 转移绑定(教材常见)}\\ &=\sum_a\pi(a\mid s)\sum_{r,s'}p(r,s'\mid s,a)\big[r+\gamma V^\pi(s')\big] & &\text{③ 联合分布(最一般)} \end{aligned}

三者靠一条全期望公式互相换算:

rˉ(s,a)=∑s′p(s′∣s,a)R(s,a,s′)=∑rr p(r∣s,a)\bar r(s,a)=\sum_{s'}p(s'\mid s,a)R(s,a,s')=\sum_r r\,p(r\mid s,a)

其中 R(s,a,s′)=E[Rt∣St=s,At=a,St+1=s′]R(s,a,s')=\mathbb{E}[R_t\mid S_t=s,A_t=a,S_{t+1}=s']。③ 最一般,不要求奖励与下一状态独立;QQ、v∗v_*、q∗q_* 的方程同理,之后正文一律用 ①。

(有的教材把“执行 AtA_t 后得到的奖励”记作 Rt+1R_{t+1},回报随之写成 Gt=Rt+1+γRt+2+⋯G_t=R_{t+1}+\gamma R_{t+2}+\cdots;本文沿用第一篇的 RtR_t 记法,两者只差一位下标平移,方程形状不变。)

2. 动作价值的贝尔曼方程#

把动作也固定住,推理与上一小节完全平行:条件从 St=sS_t=s 细化为 St=s,At=aS_t=s,A_t=a,未来项除了按 pp 转移到 s′s',还要再按 π\pi 选出 a′a':

Qπ(s,a)=Eπ[Gt∣St=s,At=a]=rˉ(s,a)+γ∑s′p(s′∣s,a)∑a′π(a′∣s′)Qπ(s′,a′).\begin{aligned} Q^\pi(s,a) &=\mathbb{E}_\pi[G_t\mid S_t=s,A_t=a]\\ &=\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)\sum_{a'}\pi(a'\mid s')Q^\pi(s',a'). \end{aligned}

把内层的 ∑a′π(a′∣s′)Qπ(s′,a′)\sum_{a'}\pi(a'\mid s')Q^\pi(s',a') 认出来——它就是 Vπ(s′)V^\pi(s')——方程立刻折成与 VV 直接相连的紧凑形式:

Qπ(s,a)=rˉ(s,a)+γ∑s′p(s′∣s,a)Vπ(s′).Q^\pi(s,a)=\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)V^\pi(s').

对第一式两边按 π(a∣s)\pi(a\mid s) 加权求和,左边恰好是 Vπ(s)V^\pi(s),右边还原出的就是上一小节的 VV 方程——两节推导的其实是同一个递推,QQ 版只是条件里多固定了一个动作。

四、矩阵形式与动态规划#

固定策略 π\pi 后,动作被策略的随机性平均掉,MDP 退化为一个没有动作的马尔可夫奖励过程(MRP),此时贝尔曼方程可以写成矩阵形式——本质上就是把 nn 个状态的贝尔曼方程当成一个 nn 元一次方程组一次解掉。前提是状态空间有限、能编号,设 S={s1,…,sn}\mathcal{S}=\{s_1,\dots,s_n\},默认用列向量:

对象符号形状第 ii 个分量
价值向量vvn×1n\times1vi=Vπ(si)v_i=V^\pi(s_i)
奖励向量rrn×1n\times1ri=rˉ(si)=∑aπ(a∣si)rˉ(si,a)r_i=\bar r(s_i)=\sum_a\pi(a\mid s_i)\bar r(s_i,a)
转移矩阵PPn×nn\times nPij=pπ(sj∣si)P_{ij}=p_\pi(s_j\mid s_i)
单位矩阵IIn×nn\times nIii=1I_{ii}=1,其余 00

(连续或可数无限状态摊不成 n×nn\times n 的表,只能用第六节末的算子视角描述。)

PP 的形状:行是”从哪”,列是”到哪”#

第 ii 行就是”从 sis_i 出发、一步后落到各状态”的概率分布,每行之和为 11:

∑j=1nPij=∑j=1npπ(sj∣si)=1,Pij≥0.\sum_{j=1}^{n}P_{ij}=\sum_{j=1}^{n} p_\pi(s_j\mid s_i)=1,\qquad P_{ij}\ge0.

它一般不对称(Pij≠PjiP_{ij}\ne P_{ji})——从 A 能到 B,不代表从 B 能到 A。

PP 是策略诱导的:每个元素里已经把”策略选动作”和”环境转状态”两层随机性乘好、并对动作求和,

Pij=pπ(sj∣si)=∑aπ(a∣si) p(sj∣si,a),P_{ij}=p_\pi(s_j\mid s_i)=\sum_a\pi(a\mid s_i)\,p(s_j\mid s_i,a),

也就是说策略选动作与环境转状态这两层随机性都被收进了 PP 这一个符号。

奖励向量的形状#

奖励向量同理按策略加权

ri=rˉ(si)=∑aπ(a∣si)rˉ(si,a)r_i=\bar r(s_i)=\sum_a\pi(a\mid s_i)\bar r(s_i,a)

(带动作的 rˉ(si,a)\bar r(s_i,a) 对策略求期望后记为 rˉ(si)\bar r(s_i))。(终止状态一般不放进方程组,等价于取其 vi=0v_i=0。)

对于奖励和动作无关的简化情形,rˉ(si,a)=rˉ(si)\bar r(s_i,a)=\bar r(s_i),就不必对动作求和了。

一步贝尔曼 = 一次矩阵乘法#

形状上 (n×n)⋅(n×1)=n×1(n\times n)\cdot(n\times1)=n\times1,还是列向量。展开第 ii 个分量:

(Pv)i=∑j=1nPijvj=∑jpπ(sj∣si) Vπ(sj),(Pv)_i=\sum_{j=1}^{n}P_{ij}v_j=\sum_{j}p_\pi(s_j\mid s_i)\,V^\pi(s_j),

正好是贝尔曼方程右边那个”下一状态的折扣期望价值”。于是

v=r+γPv  ⟺  vi=ri+γ∑jPijvj(对每个 i),v=r+\gamma Pv \iff v_i=r_i+\gamma\sum_j P_{ij}v_j\quad(\text{对每个 }i),

形状 (n×1)=(n×1)+γ(n×n)(n×1)(n\times1)=(n\times1)+\gamma(n\times n)(n\times1) 自洽。它只是把标量方程 Vπ(s)=rˉ(s)+γ∑s′pπ(s′∣s)Vπ(s′)V^\pi(s)=\bar r(s)+\gamma\sum_{s'}p_\pi(s'\mid s)V^\pi(s') 竖着堆了 nn 遍。

求解:求逆 = 把所有时间步加起来#

移项(II 与 γP\gamma P 同形状才能相减):

v=r+γPv  ⟹  v−γPv=r  ⟹  (I−γP)v=r.v=r+\gamma Pv\;\Longrightarrow\;v-\gamma Pv=r\;\Longrightarrow\;(I-\gamma P)v=r.

γ<1\gamma<1 且 PP 每行和为 11(谱半径 ≤1\le1)保证 I−γPI-\gamma P 可逆,理论上的精确解为

v=(I−γP)−1r,(n×n)⏟(I−γP)−1⋅(n×1)⏟r→n×1.v=(I-\gamma P)^{-1}r, \qquad \underbrace{(n\times n)}_{(I-\gamma P)^{-1}}\cdot\underbrace{(n\times1)}_{r}\to n\times1.

把逆矩阵展开成几何级数(Neumann 级数)(I−γP)−1=I+γP+γ2P2+⋯(I-\gamma P)^{-1}=I+\gamma P+\gamma^2P^2+\cdots,代回去得:

v=r+γPr+γ2P2r+γ3P3r+⋯v=r+\gamma Pr+\gamma^2P^2r+\gamma^3P^3r+\cdots

第 kk 项 γkPkr\gamma^kP^kr 是”从各状态出发、kk 步后领到奖励”的期望,正好与回报 Gt=Rt+γRt+1+γ2Rt+2+⋯G_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+\cdots 逐项对应。矩阵求逆就是把未来所有时间步的奖励折扣求和。 也正因为 γk→0\gamma^k\to0 级数才收敛,(I−γP)−1(I-\gamma P)^{-1} 才存在。

不过状态数很大时显式求逆的计算和存储代价都很高,所以矩阵求逆主要用于理论分析,实践中用下面的迭代法。

贝尔曼更新与自举#

给定价值估计 vkv_k,用它计算下一次估计:

vk+1(s)=rˉ(s)+γ∑s′pπ(s′∣s)vk(s′).v_{k+1}(s)=\bar r(s)+\gamma\sum_{s'}p_\pi(s'\mid s)v_k(s').

用后继状态当前的估计来更新当前状态的估计,这种”用估计更新估计”的思想称为自举(bootstrapping)——它是后续 TD 方法的核心。

迭代策略评估#

输入:已知的 MDP 模型、策略 π、折扣因子 γ
初始化 v(s),例如全部设为 0
重复:
对每个非终止状态 s:
v_new(s) = Σ_a π(a|s)
[r̄(s,a) + γ Σ_{s'} p(s'|s,a) v(s')]
v ← v_new
直到 max_s |v_new(s) - v(s)| < ε
输出:v

在有限状态、有限动作且 0≤γ<10\le\gamma<1 时,贝尔曼期望算子是压缩映射,迭代收敛到唯一的 vπv_\pi。该方法需要知道奖励和转移模型,属于基于模型(model-based) 的动态规划方法。

五、最优价值函数与贝尔曼最优方程#

1. 最优价值函数#

在所有策略中,状态 ss 能达到的最大价值定义为:

v∗(s)=max⁡πvπ(s),q∗(s,a)=max⁡πqπ(s,a).v_*(s)=\max_\pi v_\pi(s), \qquad q_*(s,a)=\max_\pi q_\pi(s,a).

q∗(s,a)q_*(s,a) 表示先在 (s,a)(s,a) 执行动作,然后从后续状态开始采取最优行为。

2. 贝尔曼最优方程#

与期望方程的区别在于:把”按策略对动作取期望”换成”对动作取最大”。

v∗(s)=max⁡a∈A(s)[rˉ(s,a)+γ∑s′p(s′∣s,a)v∗(s′)],v_*(s)=\max_{a\in\mathcal{A}(s)} \left[\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)v_*(s')\right],q∗(s,a)=rˉ(s,a)+γ∑s′p(s′∣s,a)max⁡a′∈A(s′)q∗(s′,a′),q_*(s,a)=\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a) \max_{a'\in\mathcal{A}(s')}q_*(s',a'),

并且 v∗(s)=max⁡aq∗(s,a)v_*(s)=\max_{a}q_*(s,a)。

3. 最优策略#

一旦有了 q∗q_*,最优策略直接读出来——任意满足下式的策略都是最优的:

π∗(a∣s)>0仅当a∈arg⁡max⁡a′∈A(s)q∗(s,a′).\pi^*(a\mid s)>0 \quad\text{仅当}\quad a\in\arg\max_{a'\in\mathcal{A}(s)}q_*(s,a').

最简单的确定性贪心策略为:

π∗(s)∈arg⁡max⁡a∈A(s)q∗(s,a).\pi^*(s)\in\arg\max_{a\in\mathcal{A}(s)}q_*(s,a).

在有限状态—动作空间、γ<1\gamma<1 或满足适当终止条件时,最优值函数存在且唯一;但最优策略不一定唯一:若多个动作的 q∗(s,a)q_*(s,a) 相同,它们都可组成最优策略。

六、四种形式的统一内核#

到这里已经见过好几个贝尔曼方程:VπV^\pi、QπQ^\pi、v∗v_*、q∗q_*,还有联合分布展开式、平均奖励紧凑式、矩阵式……看起来很多,容易乱。但它们全部来自同一个公式——回报递推 Gt=Rt+γGt+1G_t=R_t+\gamma G_{t+1} 套上条件期望,再借马尔可夫性做那一步条件替换。

最主要的四个方程可以用两个维度定位——评价对象(VV 还是 QQ)× 动作算子(按 π\pi 加权 ∑aπ\sum_a\pi,还是取 max⁡a\max_a):

期望方程(按 π\pi 加权,评价固定策略)最优方程(取 max⁡\max,求最优)
V(s)V(s)Vπ(s)=∑aπ(a∣s)[rˉ(s,a)+γ∑s′p(s′∣s,a)Vπ(s′)]V^\pi(s)=\sum_a\pi(a\mid s)\big[\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)V^\pi(s')\big]v∗(s)=max⁡a[rˉ(s,a)+γ∑s′p(s′∣s,a)v∗(s′)]v_*(s)=\max_a\big[\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)v_*(s')\big]
Q(s,a)Q(s,a)Qπ(s,a)=rˉ(s,a)+γ∑s′p(s′∣s,a)∑a′π(a′∣s′)Qπ(s′,a′)Q^\pi(s,a)=\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)\sum_{a'}\pi(a'\mid s')Q^\pi(s',a')q∗(s,a)=rˉ(s,a)+γ∑s′p(s′∣s,a)max⁡a′q∗(s′,a′)q_*(s,a)=\bar r(s,a)+\gamma\sum_{s'}p(s'\mid s,a)\max_{a'}q_*(s',a')
  • 竖看:期望方程与最优方程唯一的区别,就是把 ∑aπ(a∣s)\sum_a\pi(a\mid s) 换成 max⁡a\max_a;横看:VV 与 QQ 之间用 Vπ(s)=∑aπQπ(s,a)V^\pi(s)=\sum_a\pi Q^\pi(s,a)、v∗(s)=max⁡aq∗(s,a)v_*(s)=\max_a q_*(s,a) 互转。

这个”∑aπ\sum_a\pi vs max⁡a\max_a“的差别不只是记号,它决定了求解方式,也一路影响到后面两篇:

期望方程最优方程
对动作的操作∑aπ(a∣s)\sum_a\pi(a\mid s)(加权平均)max⁡a\max_a
是否线性线性——可写成 v=r+γPvv=r+\gamma Pv,能矩阵求逆一步解非线性(max⁡\max 不可导、不可矩阵求逆)——只能迭代
对应任务策略评价(第三篇被动 RL)策略控制(第四篇主动 RL)
对应算法目标SARSA 的目标(带 π\pi 选出的 a′a')Q-learning 的目标(带 max⁡a′\max_{a'})

上面每个格子内部,还能再换两种写法(同一个方程的不同排版):

  • 奖励写法:平均奖励、转移绑定 R(s,a,s′)R(s,a,s')、联合分布三种等价长相的对照见第三节 1 小节的方框;正文统一用平均奖励写法。

  • 表达层级(标量 ↔ 矩阵 ↔ 算子):同一组方程可以逐状态写成标量 V(s)=⋯V(s)=\cdots,也可以把所有状态打包成矩阵 v=r+γPvv=r+\gamma Pv(第四节),或抽象成算子 V=TπVV=\mathcal T^\pi V——”Tπ\mathcal T^\pi 是压缩映射”直接给出迭代收敛性。层级越高越适合讲理论,越低越适合手算。

七、小结与下一步#

本篇建立了模型已知时的完整求解链条:

回报递推 Gt=Rt+γGt+1⟶Vπ,Qπ⟶贝尔曼期望方程⟶动态规划⟶贝尔曼最优方程⟶π∗.\text{回报递推 }G_t=R_t+\gamma G_{t+1} \longrightarrow V^\pi,Q^\pi \longrightarrow \text{贝尔曼期望方程} \longrightarrow \text{动态规划} \longrightarrow \text{贝尔曼最优方程} \longrightarrow \pi^*.

但这一切都依赖一个前提:转移概率 p(s′∣s,a)p(s'\mid s,a) 和奖励分布是已知的。现实中环境模型通常未知,只能通过交互采样。下一篇被动强化学习将放松这个前提:在模型未知、但策略固定的情况下,如何仅从样本估计 VπV^\pi。

强化学习(二):价值函数与贝尔曼方程
https://biscuit0613.github.io/posts/reinforcement-learning/rl_bellmanequation/
作者
Biscuit
发布于
2025-11-02
许可协议
CC BY-NC-SA 4.0
CSAPP_小数的表示
强化学习(三):被动强化学习与策略评价