跳到主要内容

自己造环境 — 模型、规划与树搜索

这一章讲三件事: 为什么「自己造一个环境」是省样本的另一条路; 造出来之后,真实经验和模拟经验怎么配着用; 以及在这个造出来的环境里往前搜的三种办法,各自差在哪一步。

它在全书链条里的位置:第 11 章那八个障碍的第二味药。 第 12、13 章拿人的示范省样本,这一章拿学出来的环境省样本 —— 两条药方的分界线只有一条:★ 样本从谁那里来。★ 一边是人给的,一边是自己造的。 另外,这一章那棵搜索树是第 19 章 AlphaZero 的通用版本。

顶层全景:一个 4×4 的迷宫,一次真实走步换来两格的价值传播

这一章从头到尾用同一个迷宫。

4×4 的格子。左上角 (0,0) 是起点,右下角 (3,3) 是终点。
走到终点给 +1,其余每一步都是 0。折扣 0.9。
(这个迷宫和下面所有数值都是**为演示编的**,不是书里的;
Dyna-Q 的七个步骤与三种搜索的做法是书里的。)

┌─────┬─────┬─────┬─────┐
│(0,0)│ │ │(0,3)│ ★ 起点在左上 ★
├─────┼─────┼─────┼─────┤
│ │ │ │(1,3)│
├─────┼─────┼─────┼─────┤
│ │ │ │(2,3)│ ← 这一格「往下」一步就到终点
├─────┼─────┼─────┼─────┤
│ │ │ │(3,3)│ ★ 终点,+1 ★
└─────┴─────┴─────┴─────┘

这一轮发生了什么(取学习率 1,让数好算):

① 真实走一步: 从 (0,0) 往右走到 (0,1),奖励 0
→ 更新 Q((0,0), 右):还是 **0**(周围什么都还没学到)
② 记进模型: 「在 (0,0) 往右 → 奖励 0,到 (0,1)」 ★ 这一步是这一章新加的 ★
③ 规划 5 次(从历史里随机抽一条已经走过的组合,问模型,做一次一模一样的更新):
第 1 次 抽到 ((2,3), 下) → 模型说「奖励 +1,到终点」
→ Q((2,3), 下) 从 0 跳到 **1.0** ★ 一次真环境交互都没花 ★
第 2 次 抽到 ((1,3), 下) → 模型说「奖励 0,到 (2,3)」
→ Q((1,3), 下) = 0.9 × 1.0 = **0.9** ★ 价值又往回传了一格 ★
第 3 次 抽到 ((0,0), 右) → 还是 0(它离终点还远)
第 4、5 次 抽到前面那两条 → 数已经稳了,不再变

★ 这一轮只在真环境里走了一步,而价值从终点往回传了两格。★
★ 省下的那些交互,就是这一章的全部收益。★

图说:这就是本章的主走查。第 2 节讲 ② 那个模型是什么、怎么学,
第 4、5 节讲 ③ 那五次重放为什么值钱,第 6 到 8 节把 ③ 换成三种更聪明的搜索。

1. 省样本的第二条路

这一节回答:第 12、13 章已经在省样本了,为什么还要另起一章。

先看现象:交互贵在哪,书里说得比第 11 章还具体

第 11 章给的是账单(7 台真机、800 小时)。这一章给的是三条具体的原因1:

为什么贵书里的说法
危险工业应用里,「一些状态可以指代系统崩溃或者设备爆炸」,而探索过程要去试这些状态
★ 慢,而且没法并行 ★「在实际环境中只能顺序演算,不能并行计算」 —— 这一条最要命
磨损机器人每试一次都在磨自己(第 11 章那条)

★ 第二条值得停一下:真实世界只有一个,你没法开一百个副本同时跑。★ 这不是钱的问题,是物理的问题。

于是这一章的思路

书里的话:在一些场景下,「我们希望能够使用模拟环境来取代实际环境进行探索和经验积累」2

第 12、13 章: 样本来自 ★ 人 ★ —— 找个专家做一遍给你看
★ 这一章: 样本来自 ★ 你自己造的一个环境 ★ —— 而这个环境是学出来的

★ 两条药方治同一个病,分界线只有一条:样本从谁那里来。★

2. 「模型」这个词,以及一字之差的两个动作

这一节把两个最容易混的词钉死。

「模型」在这一行专指什么

第 06 章第 5 节挂过一次牌:在强化学习里,「模型」不是「神经网络」的意思, 它专指环境的动力学 —— 做了这个动作会到哪、给多少奖励。

这一章把它拆成两个具体的东西3:

名字它回答什么输入 → 输出
转移模型:做了这个动作会到哪一个局面环境接下来长什么样(局面, 动作) → 下一个局面
奖励模型:做了这个动作给多少分这一步值多少(局面, 动作) → 一个数

主走查里 ② 那一步记的就是这两样:「在 (0,0) 往右 → 奖励 0(奖励模型),到 (0,1)(转移模型)」。

书里还提到一种更麻烦的情况:局面不能被观察信息完整表示时(第 01 章第 3 节那个「看到的不等于当前状态」), 还要另外设两个模型 —— 观察模型:给定局面,会看到什么; 以及表示模型:根据上一个局面、这次的动作和这次看到的东西,推断现在真正处在哪个局面。

但为了集中讨论,书里假设局面是完全可观测的3 —— 我们这一章也照这个假设走。

一字之差:演算与规划

★ 这是这一章最要紧的一个区分,而它只差一个字。★

书里给的两个说法2:

★ 在真实环境里展开一条轨迹 → 书里叫「演算」★
★ 在学出来的模型里展开一条轨迹 → 书里叫「规划」★

书里的原话:「在模拟环境中的演算被称为规划」,
而它「可通过并行计算高效地为策略学习产生大量模拟经验」。[^2]

★ 这一章所有算法省下的钱,全在这一个字上。★
同一个动作(往前展开几步),在真环境里做要付真钱,在模型里做几乎不要钱。

模型怎么学:它就是监督学习

书里一句话说完:模型学习是一个监督式的拟合学习过程, 目标是建立一个虚拟的环境,「其中的转移关系和奖励关系和真实环境保持一致」4

★ 也就是说:这里没有奖励、没有价值、没有贝尔曼方程 —— 只是拿「(局面, 动作)」当输入、拿「下一个局面和奖励」当答案,去拟合。★ 这和第 12 章第 2 节那个行为克隆是同一种活,只是拟合的对象不同。

书里给了两种时机5:

时机什么情况下用
直接学已经有一批历史交互数据了 —— 先把模型学好,再拿它当模拟环境练策略
★ 迭代学 ★一开始没有足够数据 —— 学一点模型、练一点策略、拿新策略再去真环境采一点、再学模型……

书里说迭代那种做法下,随着迭代次数增加,「模型学习和策略学习将逐步收敛到最优结果」5

3. 这条路的两笔收益和两个死穴

这一节把账算清楚,因为下一节那个折中方案就是为了绕开死穴。

收益

书里列了两条6:

  • 省钱又安全 —— 智能体不需要在真实环境里采取大量动作去探索, 书里说这**「能够有效地降低训练时间并且保障在策略学习过程中的安全性」**; 书里举的正是第 11 章那个例子:那 7 台机器人「需要昼夜不停地在实际环境中收集采样数据」6;
  • ★ 能并行 ★ —— 书里说学习过程「可以采用并行计算」: 分布式系统里可以有多个学习者,每人一个自己的模型副本,互不影响,也不影响真实环境的状态6

★ 第二条正好补上 §1 那个物理限制:真实世界只有一个,学出来的模型可以有一百个。★

死穴

书里同样列了两条,而且都很硬7:

★ 死穴一:模型学歪了,策略跟着学歪。★
书里的话:「如果学习到的模型不能很好地模拟出真实环境,
智能体在规划中会和一个错误且不准确的模型进行交互,从而将增大策略学习的误差。」[^7]

→ 落到主走查上:如果模型错记成「在 (2,3) 往下 → 奖励 0」,
那么 ③ 里那 5 次规划全是在学一件错事,而且学得很起劲。
★ 模拟经验越多,错得越彻底 —— 量在这里是放大器,不是保险。★

★ 死穴二:环境一变,模型跟不上。★
书里的话:「如果真实环境有更新或者调整,模型需要通过多次迭代之后才会学到环境的变化」,
然后还要耗费大量训练时间让策略跟着调整;
所以「智能体对其策略的相应调整有着很高的延迟,这并不适用于那些对实时性有要求的应用」。[^7]

★ 死穴二给出了一条很硬的选型判据:环境会变、而且要求实时响应的场合,这条路不要用。★

4. Dyna:两样一起喂

这一节讲这一章的折中方案,它正是为了绕开上一节那两个死穴。

两种经验,各有各的毛病

书里把经验分成两类,并逐条写了长短8:

真实经验模拟经验
哪来的和真实环境直接交互从模型的规划过程里来
好在哪「体现了环境正确的特征和属性」模型「很容易人工操纵」,而且要多少有多少
差在哪获得成本高;而且在真实环境中的探索「不可逆且难以人工干预」「可能不能准确地表现真实环境的真实特征」

★ 注意真实经验那一栏的「不可逆」三个字 —— 这是模拟环境最大的优势: 在模拟里你可以随便把机器人摔一百次,再按重置。★

做法:那就都用

书里介绍的架构叫 Dyna9它做的事一句话说得完:

★ 策略更新时,既用模型给的模拟经验,也用与真实环境交互得到的真实经验。★9

而书里给出的分工非常干净,值得背下来:

★ 模拟经验「能够保证学习过程中有足够多的训练数据来降低学习方差」;★
★ 真实经验「能够更准确地体现环境的动态变化和正确特征,
从而降低由于环境而产生的学习偏差」。★[^9]

→ 模拟经验管 ★ 量 ★ ,压的是方差
→ 真实经验管 ★ 准 ★ ,压的是偏差

「偏差」和「方差」是第 04 章第 5 节那两个词:
方差 = 每次估出来的数差很多;偏差 = 每次都差不多但系统性偏一点。

★ 而这正好治了 §3 那两个死穴:真实经验是那根不许拔掉的锚。★
只用模拟经验,模型错了没人纠正;掺着真实经验,偏了还能被拉回来。

5. Dyna-Q:七个步骤,而其中五个你已经会了

这一节走主走查的全程,是本章的重点。

它就是 Q-Learning 后面多加了两步

书里说 Dyna-Q 建立并维护一个 Q 表格,来指导动作决策10

「Q 表格」是第 04 章第 8 节那个 Q-Learning 用的表:每一个(局面, 动作)一格,记它值多少。

★ 拆开看,七个步骤里有五个是原样照抄 Q-Learning 的:★

(a) 取当前局面
(b) 按 ε-贪心挑一个动作 ← 第 02 章第 4 节那个:大部分时候挑最好的,偶尔随便试
(c) 真的执行它,拿到奖励和下一个局面
(d) 更新 Q 表那一格 ← 第 04 章那个时间差分更新,一个字没改

★ (e) 把「这个局面做这个动作 → 给多少奖励、到哪个局面」写进模型 ★ ← 新的
★ (f) 重复 n 次: ★ ← 新的
随机挑一个「以前到过的局面」
随机挑一个「在那个局面下以前做过的动作」
★ 问模型:奖励多少、到哪儿?★
★ 拿这条编出来的经验,做一次和 (d) 一模一样的更新 ★

书里的说法:模拟的模型「同时也会从真实经验中学习」,
并且「通过规划获得 n 组模拟经验用于进一步的 Q 表格学习」。[^10]

★ 整个算法的新意只有 (e) 和 (f) 两步。而 (f) 里那一次更新和 (d) 完全一样 —— 唯一的区别是:(d) 的数据来自真环境,(f) 的数据来自模型。★

主走查:那五次重放具体做了什么

这一轮 (c) 只在真环境里走了一步:(0,0) 往右 → (0,1),奖励 0
(d) 更新 Q((0,0),右):周围的 Q 都还是 0,所以它还是 **0** —— ★ 这一步什么也没学到 ★

(e) 模型记下:((0,0), 右) → (奖励 0, 到 (0,1))

(f) 规划 5 次(n = 5,这个数是为演示取的):

第 1 次 随机抽中 ((2,3), 下) ← 这条是之前某一轮走过、已经在模型里的
模型说:奖励 **+1**,到终点
Q((2,3), 下) = 0 + [1 + 0.9 × 0 − 0] = **1.0** ★ 从 0 跳到 1.0 ★

第 2 次 随机抽中 ((1,3), 下)
模型说:奖励 0,到 (2,3)
Q((1,3), 下) = 0 + [0 + 0.9 × **1.0** − 0] = **0.9**
★ 注意它用的是第 1 次刚更新出来的那个 1.0 —— 价值就是这么往回传的 ★

第 3 次 随机抽中 ((0,0), 右) → 下一格的 Q 还是 0 → 仍然是 **0**
第 4、5 次 抽中前面那两条 → 数已经稳住,不再变

★ 结算:真环境里只走了一步,而 (2,3) 和 (1,3) 两格的价值被立起来了。★
★ 换成纯 Q-Learning,要真的走到 (2,3) 那一格才可能学到那个 1.0。★
(学习率取 1、n 取 5、这几格的位置都是为演示编的;七个步骤是书里的。)

判断(我们的,不是书里的): Dyna-Q 真正省下的不是「跑环境的时间」, 而是「把已经拿到的信息榨干」的能力。 那五次重放没有产生任何新知识 —— 模型里的每一条都来自过去真实走过的一步。它做的是把这些旧信息在 Q 表里多传导几遍。 ★ 从这个角度看,它和第 07 章那个回放缓存是近亲:两者都是「一条经验用很多次」。★ 差别在于回放缓存重放的是原封不动的经验,而模型可以对没走过的组合作出预测。 如果错,会错在: 模型如果是用神经网络学的,它确实能泛化到没见过的(局面, 动作)上, 那就不只是「榨干旧信息」了。判据是:模型是查表式的还是学出来的 —— 书里这个版本是查表式的(直接记下来那一条),所以上面的判断成立。

6. 换个思路:以当前局面为根,建一棵树

这一节开始讲这一章的后半段:三种搜索,而它们是第 19 章的地基。

为什么要换

上一节那五次重放是「随机抽历史里的一条」—— 它不关心你现在站在哪。

而书里指出一件很实在的事:智能体当前所处的局面「比其他的状态更值得关注」11

★ 你只需要现在这一步走对。三步之外那个你可能永远到不了的局面,不值得花力气。★

前向搜索

做法:把接下来可能发生的事画成一棵树,树根就是当前局面11

当前局面 (1,3)
┌────┬────┼────┬────┐
上 下 左 右 ← 第一层:这一步的四个选择
│ │
┌──┬──┤ ┌─┼──┐
… … … 到(2,3) … ← 第二层:每个选择之后的可能局面

到终点 ← 再往下

书里的说法:把有限选择的马尔可夫决策过程看作一个树形结构,树根代表当前局面,
前向搜索算法「从当前的状态选择最佳的决策动作,并且通过树形结构的枝干来考虑未来的选择」。[^11]

但树会爆炸,所以要采样

四个动作、走十步,叶子有 4 的 10 次方个,约一百万个 —— 而这还是最小的迷宫。 (这个换算是我们做的;书里只说了要采样。)

书里的解法:采样。 具体说是**「智能体随机选定下一个状态并继续前向搜索的演算过程」; 而下一个局面选谁带有随机性,「具体是由模拟中智能体采取的决策策略决定的」**12

★ 这里出现了这一章后半段最关键的一个零件:模拟策略。★ 它是「在模型里往前展开时,每一步照谁的意思走」—— 书里说它「被用来指导规划过程中探索的方向」13

★ 接下来三节的差别,全在这一个零件上。★

7. 第一种搜索:模拟策略固定 —— 以及它的致命伤

这一节走主走查的搜索版本,并给出这一章最值得记住的一处对比。

做法

书里介绍的第一种叫朴素蒙特卡罗搜索,前提写得很清楚: 「一开始提供了固定的模型和固定的模拟策略」14

站在 (1,3),要决定这一步走哪个方向。

对每一个动作,各模拟 K 条轨迹(取 K = 3,为演示):

动作「下」: 第 1 条 → 到 (2,3) → 到终点,回报 **0.9**
第 2 条 → 到 (2,3) → 乱走没到终点,回报 **0**
第 3 条 → 到 (2,3) → 到终点,回报 **0.9**
→ 平均 = (0.9 + 0 + 0.9) / 3 = **0.6**

动作「上」: 三条都没走到终点 → 平均 **0**
动作「左」: 三条都没走到终点 → 平均 **0**
动作「右」: 撞墙 → 平均 **0**

★ 挑最高的:走「下」。★

书里的做法就是这个:对每个动作跑 K 条轨迹、记下每条的累计奖励、取平均当这个动作的 Q 值,
最后「返回当前最大 Q 值的动作」。[^14]
(0.9 是折扣算出来的;三条里有一条没到终点是为演示编的。)

致命伤

这一轮一共跑了 4 × 3 = 12 条模拟。 ★ 而这 12 条里学到的所有东西,做完这个决策就全丢了。★

书里把这一点点得很准:

★「朴素蒙特卡罗搜索的一个明显不足是,它的模拟策略是固定的, 从而没有办法利用在规划过程中学习到的信息。」★15

具体丢掉了什么:

第 1 条轨迹走到 (2,3) 之后,发现「往下就到终点」——
这条信息在第 2、3 条轨迹里★用不上★,因为模拟策略是固定的、不会因此改变。
第 2 条走到 (2,3) 之后还是随便乱选,所以那一条才会没走到终点。

★ 12 条模拟,每一条都像第一次来。★

8. 第二种与第三种搜索:把学到的东西存下来

这一节给出上一节那个毛病的两种治法,而第一种就是第 19 章那棵树的通用版本。

蒙特卡罗树搜索:存进树里,边搜边改模拟策略

书里说它「正是针对这个不足所设计的」,做法是 「维护了一棵搜索树来保存收集到的信息并逐步优化模拟策略」16

改动只有两处,但它们互相咬合:

① 每模拟完一条轨迹,轨迹上访问过的每一个(局面, 动作),都用平均回报更新它的 Q 值[^16]
—— ★ 不只是根节点那一层,是整条路上的每一格 ★
② ★ 然后照新的 Q 值,更新模拟策略 ★ —— 书里给的一种做法是「根据当前 Q 值的 ε-贪心」[^17]

主走查上的差别:

第 1 条轨迹 走到 (2,3) 后随便选,碰巧往下,到终点 → 回报 0.9
★ 更新:Q((2,3), 下) = 0.9 ★ 并照它改模拟策略
第 2 条轨迹 再次走到 (2,3) —— ★ 这次模拟策略已经偏向「下」了 ★
→ 大概率直接到终点,回报 0.9
第 3 条轨迹 同上

→ 三条的平均从 0.6 变成接近 0.9

★ 同样跑三条模拟,后两条站在了第一条的肩膀上。★

书里还交代了树的边界怎么处理:当模拟策略走到一个「新的、当前并不在搜索树中的局面」时, 它就转换成默认的策略(比如均匀探索);而第一个被探索到的新局面会被加进搜索树17

★ 所以这棵树有一条清晰的分界线:★

树 ★ 里 ★ :用学出来的模拟策略走 —— 越走越准
树 ★ 外 ★ :退回默认策略随便走 —— 因为这里还没有任何信息
每一轮往树里添一个新节点 —— ★ 树就是这么长大的 ★

★ 记住这个四步结构(选择 → 扩展 → 模拟 → 回溯)—— 第 19 章的 AlphaZero 用的就是它,只是把「模拟」那一步整个砍掉,换成一个网络直接给估分。★

时间差分搜索:不等整条轨迹跑完

书里介绍的第三种叫时间差分搜索,而它的改动你在第 04 章第 6 节已经见过。

书里的说法:和树搜索相比,它「不需要演算一个扩展轨迹并用其来评估和更新当前策略」; 在模拟的每一步中,策略都会被更新,并用更新后的策略指导下一步18

★ 这就是第 04 章那根轴,原封不动地搬到了模拟里:★

蒙特卡罗那一端: 跑完整条模拟轨迹,拿实际回报更新 ← §7、§8 前半段
时间差分那一端: 走一步就更新 ← 这里

而它的代价书里也照样写了,和第 04 章一模一样:
★「TD 搜索倾向于降低结果的方差但是有可能增大偏差」。★[^19]
书里给的收益是:「由于每一步策略都会更新,TD 搜索会更有效率」。[^19]

一个很实用的设计:两套参数分开记

书里介绍的具体算法(Dyna-2)有一处安排值得单独拿出来说19:

★ 智能体存两组网络参数,分别放在「长期存储空间」和「短期存储空间」。★19

长期那一组: ★ 在真实环境的探索中更新 ★ —— 记的是「这个任务长期来说该怎么打」
短期那一组: ★ 在模拟经验上更新 ★ —— 记的是「这一局眼下的局面该怎么走」
而它每一局开始时被清零[^21]

★ 为什么要分开:短期那一组是照着一个可能不准的模型学出来的。★
如果把它混进长期那一组,模型的偏差就会永久地污染你真正的策略;
而每局清零,意味着模型错了最多害你这一局。

书里说,最终智能体学到的最佳策略,是长期那一组参数给出的那个。[^20]
(「模型偏差会永久污染」这句因果是我们的解释;两组参数怎么摆是书里的。)

补充:这一章和第 19 章之间少了一块

这一节的内容不在书里,但它填的是这本书的一个结构洞。

★ 这一章说:环境模型可以学出来。★
★ 第 19 章说:AlphaZero 靠树搜索下棋 —— 而它必须事先知道游戏规则。★

中间缺的那一块是:★ 能不能把规则也学出来,然后在学出来的规则上做树搜索?★

补充(不在书里): 这一块后来被填上了,而且就在这本书成稿前后。 那项工作叫 MuZero,论文题目是《Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model》, 第一作者 Julian Schrittwieser,末位作者 David Silver。 摘要里的原话是:在围棋、国际象棋和将棋上,「在完全不知道游戏规则的情况下」, 它达到了「被提供了游戏规则的 AlphaZero」的同等超人水平。20 ★ 也就是说:这一章的「学模型」和第 19 章的「树搜索」被接上了。★

判断(我们的,不是书里的): 这本书把「学模型」(第 9 章)和「树搜索」(第 15 章) 分在两个板块讲,中间隔了六章,读者很难自己把它们接起来。 而它们本来就是一件事的两半。 我们把这条线在这里点破,是因为不点破的话, 读到第 19 章时会误以为「必须知道规则」是树搜索的固有限制 —— 它不是。 如果错,会错在: 学出来的模型在长程规划上未必够准; 上面那个工作在棋类上成立,不代表在所有任务上都成立。 判据是:看它在需要几十步以上精确推演的任务上表现如何。

作者的判断与证据

书里给了明确机制或完整算法的:

  • 转移模型与奖励模型的定义3模型学习是监督学习4;
  • ★ 演算与规划的用词区分 ★2 —— 这是一处定义,不是判断;
  • Dyna 的两条分工:模拟经验降方差、真实经验降偏差9 —— 书里给了理由,没有给实验;
  • Dyna-Q 的七个步骤10朴素搜索与树搜索的完整伪代码1416;
  • 树搜索针对的是「固定模拟策略用不上搜索中学到的信息」15 —— 一处清晰的因果。

作者的判断与限定:

  • ★ 基于模型的两个死穴 ★7 —— 尤其是「不适用于对实时性有要求的应用」这一条, 是一句很硬的选型建议,但书里没有给支撑的实验;
  • 时间差分搜索「降低方差但可能增大偏差」21 —— 这是从第 04 章那根轴推出来的,不是新证据。

书里没有给的:

  • ★ 这一章是全书最短的正文章,而且一个实验数字都没有。★ Dyna-Q 比纯 Q-Learning 快多少、树搜索比朴素搜索好多少,全无数据;
  • 模型该用什么结构学,书里没说 —— 只说了「是监督学习」;
  • 模型不准到什么程度就该放弃这条路,书里没有判据;
  • 规划次数 n 该取多少,书里没有讨论。

边界与局限

  • ★ 这一章的例子全是表格式的。★ Dyna-Q 维护的是一张 Q 表,模型是一条条记下来的; 换成大规模问题时,这两样都要换成网络,而换了之后第 06 章那个死亡三件套会重新出现 —— 书里没有讨论这件事;
  • 书里假设局面完全可观测3,所以观察模型和表示模型只提了一句就放下了;
  • 模型的误差怎么度量、怎么控制,整章没有正面处理 —— 只说了「学不好会拖累策略」;
  • 三种搜索之间怎么选,书里给了原理上的差别,没有给适用场合;
  • 这一章没有接上第 19 章。 AlphaZero 那一章的树搜索是知道规则的, 而「规则也学出来」这条线书里完全没提(我们在上一节补了);
  • 这一章的搜索全部假设动作是有限的(书里说「有限选择的马尔可夫决策过程」)11, 连续动作上怎么建树,书里没有讨论。

可带走的

全章那条走查,一行写完: 4×4 迷宫,这一轮在真环境里只走了一步((0,0) 往右,奖励 0, Q 没变) → 把「这一步会到哪、给多少」写进模型从历史里随机抽 5 次,拿模型编出假经验做一模一样的更新 → 第 1 次抽中 ((2,3), 下),Q 从 0 跳到 1.0;第 2 次抽中 ((1,3), 下), Q 变成 0.9 × 1.0 = 0.9一次真实交互,价值从终点往回传了两格。 (迷宫与数值全部是为演示编的;七个步骤是书里的。)

  1. 省样本的第二条路:不找人要示范,自己学一个环境出来,在里面无限地产样本;
  2. ★ 真实环境贵的第二个原因很物理:它只有一个,没法并行。学出来的模型可以有一百个。★
  3. 「模型」在这一行专指环境的动力学,拆成转移模型(会到哪)和奖励模型(给多少分);
  4. ★ 一字之差:在真环境里展开叫演算,在模型里展开叫规划 —— 这一章省下的钱全在这一个字上。★
  5. 模型学习就是监督学习 —— 拿(局面, 动作)当输入,拿(下一个局面, 奖励)当答案;
  6. 两个死穴:模型学歪了策略跟着歪(而且模拟经验越多错得越彻底); ★ 环境一变模型跟不上,所以对实时性有要求的场合不适用。★
  7. Dyna 的分工背下来:★ 模拟经验管量、压方差;真实经验管准、压偏差。★ 真实经验是那根不许拔掉的锚;
  8. Dyna-Q 的七步里只有两步是新的:把这一步记进模型;然后重放 n 次假经验;
  9. ★ 那 n 次重放和真实更新用的是一模一样的式子 —— 唯一的区别是数据来自模型。★
  10. 搜索换了个思路:只关心当前这一步,以当前局面为根建一棵树,用采样代替穷举;
  11. ★ 三种搜索的差别全在一个零件上:模拟策略 —— 在模型里往前走时照谁的意思走。★
  12. 固定模拟策略的版本有致命伤:这一轮所有模拟里学到的东西,做完决策就全丢了;
  13. 树搜索把它存进树里,并照新的估值改模拟策略;树外的新局面才退回默认策略;
  14. ★ 树搜索这四步(选择 → 扩展 → 模拟 → 回溯)就是第 19 章那棵树的通用版本 —— AlphaZero 只是把「模拟」那一步砍掉换成一个网络。★
  15. 时间差分搜索走一步就更新 —— 更有效率,代价还是第 04 章那句:降方差、可能增偏差;
  16. ★ 两套参数分开记:长期那一组从真环境学、短期那一组从模拟学且每局清零 —— 这样模型的偏差最多害你这一局。★

原文地图

主题原书章原文位置
真实交互贵在哪第9章 集成学习与规划text/14-ch09.txt:24(搜「在环境中通过在线演算产生经验的成本很高」) · text/14-ch09.txt:25(搜「以指代系统崩溃或者设备爆炸」) · text/14-ch09.txt:26(搜「环境中只能顺序演算」)
演算与规划之别第9章 集成学习与规划text/14-ch09.txt:21(搜「通过在环境中进行演算」) · text/14-ch09.txt:27(搜「在模拟环境中的演算被称」)
转移模型与奖励模型第9章 集成学习与规划text/14-ch09.txt:36(搜「关系称为转移模型」) · text/14-ch09.txt:37(搜「还将设定观察模型」)
模型学习是监督学习第9章 集成学习与规划text/14-ch09.txt:48(搜「模型学习是一个监督式的拟合学习过程」)
直接学与迭代学第9章 集成学习与规划text/14-ch09.txt:52(搜「如果智能体已经基于规则或专家信息和环境交互过多次」) · text/14-ch09.txt:55(搜「如果模型在初始时并没有足够的数据进行学习」) · text/14-ch09.txt:59(搜「模型学习和策略学习将逐步收敛到最优」)
两条收益第9章 集成学习与规划text/14-ch09.txt:65(搜「的方法能够有效地降低训练时间并且保障在策略学习过程中的安全性」) · text/14-ch09.txt:67(搜「7 个机器人需要昼夜不停地在实际环境中收集采样数据」) · text/14-ch09.txt:69(搜「学习过程可以采用并行计算」)
两个死穴第9章 集成学习与规划text/14-ch09.txt:76(搜「如果学习到的模型不能很好地模拟出真实环境」) · text/14-ch09.txt:78(搜「如果真实环境有更新或者调整」) · text/14-ch09.txt:82(搜「智能体对其策略的相应调整有着很高的延迟」)
两类经验的长短第9章 集成学习与规划text/14-ch09.txt:92(搜「真实经验是从智能体和真实环境中直接采样获得的」) · text/14-ch09.txt:95(搜「模拟经验是从模型规划过程中获得的」)
Dyna 的分工第9章 集成学习与规划text/14-ch09.txt:101(搜「够保证学习过程中有足够多的训练数据来降低学习方差」) · text/14-ch09.txt:102(搜「从而降低由于环境而产生的学习偏差」)
Dyna-Q 的七步第9章 集成学习与规划text/14-ch09.txt:106(搜「Dyna-Q 算法将建立并维护一」) · text/14-ch09.txt:110(搜「通过规划获得 n 组模拟经验用于」) · text/14-ch09.txt:125(搜「随机历史观测状态」)
前向搜索与采样第9章 集成学习与规划text/14-ch09.txt:137(搜「前向搜索算法从当前的状态选择最佳的决策动作」) · text/14-ch09.txt:140(搜「智能体随机选定下一个状态并继续前向搜索的演算过程」)
模拟策略第9章 集成学习与规划text/14-ch09.txt:143(搜「模拟策略被用来指导规划过程中探索的方向」)
朴素蒙特卡罗搜索第9章 集成学习与规划text/14-ch09.txt:151(搜「如果一开始提供了固定的模型」) · text/14-ch09.txt:175(搜「返回当前最大 Q 值的动作」)
它的致命伤第9章 集成学习与规划text/14-ch09.txt:178(搜「朴素蒙特卡罗搜索的一个明显不足是」)
蒙特卡罗树搜索第9章 集成学习与规划text/14-ch09.txt:180(搜「维护了一棵搜索树来保存收集到的信息并逐步优化」) · text/14-ch09.txt:186(搜「一个更新模拟策略」) · text/14-ch09.txt:187(搜「转换成默认的策略」) · text/14-ch09.txt:188(搜「新状态会接着被加入搜索树中」)
时间差分搜索第9章 集成学习与规划text/14-ch09.txt:206(搜「搜索不需要演算一个扩展轨迹」) · text/14-ch09.txt:214(搜「由于每一步策略都会更新」) · text/14-ch09.txt:215(搜「搜索倾向于降低结果的方差但是有可能增大偏差」)
两套参数第9章 集成学习与规划text/14-ch09.txt:208(搜「智能体将存储两」) · text/14-ch09.txt:209(搜「分别存储于长期存储空间和短期存储空间」) · text/14-ch09.txt:226(搜「初始化短期存储空间中网络参数」)

Footnotes

  1. 出处:「第9章 集成学习与规划」第 24 段(text/14-ch09.txt:24,搜「在环境中通过在线演算产生经验的成本很高」)、第 25 段(text/14-ch09.txt:25,搜「以指代系统崩溃或者设备爆炸」)与第 26 段(text/14-ch09.txt:26,搜「环境中只能顺序演算」)。原文把「不能并行计算」直接归因于采样效率和学习速度都很低。

  2. 出处:「第9章 集成学习与规划」第 21 段(text/14-ch09.txt:21,搜「通过在环境中进行演算」)与第 27 段(text/14-ch09.txt:27,搜「在模拟环境中的演算被称」)。原书把「演算」定义为「在环境中根据当前的状态和决策策略形成一条具体的包含一系列状态、动作和奖励信息的探索轨迹」;把在模拟环境里做同一件事叫「规划」。 2 3

  3. 出处:「第9章 集成学习与规划」第 36 段(text/14-ch09.txt:36,搜「关系称为转移模型」)与第 37 段(text/14-ch09.txt:37,搜「还将设定观察模型」)。原文写明:局面不能被观察信息完整表示时,还要设观察模型和表示模型;为了集中分析,书里假设局面完全可观测。 2 3 4

  4. 出处:「第9章 集成学习与规划」第 48 段(text/14-ch09.txt:48,搜「模型学习是一个监督式的拟合学习过程」)。原文的目标表述是:建立一个虚拟的环境,其中的转移关系和奖励关系与真实环境保持一致。 2

  5. 出处:「第9章 集成学习与规划」第 52 段(text/14-ch09.txt:52,搜「如果智能体已经基于规则或专家信息和环境交互过多次」)、第 55 段(text/14-ch09.txt:55,搜「如果模型在初始时并没有足够的数据进行学习」)与第 59 段(text/14-ch09.txt:59,搜「模型学习和策略学习将逐步收敛到最优」)。 2

  6. 出处:「第9章 集成学习与规划」第 65 段(text/14-ch09.txt:65,搜「的方法能够有效地降低训练时间并且保障在策略学习过程中的安全性」)、第 67 段(text/14-ch09.txt:67,搜「7 个机器人需要昼夜不停地在实际环境中收集采样数据」)与第 69 段(text/14-ch09.txt:69,搜「学习过程可以采用并行计算」)。原文写明每个学习者可以各自对着一个模型规划,模型之间互相独立,也不影响真实环境的状态。 2 3

  7. 出处:「第9章 集成学习与规划」第 76 段(text/14-ch09.txt:76,搜「如果学习到的模型不能很好地模拟出真实环境」)、第 78 段(text/14-ch09.txt:78,搜「如果真实环境有更新或者调整」)与第 82 段(text/14-ch09.txt:82,搜「智能体对其策略的相应调整有着很高的延迟」)。 2

  8. 出处:「第9章 集成学习与规划」第 92 段(text/14-ch09.txt:92,搜「真实经验是从智能体和真实环境中直接采样获得的」)与第 95 段(text/14-ch09.txt:95,搜「模拟经验是从模型规划过程中获得的」)。原文对真实经验的限定是:在真实环境中的探索「不可逆且难以人工干预」。

  9. 出处:「第9章 集成学习与规划」第 98 段(text/14-ch09.txt:98,搜「架构在」)、第 101 段(text/14-ch09.txt:101,搜「够保证学习过程中有足够多的训练数据来降低学习方差」)与第 102 段(text/14-ch09.txt:102,搜「从而降低由于环境而产生的学习偏差」)。原书注明 Dyna 架构出自 Sutton 1991 年的工作。 2 3

  10. 出处:「第9章 集成学习与规划」第 106 段(text/14-ch09.txt:106,搜「Dyna-Q 算法将建立并维护一」)、第 110 段(text/14-ch09.txt:110,搜「通过规划获得 n 组模拟经验用于」)与第 125 段(text/14-ch09.txt:125,搜「随机历史观测状态」)。原书的算法 9.30 把七个步骤逐条列了出来,其中重放那一步明确写着「随机历史观测状态」与「在状态 s 下历史随机决策动作」。 2

  11. 出处:「第9章 集成学习与规划」第 135 段(text/14-ch09.txt:135,搜「前向搜索」)与第 137 段(text/14-ch09.txt:137,搜「前向搜索算法从当前的状态选择最佳的决策动作」)。原文的措辞是「将具有有限选择的 MDP 看作一个树形的结构」。 2 3

  12. 出处:「第9章 集成学习与规划」第 139 段(text/14-ch09.txt:139,搜「采样」)与第 140 段(text/14-ch09.txt:140,搜「智能体随机选定下一个状态并继续前向搜索的演算过程」)。

  13. 出处:「第9章 集成学习与规划」第 143 段(text/14-ch09.txt:143,搜「模拟策略被用来指导规划过程中探索的方向」)。原文还说,模拟策略与智能体学习的策略相结合,有助于规划过程准确地反映当前的决策策略。

  14. 出处:「第9章 集成学习与规划」第 151 段(text/14-ch09.txt:151,搜「如果一开始提供了固定的模型」)与第 175 段(text/14-ch09.txt:175,搜「返回当前最大 Q 值的动作」)。这是原书的算法 9.31。 2

  15. 出处:「第9章 集成学习与规划」第 178 段(text/14-ch09.txt:178,搜「朴素蒙特卡罗搜索的一个明显不足是」)。 2

  16. 出处:「第9章 集成学习与规划」第 180 段(text/14-ch09.txt:180,搜「维护了一棵搜索树来保存收集到的信息并逐步优化」)与第 185 段(text/14-ch09.txt:185,搜「类似地使用平均回报更新了 Q 值」)。这是原书的算法 9.32。 2

  17. 出处:「第9章 集成学习与规划」第 186 段(text/14-ch09.txt:186,搜「一个更新模拟策略」)、第 187 段(text/14-ch09.txt:187,搜「转换成默认的策略」)与第 188 段(text/14-ch09.txt:188,搜「新状态会接着被加入搜索树中」)。原书在脚注里提到另一种做法:把轨迹上所有新的节点都加入搜索树。

  18. 出处:「第9章 集成学习与规划」第 206 段(text/14-ch09.txt:206,搜「搜索不需要演算一个扩展轨迹」)与第 207 段(text/14-ch09.txt:207,搜「在模拟的每一步中」)。原书注明这条路出自 Silver 等人 2012 年的工作。

  19. 出处:「第9章 集成学习与规划」第 208 段(text/14-ch09.txt:208,搜「智能体将存储两」)、第 209 段(text/14-ch09.txt:209,搜「分别存储于长期存储空间和短期存储空间」)与第 212 段(text/14-ch09.txt:212,搜「环境的探索中通过在上层的」)。原书注明 Dyna-2 出自 Silver 等人 2008 年的工作,并写明最终的最佳策略来自长期那一组参数。 2

  20. 补充(不在书里):这项工作的论文题目是《Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model》,作者依次为 Julian Schrittwieser、Ioannis Antonoglou、Thomas Hubert、Karen Simonyan、Laurent Sifre、Simon Schmitt、Arthur Guez、Edward Lockhart、Demis Hassabis、Thore Graepel、Timothy Lillicrap、David Silver,预印本编号 arXiv:1911.08265,正式发表于《自然》(DOI: 10.1038/s41586-020-03051-4)。摘要原文写着:在围棋、国际象棋和将棋上「without any knowledge of the game rules」,它达到了被提供了规则的 AlphaZero 的同等水平。来源:arXiv 摘要页 https://arxiv.org/abs/1911.08265 (查阅于 2026-08-29)。

  21. 出处:「第9章 集成学习与规划」第 214 段(text/14-ch09.txt:214,搜「由于每一步策略都会更新」)与第 215 段(text/14-ch09.txt:215,搜「搜索倾向于降低结果的方差但是有可能增大偏差」)。