本文承接第一篇:MDP 与强化学习基础,回答一个问题:如果环境模型 P、R 完全已知,如何精确地评价一个策略、并求出最优策略? 这是理解后续无模型方法的理想参照系。
一、记号回顾#
- St,At,Rt,St+1 是随机变量,s,a,r,s′ 是它们的具体取值;
- π(a∣s) 是策略,p(s′∣s,a) 是状态转移概率;
- rˉ(s,a)=E[Rt∣St=s,At=a] 是平均即时奖励;
- 0≤γ<1 是折扣因子;
- 终止状态不再产生后续奖励,若下一状态是终止状态,则后续价值项取 0。
有限离散状态下求和遍历所有 a、r、s′;连续场景把求和换成积分即可。
二、从回报到价值函数#
上一篇给出了回报的定义 Gt=Rt+γRt+1+γ2Rt+2+⋯ 以及递推关系 Gt=Rt+γGt+1。但由于策略和环境都有随机性,同一个状态出发每次得到的 Gt 并不相同,所以用 回报的期望 来定义价值。
1. 状态价值函数#
固定策略 π 后,状态 s 的状态价值函数(state-value function) 定义为回报的期望:
Vπ(s)=Eπ[Gt∣St=s].它回答:从状态 s 出发,之后一直按策略 π 行动,能得到的期望折扣回报是多少? 价值必须带策略上标,因为同一状态用不同策略,未来回报通常不同。
2. 动作价值函数#
固定策略 π 后,状态—动作对 (s,a) 的动作价值函数(action-value function) 为:
Qπ(s,a)=Eπ[Gt∣St=s,At=a].它回答:在 s 先执行动作 a,之后按策略 π 行动,能得到的期望折扣回报是多少? 如果不考虑具体动作,那么 Vπ(s) 就相当于对 Qπ(s,a) 按策略取期望。状态价值和动作价值的关系为:
Vπ(s)=Eπ[Q(s,a)]=a∈A(s)∑π(a∣s)Qπ(s,a), Q 比 V 更重要
V 只能告诉”这个状态大概值多少分”,不能直接指导选哪个动作;Q 可以在同一状态下直接比较 Q(s,a1),Q(s,a2),…,选最大的那个。所以决策阶段几乎都用 Q。
三、价值与贝尔曼期望方程#
贝尔曼方程表达的是:当前价值 = 当前一步的期望奖励 + 下一状态价值的折扣。能搓出来这么一坨的根源在于回报 Gt 的递推关系 Gt=Rt+γGt+1,套上条件期望,再借马尔可夫性做一步条件替换。
1. 状态价值的贝尔曼方程#
从状态价值函数的定义出发,先用回报递推和期望的线性性把”当前一步”和”未来”拆开:
Vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+γGt+1∣St=s]=当前一步Eπ[Rt∣St=s]+γ未来Eπ[Gt+1∣St=s].(定义)(回报递推)(线性性)两项分别落地,需要把 Eπ 换成具体的表达式。
- 当前一步按策略 π 选动作 a(乘 π(a∣s) )、再取平均奖励:
Eπ[Rt∣St=s]=a∑π(a∣s)rˉ(s,a).
- 未来项要先按 π 选动作 a、再按 p 转移到 s′,然后把条件从 St=s 换成 St+1=s′:
Eπ[Gt+1∣St=s]=a∑π(a∣s)s′∑p(s′∣s,a)=Vπ(s′)Eπ[Gt+1∣St+1=s′]
这一步正是马尔可夫性在起作用:给定 s′ 之后,Gt+1 的期望与”你从哪个 s 来”无关,于是塌缩成 Vπ(s′)。没有马尔可夫性,这个条件替换不成立,贝尔曼方程也就写不出来。
放一块发现可以提出 ∑aπ(a∣s),得到状态价值的贝尔曼期望方程:
Vπ(s)=a∑π(a∣s)[rˉ(s,a)+γs′∑p(s′∣s,a)Vπ(s′)].理解层次:先按 p(s′∣s,a) 加权,表示状态转移可能到不同的状态,再按 π(a∣s) 对动作加权,表示按策略选动作。若 s′ 是终止状态,约定 Vπ(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′)]① 平均奖励(正文采用)② 转移绑定(教材常见)③ 联合分布(最一般)三者靠一条全期望公式互相换算:
rˉ(s,a)=s′∑p(s′∣s,a)R(s,a,s′)=r∑rp(r∣s,a)其中 R(s,a,s′)=E[Rt∣St=s,At=a,St+1=s′]。③ 最一般,不要求奖励与下一状态独立;Q、v∗、q∗ 的方程同理,之后正文一律用 ①。
(有的教材把“执行 At 后得到的奖励”记作 Rt+1,回报随之写成 Gt=Rt+1+γRt+2+⋯;本文沿用第一篇的 Rt 记法,两者只差一位下标平移,方程形状不变。)
2. 动作价值的贝尔曼方程#
把动作也固定住,推理与上一小节完全平行:条件从 St=s 细化为 St=s,At=a,未来项除了按 p 转移到 s′,还要再按 π 选出 a′:
Qπ(s,a)=Eπ[Gt∣St=s,At=a]=rˉ(s,a)+γs′∑p(s′∣s,a)a′∑π(a′∣s′)Qπ(s′,a′).把内层的 ∑a′π(a′∣s′)Qπ(s′,a′) 认出来——它就是 Vπ(s′)——方程立刻折成与 V 直接相连的紧凑形式:
Qπ(s,a)=rˉ(s,a)+γs′∑p(s′∣s,a)Vπ(s′).对第一式两边按 π(a∣s) 加权求和,左边恰好是 Vπ(s),右边还原出的就是上一小节的 V 方程——两节推导的其实是同一个递推,Q 版只是条件里多固定了一个动作。
四、矩阵形式与动态规划#
固定策略 π 后,动作被策略的随机性平均掉,MDP 退化为一个没有动作的马尔可夫奖励过程(MRP),此时贝尔曼方程可以写成矩阵形式——本质上就是把 n 个状态的贝尔曼方程当成一个 n 元一次方程组一次解掉。前提是状态空间有限、能编号,设 S={s1,…,sn},默认用列向量:
| 对象 | 符号 | 形状 | 第 i 个分量 |
|---|
| 价值向量 | v | n×1 | vi=Vπ(si) |
| 奖励向量 | r | n×1 | ri=rˉ(si)=∑aπ(a∣si)rˉ(si,a) |
| 转移矩阵 | P | n×n | Pij=pπ(sj∣si) |
| 单位矩阵 | I | n×n | Iii=1,其余 0 |
(连续或可数无限状态摊不成 n×n 的表,只能用第六节末的算子视角描述。)
P 的形状:行是”从哪”,列是”到哪”#
第 i 行就是”从 si 出发、一步后落到各状态”的概率分布,每行之和为 1:
j=1∑nPij=j=1∑npπ(sj∣si)=1,Pij≥0.它一般不对称(Pij=Pji)——从 A 能到 B,不代表从 B 能到 A。
P 是策略诱导的:每个元素里已经把”策略选动作”和”环境转状态”两层随机性乘好、并对动作求和,
Pij=pπ(sj∣si)=a∑π(a∣si)p(sj∣si,a),也就是说策略选动作与环境转状态这两层随机性都被收进了 P 这一个符号。
奖励向量的形状#
奖励向量同理按策略加权
ri=rˉ(si)=a∑π(a∣si)rˉ(si,a)(带动作的 rˉ(si,a) 对策略求期望后记为 rˉ(si))。(终止状态一般不放进方程组,等价于取其 vi=0。)
对于奖励和动作无关的简化情形,rˉ(si,a)=rˉ(si),就不必对动作求和了。
一步贝尔曼 = 一次矩阵乘法#
形状上 (n×n)⋅(n×1)=n×1,还是列向量。展开第 i 个分量:
(Pv)i=j=1∑nPijvj=j∑pπ(sj∣si)Vπ(sj),正好是贝尔曼方程右边那个”下一状态的折扣期望价值”。于是
v=r+γPv⟺vi=ri+γj∑Pijvj(对每个 i),形状 (n×1)=(n×1)+γ(n×n)(n×1) 自洽。它只是把标量方程 Vπ(s)=rˉ(s)+γ∑s′pπ(s′∣s)Vπ(s′) 竖着堆了 n 遍。
求解:求逆 = 把所有时间步加起来#
移项(I 与 γP 同形状才能相减):
v=r+γPv⟹v−γPv=r⟹(I−γP)v=r.γ<1 且 P 每行和为 1(谱半径 ≤1)保证 I−γP 可逆,理论上的精确解为
v=(I−γP)−1r,(I−γP)−1(n×n)⋅r(n×1)→n×1.把逆矩阵展开成几何级数(Neumann 级数)(I−γP)−1=I+γP+γ2P2+⋯,代回去得:
v=r+γPr+γ2P2r+γ3P3r+⋯第 k 项 γkPkr 是”从各状态出发、k 步后领到奖励”的期望,正好与回报 Gt=Rt+γRt+1+γ2Rt+2+⋯ 逐项对应。矩阵求逆就是把未来所有时间步的奖励折扣求和。 也正因为 γk→0 级数才收敛,(I−γP)−1 才存在。
不过状态数很大时显式求逆的计算和存储代价都很高,所以矩阵求逆主要用于理论分析,实践中用下面的迭代法。
贝尔曼更新与自举#
给定价值估计 vk,用它计算下一次估计:
vk+1(s)=rˉ(s)+γs′∑pπ(s′∣s)vk(s′).用后继状态当前的估计来更新当前状态的估计,这种”用估计更新估计”的思想称为自举(bootstrapping)——它是后续 TD 方法的核心。
迭代策略评估#
输入:已知的 MDP 模型、策略 π、折扣因子 γ
[r̄(s,a) + γ Σ_{s'} p(s'|s,a) v(s')]
直到 max_s |v_new(s) - v(s)| < ε
在有限状态、有限动作且 0≤γ<1 时,贝尔曼期望算子是压缩映射,迭代收敛到唯一的 vπ。该方法需要知道奖励和转移模型,属于基于模型(model-based) 的动态规划方法。
五、最优价值函数与贝尔曼最优方程#
1. 最优价值函数#
在所有策略中,状态 s 能达到的最大价值定义为:
v∗(s)=πmaxvπ(s),q∗(s,a)=πmaxqπ(s,a).q∗(s,a) 表示先在 (s,a) 执行动作,然后从后续状态开始采取最优行为。
2. 贝尔曼最优方程#
与期望方程的区别在于:把”按策略对动作取期望”换成”对动作取最大”。
v∗(s)=a∈A(s)max[rˉ(s,a)+γs′∑p(s′∣s,a)v∗(s′)],q∗(s,a)=rˉ(s,a)+γs′∑p(s′∣s,a)a′∈A(s′)maxq∗(s′,a′),并且 v∗(s)=maxaq∗(s,a)。
3. 最优策略#
一旦有了 q∗,最优策略直接读出来——任意满足下式的策略都是最优的:
π∗(a∣s)>0仅当a∈arga′∈A(s)maxq∗(s,a′).最简单的确定性贪心策略为:
π∗(s)∈arga∈A(s)maxq∗(s,a).在有限状态—动作空间、γ<1 或满足适当终止条件时,最优值函数存在且唯一;但最优策略不一定唯一:若多个动作的 q∗(s,a) 相同,它们都可组成最优策略。
六、四种形式的统一内核#
到这里已经见过好几个贝尔曼方程:Vπ、Qπ、v∗、q∗,还有联合分布展开式、平均奖励紧凑式、矩阵式……看起来很多,容易乱。但它们全部来自同一个公式——回报递推 Gt=Rt+γGt+1 套上条件期望,再借马尔可夫性做那一步条件替换。
最主要的四个方程可以用两个维度定位——评价对象(V 还是 Q)× 动作算子(按 π 加权 ∑aπ,还是取 maxa):
| 期望方程(按 π 加权,评价固定策略) | 最优方程(取 max,求最优) |
|---|
| V(s) | Vπ(s)=∑aπ(a∣s)[rˉ(s,a)+γ∑s′p(s′∣s,a)Vπ(s′)] | v∗(s)=maxa[rˉ(s,a)+γ∑s′p(s′∣s,a)v∗(s′)] |
| Q(s,a) | Qπ(s,a)=rˉ(s,a)+γ∑s′p(s′∣s,a)∑a′π(a′∣s′)Qπ(s′,a′) | q∗(s,a)=rˉ(s,a)+γ∑s′p(s′∣s,a)maxa′q∗(s′,a′) |
- 竖看:期望方程与最优方程唯一的区别,就是把 ∑aπ(a∣s) 换成 maxa;横看:V 与 Q 之间用 Vπ(s)=∑aπQπ(s,a)、v∗(s)=maxaq∗(s,a) 互转。
这个”∑aπ vs maxa“的差别不只是记号,它决定了求解方式,也一路影响到后面两篇:
| 期望方程 | 最优方程 |
|---|
| 对动作的操作 | ∑aπ(a∣s)(加权平均) | maxa |
| 是否线性 | 线性——可写成 v=r+γPv,能矩阵求逆一步解 | 非线性(max 不可导、不可矩阵求逆)——只能迭代 |
| 对应任务 | 策略评价(第三篇被动 RL) | 策略控制(第四篇主动 RL) |
| 对应算法目标 | SARSA 的目标(带 π 选出的 a′) | Q-learning 的目标(带 maxa′) |
上面每个格子内部,还能再换两种写法(同一个方程的不同排版):
-
奖励写法:平均奖励、转移绑定 R(s,a,s′)、联合分布三种等价长相的对照见第三节 1 小节的方框;正文统一用平均奖励写法。
-
表达层级(标量 ↔ 矩阵 ↔ 算子):同一组方程可以逐状态写成标量 V(s)=⋯,也可以把所有状态打包成矩阵 v=r+γPv(第四节),或抽象成算子 V=TπV——”Tπ 是压缩映射”直接给出迭代收敛性。层级越高越适合讲理论,越低越适合手算。
七、小结与下一步#
本篇建立了模型已知时的完整求解链条:
回报递推 Gt=Rt+γGt+1⟶Vπ,Qπ⟶贝尔曼期望方程⟶动态规划⟶贝尔曼最优方程⟶π∗.但这一切都依赖一个前提:转移概率 p(s′∣s,a) 和奖励分布是已知的。现实中环境模型通常未知,只能通过交互采样。下一篇被动强化学习将放松这个前提:在模型未知、但策略固定的情况下,如何仅从样本估计 Vπ。