Chapter 4 - Value Iteration and Policy Iteration
Chapter 4 - Value Iteration and Policy Iteration#
[!abstract] 本章导读
前三章建立了马尔可夫决策过程、Bellman 方程与 Bellman 最优方程。本章第一次把这些理论落实为能够寻找最优策略的具体算法。核心有三种:价值迭代(value iteration)、策略迭代(policy iteration)和截断策略迭代(truncated policy iteration)。三者都在“更新价值”和“更新策略”之间循环,只是策略评价的精确程度不同。理解它们之间的连续关系,是把握广义策略迭代(generalized policy iteration)的关键。
0. 本章知识结构#

图解: Chapter 4 位于“基础工具”与后续“算法/方法”之间。Chapter 3 已证明 Bellman 最优方程的解存在且唯一;本章据此给出第一批寻找最优策略的算法。Chapter 5 以后会把这里依赖系统模型的动态规划思想推广到无模型方法。
本章的逻辑主线是:
Bellman 最优方程⟶价值迭代⟶策略迭代⟶截断策略迭代⟶广义策略迭代.具体来说:
- 用压缩映射定理给出的迭代直接求解 Bellman 最优方程,得到价值迭代。
- 把“先准确评价当前策略,再贪心改进策略”组织为策略迭代。
- 比较两者后发现,它们只是策略评价迭代次数的两个极端。
- 在两个极端之间截断策略评价,得到截断策略迭代。
- 抽象出“价值与策略相互推动”的广义策略迭代思想。
1. 动态规划方法的定位#
本章三种算法都属于动态规划(dynamic programming, DP)算法。它们需要已知系统模型,即对所有状态动作对 (s,a),已知:
p(r∣s,a),p(s′∣s,a).有了模型,算法可以对所有可能奖励和下一状态求和,而不必先与环境采样。它们虽然依赖模型,却是后续无模型强化学习算法的重要基础。例如,Chapter 5 的 Monte Carlo 方法可以看作对策略迭代思想的扩展。
[!warning] 易混概念:需要模型与 model-based RL
本章末尾特别指出:“算法要求系统模型已知”和“model-based reinforcement learning”不是同一个分类标准。后者通常指从数据估计系统模型,并在学习过程中使用该估计模型;model-free 方法则不进行模型估计。
2. 价值迭代#
2.1 从 Bellman 最优方程到迭代算法#
价值迭代是压缩映射定理为求解 Bellman 最优方程直接建议的算法:
vk+1=π∈Πmax(rπ+γPπvk),k=0,1,2,…其中:
- vk 是第 k 次迭代的价值向量估计;
- rπ 是策略 π 下的一步期望奖励向量;
- Pπ 是策略 π 下的状态转移矩阵;
- γ∈[0,1) 是折扣率;
- Π 是策略集合。
由 Chapter 3 的 Theorem 3.3,随着 k→∞:
vk→v∗,πk→π∗,其中 v∗ 是唯一的最优状态价值,π∗ 是一个最优策略。
每轮迭代可以拆成两步。
第一步:策略更新(policy update, PU)
给定上一轮的 vk,寻找对一步前瞻结果最优的策略:
πk+1=argπmax(rπ+γPπvk).第二步:价值更新(value update, VU)
用新策略进行一次 Bellman 备份:
vk+1=rπk+1+γPπk+1vk.(4.1)注意右侧仍然是旧估计 vk,不是新策略的精确状态价值 vπk+1。
2.2 逐元素形式#
为了实现算法,需要把矩阵形式展开到每个状态和动作。
先根据 vk 定义一步前瞻量:
qk(s,a)=r∈R∑p(r∣s,a)r+γs′∈S∑p(s′∣s,a)vk(s′).它把动作 a 的即时奖励与下一状态的当前估计合并起来。
策略更新问题可写成:
πk+1(s)=argπmaxa∈A(s)∑π(a∣s)qk(s,a).最大值可以由确定性贪心策略取得。令
ak∗(s)=arga∈A(s)maxqk(s,a),则
πk+1(a∣s)={1,0,a=ak∗(s),a=ak∗(s).(4.2)如果最大动作不唯一,可以任取其中一个,不影响算法收敛。由于新策略总选择当前 qk(s,a) 最大的动作,所以它是关于 vk 的贪心策略(greedy policy)。
价值更新的逐元素形式为:
vk+1(s)=a∑πk+1(a∣s)[r∈R∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′)]=amaxqk(s,a).于是一次迭代的完整信息流是:
vk(s)⟶qk(s,a)⟶πk+1⟶vk+1(s)=amaxqk(s,a).2.3 Algorithm 4.1:价值迭代算法#
求解 Bellman 最优方程,得到 v∗ 和一个最优策略。
- 模型 p(r∣s,a) 与 p(s′∣s,a);
- 折扣率 γ;
- 初值 v0;
- 收敛阈值 ε>0。
- 对每个状态 s∈S:
- 对每个动作 a∈A(s),计算
qk(s,a)=r∈R∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′).
- 选取
ak∗(s)=argamaxqk(s,a).
- 更新贪心策略:πk+1(ak∗(s)∣s)=1,其他动作概率为 0。
- 更新价值:
vk+1(s)=amaxqk(s,a).
- 若 ∥vk+1−vk∥ 仍大于预设阈值,则进入下一轮;否则停止。
2.4 重要辨析:中间量 vk 通常不是状态价值#
尽管 vk 最终收敛到 v∗,但在收敛前,它通常不满足任何策略的 Bellman 方程。一般既不能保证
vk=rπk+1+γPπk+1vk,也不能保证
vk=rπk+γPπkvk.因此:
- vk 只是算法产生的中间向量,不一定等于某个 vπ;
- 相应的 qk(s,a) 也不一定是某个策略的真实动作价值;
- 只有极限 v∗ 才是最优状态价值。
[!tip] 一句话记忆
价值迭代每轮只做一次 Bellman 最优备份,它“朝状态价值靠近”,但中间估计未必已经是任何策略的状态价值。

图解: 网格有四个状态。s2 是禁止区域,s4 是目标区域。左图只显示环境,中图显示第一次迭代得到的策略 π1,右图显示第二次迭代得到的最优策略 π2。圆圈代表停留动作,箭头代表移动方向。
奖励与折扣设置为:
rboundary=rforbidden=−1,rtarget=1,γ=0.9.Table 4.1:各状态动作对的 q 表达式#
| q-table | a1 | a2 | a3 | a4 | a5 |
|---|
| s1 | −1+γv(s1) | −1+γv(s2) | 0+γv(s3) | −1+γv(s1) | 0+γv(s1) |
| s2 | −1+γv(s2) | −1+γv(s2) | 1+γv(s4) | 0+γv(s1) | −1+γv(s2) |
| s3 | 0+γv(s1) | 1+γv(s4) | −1+γv(s3) | −1+γv(s3) | 0+γv(s3) |
| s4 | −1+γv(s2) | −1+γv(s4) | −1+γv(s4) | 0+γv(s3) | 1+γv(s4) |
这个表把环境的确定性转移与奖励直接代入一步前瞻公式。每个单元格都由“一步奖励 + 下一状态的折扣价值”组成。
第 k=0 轮#
从全零初值开始:
v0(s1)=v0(s2)=v0(s3)=v0(s4)=0.代入 Table 4.1 得到 Table 4.2。
Table 4.2:k=0 时的 q0(s,a)#
| q-table | a1 | a2 | a3 | a4 | a5 |
|---|
| s1 | −1 | −1 | 0 | −1 | 0 |
| s2 | −1 | −1 | 1 | 0 | −1 |
| s3 | 0 | 1 | −1 | −1 | 0 |
| s4 | −1 | −1 | −1 | 0 | 1 |
一种合法的贪心选择为:
π1(a5∣s1)=1,π1(a3∣s2)=1,π1(a2∣s3)=1,π1(a5∣s4)=1.在 s1,a5 与 a3 的 q 值同为 0,教材任选了 a5。这使策略在 s1 原地停留,所以 π1 还不是最优策略。
价值更新为各行最大值:
v1(s1)=0,v1(s2)=v1(s3)=v1(s4)=1.第 k=1 轮#
将 v1 代入 Table 4.1。
Table 4.3:k=1 时的 q1(s,a)#
| q-table | a1 | a2 | a3 | a4 | a5 |
|---|
| s1 | −1+γ⋅0 | −1+γ⋅1 | 0+γ⋅1 | −1+γ⋅0 | 0+γ⋅0 |
| s2 | −1+γ⋅1 | −1+γ⋅1 | 1+γ⋅1 | 0+γ⋅0 | −1+γ⋅1 |
| s3 | 0+γ⋅0 | 1+γ⋅1 | −1+γ⋅1 | −1+γ⋅1 | 0+γ⋅1 |
| s4 | −1+γ⋅1 | −1+γ⋅1 | −1+γ⋅1 | 0+γ⋅1 | 1+γ⋅1 |
贪心策略更新为:
π2(a3∣s1)=1,π2(a3∣s2)=1,π2(a2∣s3)=1,π2(a5∣s4)=1.新价值为:
v2(s1)v2(s2)v2(s3)v2(s4)=γ,=1+γ,=1+γ,=1+γ.此时 π2 已经是最优策略。这个简单例子只需两轮就找到最优策略;更复杂问题仍需继续迭代,直到 ∥vk+1−vk∥ 小于阈值。
3. 策略迭代#
3.1 两个交替步骤#
策略迭代不直接逐次应用 Bellman 最优算子。它从当前策略出发,交替执行:
- 策略评价(policy evaluation, PE):精确或近似求出当前策略的状态价值;
- 策略改进(policy improvement, PI):对该状态价值做一步贪心,得到不差于当前策略的新策略。
第 k 轮的策略评价求解:
vπk=rπk+γPπkvπk.(4.3)随后策略改进为:
πk+1=argπmax(rπ+γPπvπk).这里与价值迭代的关键差别是:策略改进使用的 vπk 是当前策略 Bellman 方程的解,是一个真正的状态价值。
3.2 怎样完成策略评价?#
教材重述了 Chapter 2 的两种方法。
方法一:闭式解#
vπk=(I−γPπk)−1rπk.闭式解便于理论分析,但计算矩阵逆在实现上通常效率不高。
方法二:迭代求解#
从任意初值 vπk(0) 出发:
vπk(j+1)=rπk+γPπkvπk(j),j=0,1,2,…(4.4)当 j→∞ 时:
vπk(j)→vπk.所以策略迭代的外层本身是迭代算法,而每次策略评价内部又嵌套一个迭代过程。理论上要无限次内部更新才能得到精确 vπk;实践中通常在以下任一条件满足时停止:
- ∥vπk(j+1)−vπk(j)∥ 小于阈值;
- 内部迭代次数达到预设上限。
有限次评价得到的是近似值。Section 4.3 会说明,即使如此也能形成有效算法。
3.3 Lemma 4.1:策略改进#
[!theorem] Lemma 4.1 - Policy improvement
若
πk+1=argπmax(rπ+γPπvπk),
则
vπk+1≥vπk,
其中不等式按状态逐元素成立。
Box 4.1:证明#
两个策略的真实状态价值分别满足:
vπk+1=rπk+1+γPπk+1vπk+1,vπk=rπk+γPπkvπk.由于 πk+1 对 vπk 贪心:
rπk+1+γPπk+1vπk≥rπk+γPπkvπk.因此:
vπk−vπk+1=(rπk+γPπkvπk)−(rπk+1+γPπk+1vπk+1)≤(rπk+1+γPπk+1vπk)−(rπk+1+γPπk+1vπk+1)=γPπk+1(vπk−vπk+1).反复代入得到:
vπk−vπk+1≤γ2Pπk+12(vπk−vπk+1)≤⋯≤γnPπk+1n(vπk−vπk+1)⟶0.因为 γn→0,且 Pπk+1n 始终是非负随机矩阵,所以
vπk−vπk+1≤0,即 vπk+1≥vπk。
[!tip] 证明的核心思想
新策略先保证在旧价值 vπk 上的一步前瞻不差,再利用新策略的 Bellman 方程把这个“一步不差”传播到无限未来。
3.4 Theorem 4.1:策略迭代收敛#
策略迭代产生两列对象:
{π0,π1,…},{vπ0,vπ1,…}.Lemma 4.1 给出单调性,而最优价值给出上界:
vπ0≤vπ1≤vπ2≤⋯≤v∗.因此状态价值序列单调有界,必收敛。
[!theorem] Theorem 4.1 - Convergence of policy iteration
策略迭代生成的状态价值序列 {vπk}k=0∞ 收敛到最优状态价值 v∗;相应策略序列收敛到一个最优策略。
Box 4.2:证明与价值迭代的比较#
引入从 v0 开始的价值迭代序列:
vk+1=f(vk)=πmax(rπ+γPπvk).已知 vk→v∗。对任意初始策略 π0,总能选择 v0 使
v0≤vπ0.下面归纳证明:
vk≤vπk≤v∗.假设 vk≤vπk。令
πk′=argπmax(rπ+γPπvk).则:
vπk+1−vk+1=(rπk+1+γPπk+1vπk+1)−πmax(rπ+γPπvk)≥(rπk+1+γPπk+1vπk)−πmax(rπ+γPπvk)≥(rπk′+γPπk′vπk)−(rπk′+γPπk′vk)=γPπk′(vπk−vk)≥0.第一处不等式使用 Lemma 4.1 与 Pπk+1≥0,第二处使用 πk+1 对 vπk 贪心。于是 vk+1≤vπk+1。又因 vπk≤v∗,归纳成立。
最后,由
vk≤vπk≤v∗,vk→v∗,夹逼得到 vπk→v∗。
这也解释了教材所说的“策略迭代通常比价值迭代更快”:在相同起点和理论比较条件下,策略迭代的价值序列位于价值迭代序列之上,更快靠近 v∗,代价是每轮策略评价更昂贵。
3.5 逐元素形式与 Algorithm 4.2#
策略评价的逐元素迭代为:
vπk(j+1)(s)=a∑πk(a∣s)[r∈R∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(j)(s′)].评价完成后,计算当前策略价值的一步动作价值:
qπk(s,a)=r∈R∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπk(s′).令
ak∗(s)=argamaxqπk(s,a),并更新:
πk+1(a∣s)={1,0,a=ak∗(s),a=ak∗(s).Algorithm 4.2:策略迭代算法#
输入: 模型 p(r∣s,a)、p(s′∣s,a),折扣率 γ,初始策略 π0,内外层停止条件。
目标: 求最优状态价值和一个最优策略。
外层第 k 轮:
- 策略评价:从任意 vπk(0) 开始,重复 Bellman 期望备份,直到 vπk(j) 收敛。
- 策略改进:对每个状态计算 qπk(s,a),选取最大动作,形成确定性贪心策略 πk+1。
- 若策略或其价值不再变化,则停止;否则进入下一轮。
输出: 收敛的状态价值和贪心策略。

图解: 有两个状态和三个动作:
A={aℓ,a0,ar},分别表示向左、保持不动、向右。目标在 s2,奖励设置为
rboundary=−1,rtarget=1,γ=0.9.Figure 4.3(a) 的初始策略 π0 在两个状态都向左,不会朝目标前进;Figure 4.3(b) 是一次策略改进后的最优策略。
第一步:评价 π0#
Bellman 方程为:
vπ0(s1)vπ0(s2)=−1+γvπ0(s1),=0+γvπ0(s1).直接解得:
vπ0(s1)=−10,vπ0(s2)=−9.若从 vπ0(0)(s1)=vπ0(0)(s2)=0 迭代,则:
vπ0(1)(s1)vπ0(2)(s1)vπ0(3)(s1)=−1,=−1.9,=−2.71,vπ0(1)(s2)vπ0(2)(s2)vπ0(3)(s2)=0,=−0.9,=−1.71.继续迭代会分别趋于 −10 与 −9。
Table 4.4:一般 qπk(s,a) 表达式#
| qπk(s,a) | aℓ | a0 | ar |
|---|
| s1 | −1+γvπk(s1) | 0+γvπk(s1) | 1+γvπk(s2) |
| s2 | 0+γvπk(s1) | 1+γvπk(s2) | −1+γvπk(s2) |
把 vπ0(s1)=−10、vπ0(s2)=−9 代入:
Table 4.5:k=0 时的 qπ0(s,a)#
| qπ0(s,a) | aℓ | a0 | ar |
|---|
| s1 | −10 | −9 | −7.1 |
| s2 | −9 | −7.1 | −9.1 |
逐行取最大值得到:
π1(ar∣s1)=1,π1(a0∣s2)=1.这就是 Figure 4.3(b) 的最优策略。本例一次外层迭代即可完成策略改进。

图解: 每个编号子图同时给出策略和对应的真实状态价值。橙色是禁止区域,青色是目标区域。奖励为
rboundary=−1,rforbidden=−10,rtarget=1,γ=0.9.从随机策略 π0 出发,算法最终在 π10 达到最优。图中有两个重要现象:
- 策略从目标附近向外改善。 靠近目标的状态较早找到通往目标的正确动作;更远状态随后通过这些已改善状态形成更长的最优路径。
- 价值随离目标的距离下降。 距离越远,需要越多步才能获得正奖励,折扣使该奖励的当前价值更小。
4. 截断策略迭代#
4.1 为什么需要统一视角?#
价值迭代和策略迭代都包含“价值步骤”和“策略步骤”,但价值步骤的计算量不同。
策略迭代:
π0PEvπ0PIπ1PEvπ1PI⋯价值迭代:
v0PUπ1′VUv1PUπ2′VUv2⟶⋯为了公平比较,教材令两者从相同条件开始:
v0=vπ0.Table 4.6:策略迭代与价值迭代的步骤比较#
| 步骤 | 策略迭代 | 价值迭代 | 说明 |
|---|
| 1 策略 | π0 | N/A | 策略迭代从策略开始 |
| 2 价值 | vπ0=rπ0+γPπ0vπ0 | v0=vπ0 | 设定相同起点 |
| 3 策略 | π1=argmaxπ(rπ+γPπvπ0) | π1′=argmaxπ(rπ+γPπv0) | 两个策略相同 |
| 4 价值 | vπ1=rπ1+γPπ1vπ1 | v1=rπ1+γPπ1v0 | vπ1≥v1,因为 vπ1≥vπ0 |
| 5 策略 | π2=argmaxπ(rπ+γPπvπ1) | π2′=argmaxπ(rπ+γPπv1) | 此后可能不同 |
前 3 步相同,差异在第 4 步:
- 价值迭代只对 π1 做一次 Bellman 备份;
- 策略迭代把 π1 的 Bellman 方程一直迭代到收敛。
显式写出这一评价过程。令
vπ1(0)=v0,并迭代:
vπ1(j)=rπ1+γPπ1vπ1(j−1).那么:
- 只迭代 1 次,vπ1(1)=v1,对应价值迭代;
- 迭代有限次 jtruncate,得到截断策略迭代;
- 迭代到 j→∞,得到 vπ1,对应策略迭代。
因此:
价值迭代⟺jtruncate=1,策略迭代⟺jtruncate=∞.教材强调,这个直接比较依赖相同初始条件 vπ1(0)=v0=vπ0;没有该条件,不能直接按上述方式比较两条序列。
4.2 Algorithm 4.3:截断策略迭代#
截断策略迭代与策略迭代的区别只有一个:策略评价只运行有限次。
- 模型 p(r∣s,a) 与 p(s′∣s,a);
- 折扣率 γ;
- 初始策略 π0;
- 策略评价最大次数 jtruncate;
- 外层停止条件。
第 k 轮#
- 以先前外层价值估计初始化:
vk(0)=vk−1.
- 固定当前策略 πk,做 jtruncate 次评价更新:
vk(j+1)(s)=a∑πk(a∣s)[r∈R∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(j)(s′)].
- 令
vk=vk(jtruncate).
- 用 vk 计算:
qk(s,a)=r∈R∑p(r∣s,a)r+γs′∑p(s′∣s,a)vk(s′).
- 令 πk+1 对 qk 贪心。
- 若 vk 尚未收敛,则继续外层迭代。
收敛的价值估计和对应的贪心策略。
由于策略评价未完成,vk(j) 与 vk 通常不是真实状态价值,只是 vπk 的近似。

图解: 横轴是外层迭代次数 k,红线是最优状态价值 v∗。在教材的示意比较中:
- 价值迭代每轮评价最少,单轮便宜,但外层靠近 v∗ 较慢;
- 策略迭代把每轮策略评价做充分,外层靠近 v∗ 较快,但单轮昂贵;
- 截断策略迭代位于两者之间,以有限的额外评价计算换取更快的外层收敛。
[!note] 补充理解
这幅图表达的是算法关系与典型趋势,不是对所有问题逐点速度的无条件保证。
4.4 Proposition 4.1:策略评价中的价值改进#
[!theorem] Proposition 4.1 - Value improvement
考虑固定策略 πk 的评价迭代
vπk(j+1)=rπk+γPπkvπk(j).
若初值选择为
vπk(0)=vπk−1,
则对所有 j=0,1,2,…,有
vπk(j+1)≥vπk(j).
Box 4.3:证明#
相邻两次评价估计之差满足:
vπk(j+1)−vπk(j)=γPπk(vπk(j)−vπk(j−1))=⋯=γjPπkj(vπk(1)−vπk(0)).(4.5)先证明第一步非负。因为 vπk(0)=vπk−1:
vπk(1)=rπk+γPπkvπk(0)=rπk+γPπkvπk−1≥rπk−1+γPπk−1vπk−1=vπk−1=vπk(0).不等式来自 πk 对 vπk−1 的贪心改进。再由 Pπk 非负,把
vπk(1)−vπk(0)≥0代入式 (4.5),即可得到每一步都非减。
[!warning] Proposition 4.1 的适用限制
该命题假定评价初值是真实的 vπk−1。实践中通常只有上一轮近似 vk−1,并不能直接获得精确 vπk−1。因此这个命题为收敛直觉提供支持,但教材明确指出,更深入的严格讨论需要额外分析。
4.5 怎样选择截断次数?#
教材给出的总体原则是:运行少量评价迭代,但不要过多。
- 次数太少:接近价值迭代,单轮便宜,但外层可能需要更多轮;
- 次数适中:常能显著改善外层收敛速度;
- 次数过多:越来越接近完整策略迭代,额外计算未必继续带来显著收益。
所以 jtruncate 体现了“单轮计算量”和“外层收敛速度”的折中。
5. 三种算法与广义策略迭代#
三种算法的共同点是,每轮都有一个价值相关步骤和一个策略相关步骤。
| 方法 | 价值步骤 | 策略步骤 | 中间价值是否一定是真实状态价值 | 两个极端中的位置 |
|---|
| 价值迭代 | 对贪心策略做一次备份 | 根据 vk 更新贪心策略 | 否 | jtruncate=1 |
| 截断策略迭代 | 固定策略做有限次评价 | 根据近似价值改进策略 | 否 | 1<jtruncate<∞ |
| 策略迭代 | 把当前策略评价到收敛 | 根据 vπk 改进策略 | 是 | jtruncate=∞ |
这种价值更新与策略更新相互作用的通用思想称为广义策略迭代(generalized policy iteration, GPI)。GPI 不是某一个固定算法,而是一个算法设计框架:
价值估计更准确⟶策略变得更贪心⟶新的策略价值⟶继续评价与改进.策略推动价值估计改变,价值估计又推动策略变得更优。教材后续的大多数强化学习算法都可纳入这一框架。
6. 本章总结#
本章从“怎样把 Bellman 理论变成寻找最优策略的算法”出发。
首先,Bellman 最优算子的压缩性质直接产生价值迭代。它每轮根据当前价值构造贪心策略,再做一次价值备份,因而实现简单且保证收敛,但中间 vk 通常不属于任何策略。
随后,策略迭代把问题拆成完整的策略评价和策略改进。策略改进引理保证每次贪心更新都不会降低状态价值;通过与价值迭代序列比较,可以证明策略价值收敛到 v∗。
最后,教材发现两种算法的本质差异只是策略评价的迭代次数。评价一次得到价值迭代,评价到无穷得到策略迭代,评价有限多次得到截断策略迭代。这一连续谱揭示了广义策略迭代的核心:价值与策略彼此促进,共同逼近最优解。
7. 教材 Q&A#
Q1:价值迭代保证找到最优策略吗?#
是。价值迭代正是压缩映射定理建议的 Bellman 最优方程求解算法,其收敛由该定理保证。
Q2:价值迭代的中间 vk 是状态价值吗?#
通常不是,因为它不保证满足任何策略的 Bellman 方程。
Q3:策略迭代包含哪些步骤?#
每轮包含策略评价和策略改进。前者求当前策略的状态价值,后者根据该价值构造更优策略。
Q4:策略迭代中是否嵌套了另一个迭代算法?#
是。策略评价通常通过式 (4.4) 的迭代算法求解当前策略的 Bellman 方程。
Q5:策略迭代的中间价值是状态价值吗?#
在完整策略评价的理论算法中是,因为每个 vπk 都是当前策略 Bellman 方程的解。
Q6:策略迭代保证找到最优策略吗?#
是。Lemma 4.1 与 Theorem 4.1 给出了改进性和收敛性证明。
Q7:截断策略迭代与策略迭代有什么关系?#
截断策略迭代只执行有限次策略评价,而完整策略迭代把策略评价执行到收敛。
Q8:截断策略迭代与价值迭代有什么关系?#
价值迭代是截断策略迭代只做一次策略评价更新的极端情形。
Q9:截断策略迭代的中间价值是状态价值吗?#
通常不是。有限次评价只能得到真实策略价值的近似;只有评价到收敛才得到 vπk。
Q10:策略评价应截断在多少次?#
一般做少量迭代,但不宜过多。少量额外评价可以加快总体收敛,过多评价的边际收益可能很小。
Q11:什么是广义策略迭代?#
它不是单个算法,而是价值更新与策略更新相互作用的通用思想。教材后续大多数算法都属于这一范畴。
Q12:model-based 与 model-free 强化学习怎样区分?#
model-based 方法从数据估计模型并在学习过程中使用它;model-free 方法不进行模型估计。本章 DP 算法直接要求系统模型已知,因此教材通常把它们称为动态规划算法,而不是强化学习算法。
8. 一页式复习#
三个核心更新#
价值迭代:
vk+1=πmax(rπ+γPπvk).策略评价:
vπk(j+1)=rπk+γPπkvπk(j).策略改进:
πk+1=argπmax(rπ+γPπvπk).三种方法的关系#
jtruncate=1⇒价值迭代,1<jtruncate<∞⇒截断策略迭代,jtruncate=∞⇒策略迭代.必记结论#
- 价值迭代直接求解 Bellman 最优方程,收敛由压缩映射定理保证。
- 价值迭代中间 vk 和 qk 通常不是真实策略价值。
- 完整策略迭代的 vπk 是真实状态价值。
- 贪心策略改进保证 vπk+1≥vπk。
- 策略迭代的状态价值序列收敛到 v∗。
- 截断策略迭代用评价精度换取计算效率。
- GPI 指价值和策略相互推动,不是某个特定算法。
- 本章算法要求已知系统模型。
9. 公式清单#
| 公式 | 名称 | 作用 | 使用场景 |
|---|
| vk+1=maxπ(rπ+γPπvk) | 价值迭代 | 应用 Bellman 最优备份 | 求 v∗ |
| qk(s,a)=∑r∈Rp(r∣s,a)r+γ∑s′p(s′∣s,a)vk(s′) | 一步前瞻 | 比较当前价值下的动作 | 贪心更新 |
| vk+1(s)=maxaqk(s,a) | 逐状态价值更新 | 取最优动作备份 | Algorithm 4.1 |
| vπk=rπk+γPπkvπk | 策略 Bellman 方程 | 定义当前策略的真实价值 | 策略评价 |
| vπk=(I−γPπk)−1rπk | 策略评价闭式解 | 理论求解当前策略价值 | 理论分析 |
| vπk(j+1)=rπk+γPπkvπk(j) | 迭代策略评价 | 逐步逼近 vπk | 策略迭代、截断策略迭代 |
| πk+1=argmaxπ(rπ+γPπvπk) | 策略改进 | 对当前策略价值贪心 | Policy improvement |
| vπk+1≥vπk | 策略改进引理 | 保证策略不会变差 | 收敛证明 |
| vπk(j+1)−vπk(j)=γjPπkj(vπk(1)−vπk(0)) | 评价增量传播 | 证明评价序列单调 | Proposition 4.1 |
10. 符号表#
| 符号 | 含义 |
|---|
| S | 状态集合 |
| A(s) | 状态 s 下的可行动作集合 |
| Π | 策略集合 |
| πk | 外层第 k 轮的策略 |
| vk | 价值迭代或截断算法的中间价值估计 |
| vπk | 策略 πk 的真实状态价值 |
| vπk(j) | 评价策略 πk 时第 j 次内部估计 |
| qk(s,a) | 由中间估计 vk 构造的一步前瞻量 |
| qπk(s,a) | 策略 πk 的动作价值 |
| rπ | 策略 π 下的一步期望奖励向量 |
| Pπ | 策略 π 下的状态转移矩阵 |
| γ | 折扣率 |
| k | 外层策略或价值迭代索引 |
| j | 策略评价的内层迭代索引 |
| jtruncate | 截断策略评价的最大迭代次数 |
| v∗ | 唯一最优状态价值 |
| π∗ | 一个最优策略 |
11. 术语表#
| English | 中文 | 简单解释 |
|---|
| dynamic programming | 动态规划 | 已知模型时通过递推关系求解控制问题的方法 |
| value iteration | 价值迭代 | 反复应用 Bellman 最优备份 |
| policy update | 策略更新 | 根据中间价值构造贪心策略 |
| value update | 价值更新 | 用新贪心策略执行一次备份 |
| policy iteration | 策略迭代 | 完整评价当前策略后再改进策略 |
| policy evaluation | 策略评价 | 求固定策略的状态价值 |
| policy improvement | 策略改进 | 对当前策略价值贪心得到更优策略 |
| greedy policy | 贪心策略 | 在每个状态选择当前估计下最大动作的策略 |
| truncated policy iteration | 截断策略迭代 | 每轮只做有限次策略评价的策略迭代 |
| generalized policy iteration | 广义策略迭代 | 价值更新与策略更新相互作用的通用框架 |
| model-based reinforcement learning | 基于模型的强化学习 | 从数据估计模型并在学习中使用模型 |
| model-free reinforcement learning | 无模型强化学习 | 学习过程中不进行模型估计 |
12. 常见误区#
[!warning] 易错点 1:把 vk 都叫作“某个策略的状态价值”
价值迭代和截断策略迭代的中间 vk 通常不满足任何策略的 Bellman 方程。只有完整策略评价得到的 vπk 才必然是当前策略的状态价值。
[!warning] 易错点 2:认为策略迭代直接求解 Bellman 最优方程
直接应用 Bellman 最优算子的是价值迭代。策略迭代通过“评价当前策略 + 贪心改进”间接到达最优策略。
[!warning] 易错点 3:策略评价只做一次仍叫完整策略迭代
只做一次时已经落在价值迭代这一极端;有限次属于截断策略迭代;评价到收敛才是理论上的完整策略迭代。
[!warning] 易错点 4:外层更快等于总计算一定更少
策略迭代可能需要更少外层轮数,但每轮包含昂贵的策略评价。总成本取决于问题规模、评价方法与停止条件。
[!warning] 易错点 5:贪心策略必须唯一
若多个动作达到相同最大值,可以任选一个形成确定性策略,也可以在最大动作之间随机化;最优性不因此消失。
[!warning] 易错点 6:要求已知模型就等于 model-based RL
本章 DP 方法直接使用给定模型;model-based RL 强调从数据估计模型并用于学习,两者语境不同。
[!warning] 易错点 7:Figure 4.5 是无条件的精确速度定理
它用于说明三种方法的关系和典型权衡。教材的直接序列比较依赖相同初始条件,不能脱离条件机械比较所有问题的运行时间。
13. 自测题#
13.1 概念题#
- 价值迭代每轮的两个步骤是什么?
[!success]- 点击查看答案
先根据 vk 对一步前瞻量贪心,得到 πk+1;再用该策略对 vk 做一次价值备份,得到 vk+1。
- 为什么价值迭代中的 vk 通常不是状态价值?
[!success]- 点击查看答案
因为它通常不满足任何固定策略的 Bellman 方程。它只是 Bellman 最优算子迭代产生的中间向量。
- 策略评价与策略改进分别解决什么问题?
[!success]- 点击查看答案
策略评价求当前策略 πk 的真实状态价值 vπk;策略改进以该价值为基准,对动作一步前瞻并构造贪心新策略 πk+1。
- 为什么 Lemma 4.1 能保证策略价值序列单调不减?
[!success]- 点击查看答案
新策略对旧策略价值 vπk 贪心,因此一步前瞻不差于旧策略;利用新策略的 Bellman 方程和非负转移矩阵,可把这个不等式传播到无限未来,得到 vπk+1≥vπk。
- 截断策略迭代怎样统一价值迭代和策略迭代?
[!success]- 点击查看答案
统一参数是每轮策略评价的次数。做一次对应价值迭代,做有限多次对应截断策略迭代,做到收敛或理论上的无限次对应策略迭代。
- 广义策略迭代是不是一个固定伪代码?
[!success]- 点击查看答案
不是。它是价值估计与策略改进相互作用的通用思想,许多具体算法都可以实现这种思想。
13.2 判断与推导题#
- 判断:若 qk(s,a) 有两个并列最大动作,价值迭代无法继续。
[!success]- 点击查看答案
错误。任选一个最大动作即可形成确定性贪心策略,不影响收敛。
- 判断:策略迭代每轮外层计算一定比价值迭代便宜。
[!success]- 点击查看答案
错误。完整策略评价需要多次内层迭代或求解线性方程,单轮通常更昂贵;它的优势是外层可能更快靠近最优价值。
- 从
vπk−vπk+1≤γPπk+1(vπk−vπk+1)说明为什么能推出 vπk+1≥vπk。
[!success]- 点击查看答案
反复代入右侧得到上界
γnPπk+1n(vπk−vπk+1).
由于 0≤γ<1,γn→0;而 Pπk+1n 是非负随机矩阵,不会使向量无界增长。因此右侧趋于零,得到 vπk−vπk+1≤0。
- 在 Figure 4.3 的两状态例子中,验证 s1 下动作 ar 的值为 −7.1。
[!success]- 点击查看答案
向右获得目标奖励 1,下一状态是 s2,且 vπ0(s2)=−9、γ=0.9。所以
qπ0(s1,ar)=1+0.9×(−9)=−7.1.
- 若截断次数设为 jtruncate=1,写出对应价值更新并说明它为什么就是价值迭代。
[!success]- 点击查看答案
固定贪心策略 πk+1 后只做一次评价:
vk+1=rπk+1+γPπk+1vk.
而 πk+1 是关于 vk 的最大化策略,因此合并后正是
vk+1=πmax(rπ+γPπvk).
- Proposition 4.1 为什么不能直接当作实际截断策略迭代的完整收敛证明?
[!success]- 点击查看答案
命题假设内层初值是上一策略的真实状态价值 vπk−1,但实践中通常只有近似值 vk−1。该假设不一定满足,因此命题主要提供价值改进直觉,完整收敛还需要更深入分析。