跳到主要内容

奖励太稀疏怎么办 — 换个问法,强化学习就变回一个回归问题

这一章讲三件事: 上一章那套办法在什么情况下会失效; 换一个问法之后为什么就通了; 以及这一换之后,强化学习怎么变回了第 03 章那种最普通的问题。 它在全书链条里的位置: 上一章那个倒立摆有三处「太好办」—— 每一步都给正分、环境没有记忆、动作只有两个。 这一章的游戏三条全不占,所以那套办法在这里会直接失效。

1. 先看现象:换个游戏,上一章的办法就不灵了

这个游戏的规则

贪吃蛇,一个 9×9 的网格世界1:

格子只有三种:蛇身、水果、空白。蛇头上画个半圆当嘴。

每一步能做的动作只有三种:**直走、左转、右转**(蛇不能不动)。

分数:
吃到一个水果 **+10**
只是走了一步没吃到 **−0.2**
死了(撞墙或撞自己) **−10**

蛇每吃一个水果,身子长一格。

图说:身子会变长这条规则是全部的难点所在 ——
没有它,蛇只要一直去吃就行,总分没有上限[^2]。

上一章那套办法为什么在这儿会死

书自己把原因写死了,而且给了一个可以算的数2:

就算蛇走的是最省路的走法,**两次加分之间也可能隔 17 步**。

这 17 步里,每一步拿到的都是同一个数:**−0.2**。

上一章的办法是「这局撑得久 → 这局的动作大体是对的」。
可这一局的分数几乎全被那一串 −0.2 决定,
→ **「这一步好不好」的信号被彻底淹掉了。**

图说:书的原话是,这种复杂的奖励结构和稀疏的分布,
**正是上一章那套方法不适用于贪吃蛇的主要原因**;
它更适合「奖励高频发生且结构简单」的场景 —— 比如倒立摆。

⚠ 顺带说清那个 −0.2 是干什么用的: 它是罚走弯路。 没有这个惩罚,蛇拿到的总分一样,但它会以蜿蜒曲折的方式移动,白白拖长训练2

2. 承重节:换一个问法

这一节是本章的地基,而整章的转折就在这一句上。

上一章问的是:**「在这个局面下,我该做什么动作?」**

这一章改问: **「在这个局面下做这个动作,把以后所有的分都算进来,值多少?」**

图说:第二个问法**不直接给出答案** —— 它给你三个动作各自的一个数,
你再挑最大的那个去做。**多绕了一步。**

书自己对这个取舍讲得很清楚3:

上一章(策略法)这一章(价值法)
网络输出什么该做哪个动作每个动作各值多少
拿到之后直接照做还要再挑一次最大的
好处直接更容易在前后两步之间把奖励和价值挂上钩

最后那一行是这一章能治稀疏奖励的全部原因,下面就展开它。

那个「值」有名字,叫 Q 值

它的定义只有一句话:在某个局面下做某个动作,预期能拿到的、折扣化之后的总累积奖励4「折扣化」是上一章那道手续:越远的奖励折算得越少。

注意它是「有远见」的:它把以后所有的分都算进来了,并且假定以后每一步都走最优。

关键性质:它可以递归

这才是它能算的原因。书用一个七状态的小例子讲了这件事,而且这个例子可以手算5:

从起点出发,有两个动作可选,每个动作立刻给一笔奖励并把你带到另一个局面。
折扣取 0.9。

动作 A:立刻拿 **−3**,然后到达的那个局面里,最好的动作能拿 **10**
→ 这个动作值多少? **−3 + 0.9 × 10 = 6**

动作 B:立刻拿 **+3**,然后到达的那个局面里,最好的动作只能拿 **−4**
→ 这个动作值多少? **3 + 0.9 × (−4) = −0.6**

只看眼前:B 拿 +3,A 拿 −3 → **看起来 B 好。**
算完总账:A 是 6,B 是 −0.6 → **A 好得多。**

图说:**看着吃亏的那条路其实更值。**
这正是「有远见」这三个字的具体含义。

把这个算法写成一句话,就是这一章的核心公式,它有名字叫贝尔曼方程6:

在某个局面下做某个动作的值 = ① 这个动作立刻拿到的奖励 + ② 折扣 × 下一个局面里最好那个动作的值。

书特意提醒:这个式子是递归的——右边那个「下一个局面里最好的值」, 可以继续用同一个式子展开下去6

它凭什么治得了稀疏奖励

把上面两件事接起来:

吃到水果那一步:值 = +10 + 折扣 × (后面的值) ← 高

吃到水果的**前一步**:值 = −0.2 + 折扣 × **10 那一步的值** ← 因为第二项,它也高

再前一步:值 = −0.2 + 折扣 × 上面那个高值 ← 仍然比别处高

图说:**那个 +10 顺着这条链子,一步一步往前渗。**
于是「走向水果的那些步」和「走开的那些步」,值就分出高下了 ——
**而它们的即时奖励明明都是 −0.2。**
**这就是稀疏奖励被解开的地方。**

这个问法有个前提

书先交代了一个假设,而且这个假设有名字:马尔可夫决策过程7

它的内容只有一句:下一个局面完全由当前局面和你做的动作决定,和你是怎么走到这儿的无关。

国际象棋符合:**看着当前棋盘(加上轮到谁),就能接着下**,
不需要知道之前那些棋是怎么走的。
(书顺手打趣:这也解释了为什么报纸能只登一个残局当谜题。)

贪吃蛇也符合:**蛇和水果在哪儿,已经完整描述了这局游戏。**

图说:如果下一步还依赖更早的历史,数学会复杂得多、算力也吃得多[^8]。

3. 表存不下,所以换成一个网络

这一节回答一个很自然的问题:既然是「一张局面-动作的对照表」,直接列出来不就行了。

书自己问了这个问题,答案是不行8:

9×9 已经很小了,可局面的组合数还是**天文数字**。
(书在脚注里粗算过:光是把蛇长限制在 20,组合数就大得离谱。)

两个后果:
① **内存装不下这张表**
② 就算装得下,**查一次的时间也太长**

换成一个网络,两个问题一起解决:
① 这个网络约 **100 万个权重** —— 比表小太多了
② 它有**泛化能力**:**不必见过所有可能的输入**,没见过的局面靠插值也能给个估计

图说:书的评价是「一石二鸟」。
这个网络书管它叫 **DQN**(深度 Q 网络)。

局面怎么变成张量

形状 [9, 9, 2] ——
前两维:棋盘的高和宽,可以当成一张点阵图
最后一维两个通道:一个记蛇、一个记水果

⚠ 这种表示很占地方 —— **不管蛇多长,它都要存整张棋盘。**
所以书在别处(存进记忆时)用的是另一种紧凑写法:只记蛇占了哪些坐标、水果在哪。
**只有真要喂进网络反向传播的时候,才转成这个张量。**

图说:这个「[高, 宽, 通道]」的形状,**简直就是为第 06 章那种网络量身定做的。**

网络本身没有新东西

三个卷积层 + 扁平化 + 两个密集层,输出三个数9:

[9, 9, 2]
↓ 卷积 128 核 → 批标准化
↓ 卷积 256 核 → 批标准化
↓ 卷积 256 核
↓ 扁平化
↓ 密集层 100 单元 → dropout 0.25
↓ 密集层 3 单元
输出 [3] ← **左转、直走、右转各自的值**

图说:批标准化和 dropout 都是第 11 章武器表里的东西,书说加它们是为了泛化。

4. 训练:强化学习变回了一个回归问题

这一节是这一章的回报,而且它的结论出人意料地朴素。

先看困局

书把它叫作「先有鸡还是先有蛋」10:

想用监督式学习那一套?**需要一份「局面 → 正确的值」的数据集。**
可正确的值从哪儿来?**得先有一个训好的网络才知道。**
而想训网络,又得先有正确的值。

图说:贝尔曼方程正是从这里破局的 ——
**它不要求你知道正确的值,只要求你知道「下一步的值」。**

破局:拿贝尔曼方程当标签

预测的那个数: 把这一步的局面喂进网络,**取出实际做过的那个动作对应的值**

当标签的那个数(书叫它**目标值**,并特意给「真实」二字打了引号[^12]):
**这一步立刻拿到的奖励 + 折扣 × 下一步局面里最好的那个值**

两者的差距怎么量?**均方误差** —— 第 03 章那把尺子。

图说:**到这一步,整件事就是一个回归问题了。**
书自己说,这和波士顿房价预测、耶拿气温预测**没有太大区别**[^13]。

⚠ 有一个细节漏了会出错:如果这一步就死了,那「下一步」根本不存在。 这时候目标值里只剩即时奖励那一项,第二项要整个乘掉。 书用一个只有 0 和 1 的掩码做这件事11

但直接这么训会炸,要加两道保险

书把这两条都称为诀窍,而且都很硬。

保险一:两个网络,不是一个12:

问题:目标值是网络自己算出来的。**网络一变,目标也跟着变 ——
自己追自己,训练会不稳。**

做法:开两份**结构完全相同**的网络
**在线网络**:算预测值;epsilon 贪心策略选动作时也用它 —— 所以叫「在线」
**目标网络**:**只用来算目标值**

在线网络的权重**每 1000 步复制一次**给目标网络。

图说:书说这是为了**打破对训练有害的反馈循环**;
但也不能永远不同步,否则目标网络会和在线网络脱节、算出来的估计失准。

保险二:不能一边玩一边直接拿来训13:

问题:连续几步的局面**高度相似**,直接拿来训相当于反复看同一张图。

做法:每走一步,把**五样东西**打包扔进一个池子(书叫它**回放记忆**):
① 这一步看到的局面
② 实际做了哪个动作
③ 立刻拿到的奖励
④ 这一步之后游戏是不是结束了
⑤ 下一步的局面(如果 ④ 是结束,这一项是空的)

训练时**从池子里完全均匀地随机抽一批** —— 抽出来的通常来自好几个不同的回合。

池子长度固定:新的从尾巴进,旧的从头上被挤出去。

图说:这样既保证只留最近的经历,又不会撑爆内存。
书还给了保留最近经历的理由:**网络已经练得不错之后,
刚开始那些笨拙的走法对它没什么用了**[^15]。

选动作:一条会慢慢收紧的随机

上一章靠「掷骰子」自带探索,这一章不行——因为动作是靠「挑最大的值」选的,没有随机可言14

所以要人为加一道随机,做法叫 epsilon 贪心14:

每一步:
抽一个 0 到 1 之间的随机数
**小于 epsilon → 完全随机走一步**(探索)
**否则 → 让网络算出三个值,挑最大的**(利用,这叫「贪心」)

epsilon 从 **0.5** 线性降到 **0.01**,在训练早期的 **10 万步** 内完成。

⚠ **它不降到 0。** 书给的理由是:即使训练后期,
模型也需要一定程度的探索,**才能继续发现新的聪明走法**。

图说:这就是第 18 章那个探索与利用的取舍,在这一章的具体形态。

5. 主走查:贪吃蛇的一步

这一章每个承重机制在这条走查上各占一步。数字全部来自书里,标注除外。

发生了什么具体的数 / 状态
1当前局面9×9 的棋盘,蛇占几格,水果在某一格
2转成张量喂给网络[9, 9, 2]——两个通道,一个记蛇一个记水果
3在线网络吐出三个数左转、直走、右转各自的值(图里那个例子直走是 33.9)
4选动作:先抽个随机数小于 epsilon → 瞎走;否则挑最大的那个
5epsilon 现在是多少0.5 线性降到 0.01,在前 10 万步内完成;永远不到 0
6假设这次听网络的,选了「直走」
7环境返回结果没吃到水果 → 奖励 −0.2;蛇往前挪一格,水果没动
8五样东西打包进池子局面、动作、−0.2、没结束、下一步的局面
9池子满了就挤掉最旧的长度固定
10训练:从池子里随机抽一批完全均匀地抽,来自好几个不同的回合
11预测值每条记录的局面喂进在线网络,只取出当时实际做的那个动作对应的值
12目标值:第一项直接取记录里的即时奖励(这条是 −0.2)
13目标值第二项把记录里下一步的局面喂进目标网络,取三个值里最大的那个,乘折扣
14如果这一步就死了第二项整个乘掉,目标值只剩即时奖励
15两者相减均方误差——至此它就是一个回归问题
16反向传播梯度只更新在线网络
17每 1000 步把在线网络的权重复制给目标网络
18训数小时之后最近 100 局的累计奖励峰值 70~80,吃到的水果数峰值 12
19实际玩的时候不再随机总是挑最大的 → 平均吃到 约 18 个,比训练过程中记录下来的 12 还高
20为什么会高训练时那点随机偶尔会让蛇过早死掉——这是探索的代价
21学出来的策略先去边缘或角落,再朝水果走,哪怕水果就在正中央
22这招为什么聪明身子长到 10~18 格时,能有效减少撞到自己的概率
23但它的天花板在这里身子超过 20 格时,它经常把自己困死在一个圈里
24收账治好了稀疏奖励;代价是两个网络、一个池子、一个要慢慢收紧的随机,外加数小时训练

6. 作者的判断与证据

书里给了证据的:

  • 七状态那个例子的两个数:6 和 −0.6。 可以当场手算验证5
  • 训练结果:累计奖励峰值 70~80、水果数峰值 12、实测平均 18。 书给了曲线和说明15
  • 蛇学会先贴边走。 书描述了这个行为并给了它的适用范围(身长 10~18 格)15
  • 超过 20 格会把自己困死。 书直接说「这就是我们的模型的极限了」15
  • 表存不下。 书在脚注里做了粗算8

属于作者判断、书里没给证据的:

  • 「两个网络是为了打破有害的反馈循环」。 书给了机制说理,没有做单网络的对照实验12
  • 「每 1000 步同步一次」。 一个默认值,书没有讨论怎么选12
  • epsilon 从 0.5 降到 0.01、用 10 万步。 书说这几个数都是超参数, 但没有给调它们的方法14
  • 「只留最近的经历更有益」。 给了直觉解释(旧的走法太笨),没有实验13
  • 「改良探索策略就能突破 20 格那个天花板」。 这是一句猜测,书用的是「如果要改进它,就需要……」15

书自己坦白的:

  • 这一章的做法是 2015 年那篇论文的简化版。 原版会把当前观察和之前多步的观察一起喂进去, 这一章只用当前这一步16
  • 超过 20 格就困死,是这个模型的极限15

判断(我们的,不是书里的): 这一章最该带走的是那个换问法的动作,而不是任何一个部件。 「这一步该做什么」问不出答案,因为答案要等很久; 「这一步值多少」却可以立刻回答,因为它被贝尔曼方程拆成了「当下 + 下一步」。 而这一拆的副产品才是真正的惊喜:目标值一旦有了写法,强化学习就没有任何特殊之处了—— 剩下的全是第 03 章那套(算预测、算目标、算均方误差、反向传播)。 两个网络和那个池子,不是新机制,是给这个回归问题打的两个补丁。 如果错,会错在: 如果动作是连续的(比如「推多大力」), 「三个动作里挑最大的」这一步就做不了,整个换问法的招数会失效—— 那种情况这本书没有涉及。

7. 边界与局限

  • 动作必须是离散的、而且不多。 因为每一步都要「把所有动作的值算出来再挑最大的」; 连续动作这本书完全没有涉及。
  • 训练要数小时,而且结果有天花板。 超过 20 格困死,书承认这是极限
  • 只用当前这一步的观察。 原论文会看之前多步,这一章简化掉了16
  • 超参数一大堆,全无调法。 epsilon 的起点终点和衰减长度、池子多长、 同步周期、折扣因子——书说它们是超参数,然后就没有然后了。
  • 马尔可夫这个假设没有讨论违反时怎么办。 书说非马尔可夫的情况「数学更复杂、更吃算力」, 然后跳过了7
  • 两个网络的同步周期为什么是 1000,没有依据。
  • 曲线波动依然没有对策。 和上一章一样,书只说「非常常见」15
  • 这一章仍然只是入门。 书自己把更深的内容推给了延展阅读。 补充(不在书里,依据我们的 ai-book-reference 书架):想往下走, 书架上另有两本专讲强化学习的拆解可以接上。17

8. 可带走的

  1. 上一章那套在稀疏奖励下会失效: 贪吃蛇里两次加分可能隔 17 步, 中间每步都是同一个 −0.2——「这一步好不好」的信号被淹了;
  2. 换个问法就通了: 不问「该做什么动作」,改问 「做这个动作,把以后所有的分算进来值多少」;这个值叫 Q 值;
  3. 它可以递归(贝尔曼方程): 值 = 立刻拿到的奖励 + 折扣 × 下一个局面里最好那个动作的值;
  4. 手算一遍就懂: −3 + 0.9×10 = 63 + 0.9×(−4) = −0.6—— 看着吃亏的那条路其实更值;
  5. 它治稀疏奖励的机制: 那个 +10 顺着递归链一步步往前渗, 于是「朝水果走」和「走开」的值分出了高下,尽管两者的即时奖励一样;
  6. 前提是马尔可夫假设: 下一个局面只由当前局面和这次的动作决定,和怎么走到这儿的无关;
  7. 表存不下(9×9 的组合数是天文数字),换成一个约 100 万参数的卷积网络: 省内存,而且能泛化到没见过的局面;
  8. 局面表示成 [9, 9, 2]——两个通道,一个记蛇一个记水果; 这个形状天生适合第 06 章那种网络;
  9. 最漂亮的结论:换完问法之后,它就是一个回归问题。 预测值去拟合「即时奖励 + 折扣 × 下一步最好的值」,损失用均方误差;
  10. 补丁一:两个网络。 在线网络算预测、目标网络算目标, 每 1000 步同步一次——不这么做就是自己追自己,会震荡;
  11. 补丁二:回放记忆。 每步存五样东西(局面、动作、奖励、是否结束、下一步局面), 训练时随机抽一批——因为连续几步的局面太像了;
  12. 探索靠 epsilon 贪心: 随机数小于 epsilon 就瞎走,否则挑最大的; epsilon 从 0.5 降到 0.01,但永远不降到 0;
  13. 结果: 平均吃到 约 18 个水果,学会了先贴边再去拿; 但身子超过 20 格就会把自己困死——这是这个模型的极限。

9. 原文地图

主题原书章原文位置
贪吃蛇的规则:9×9、三种动作、三档奖励第 11 章text/23-ch11.txt:310(搜「9 × 9的网格世界」) · text/23-ch11.txt:334(搜「-0.2」)
身子变长才是难点第 11 章text/23-ch11.txt:314(搜「蛇身是会增长的」)
奖励稀疏:间隔可能 17 步;策略梯度不适用第 11 章text/23-ch11.txt:316(搜「17步」)
马尔可夫决策过程;象棋与贪吃蛇都符合第 11 章text/23-ch11.txt:374(搜「完全由当前时间步中环境的状态」) · text/23-ch11.txt:378(搜「报纸可以刊登象棋棋局」)
七状态例子:6 与 −0.6第 11 章text/23-ch11.txt:397(搜「0.9 × 10 = 6」) · text/23-ch11.txt:402(搜「0.9 × -4 = -0.6」)
Q 值的定义;有了它就能挑最佳动作第 11 章text/23-ch11.txt:404(搜「预期的」) · text/23-ch11.txt:408(搜「最佳行为就是所有可能行为中能带来最高值的行为」)
贝尔曼方程;它是递归的第 11 章text/23-ch11.txt:420(搜「贝尔曼方程」) · text/23-ch11.txt:430(搜「递归的」) · text/23-ch11.txt:422(搜「1957」)
策略法与价值法的分工与取舍第 11 章text/23-ch11.txt:414(搜「更为间接」)
为什么不用查询表;100 万参数;泛化第 11 章text/23-ch11.txt:477(搜「查询表」) · text/23-ch11.txt:479(搜「粗略的计算」)
局面张量 [9, 9, 2];两个通道第 11 章text/23-ch11.txt:434(搜「两个通道」) · text/23-ch11.txt:438(搜「空间复杂度」)
DQN 的结构第 11 章text/23-ch11.txt:442(搜「一系列conv2d层」)
「先有鸡还是先有蛋」的困局第 11 章text/23-ch11.txt:493(搜「先有鸡还是先有蛋」)
回放记忆的五项;滚动;为何留最近的第 11 章text/23-ch11.txt:495(搜「回放记忆」) · text/23-ch11.txt:509(搜「旧的头部数据会从记忆中移除」) · text/23-ch11.txt:515(搜「均匀」)
epsilon 贪心;0.5 → 0.01;不降到零第 11 章text/23-ch11.txt:528(搜「epsilon贪心策略」) · text/23-ch11.txt:548(搜「0.01」)
预测 Q 值:只取实际做过的那个动作第 11 章text/23-ch11.txt:583(搜「排除没选择的行为」)
目标 Q 值;结束时的掩码第 11 章text/23-ch11.txt:589(搜「目标DQN」) · text/23-ch11.txt:593(搜「doneMask」)
「真实」值打引号;它只是最佳估计第 11 章text/23-ch11.txt:558(搜「目标值」)
两个网络;每 1000 步同步第 11 章text/23-ch11.txt:610(搜「反馈循环」) · text/23-ch11.txt:612(搜「1000个时间步」)
用均方误差 → 变成回归问题第 11 章text/23-ch11.txt:616(搜「回归问题」)
训练结果:70~80、12、实测 18、贴边策略、20 格困死第 11 章text/23-ch11.txt:661(搜「70~80」) · text/23-ch11.txt:667(搜「界面的边缘」)
算法蓝本(2015)与本章的简化第 11 章text/23-ch11.txt:671(搜「简化版」) · text/23-ch11.txt:677(搜「Human-Level Control」)

Footnotes

  1. 出处:「第 11 章 深度强化学习的基本原理」第 310 段与表 11-2(text/23-ch11.txt:310,搜「9 × 9的网格世界」;text/23-ch11.txt:334,搜「-0.2」)。表 11-2 把三档奖励逐条列出:吃到水果 +10、移动没吃到 −0.2、死亡 −10。

  2. 出处:「第 11 章」第 316 段(text/23-ch11.txt:316,搜「17步」)。原文:「这种复杂的奖励结构和稀疏的分布是策略梯度和REINFORCE方法不适用于贪吃蛇问题的主要原因。」同段解释了 −0.2 是为了「鼓励蛇尽可能不要走弯路」。 2

  3. 出处:「第 11 章」第 414 段(text/23-ch11.txt:414,搜「更为间接」)。原文:「这种间接性的好处是,在连续的步骤间建立奖励和价值的关联变得更容易。」

  4. 出处:「第 11 章」第 404~408 段(text/23-ch11.txt:404,搜「预期的」;text/23-ch11.txt:408,搜「最佳行为就是所有可能行为中能带来最高值的行为」)。原文说这个价值「比较有远见,因为它会考虑到未来可获得的最佳奖励(假设之后每个行为都是最优的)」。

  5. 出处:「第 11 章」第 394~404 段(text/23-ch11.txt:397,搜「0.9 × 10 = 6」;text/23-ch11.txt:402,搜「0.9 × -4 = -0.6」)。原文的结论是:这个结论「和只考虑第一个行为获得的瞬时奖励时得出的结论是不同的」。注意:原文里状态和行为的数学符号在我们的文本副本里丢失了,所以本章把它们改写成了「动作 A / 动作 B」,数值一字未改。 2

  6. 出处:「第 11 章」第 420~430 段(text/23-ch11.txt:420,搜「贝尔曼方程」;text/23-ch11.txt:430,搜「递归的」)。第 422 段脚注说明这个方程得名于美国应用数学家理查德·贝尔曼(1920—1984),出处是他 1957 年由普林斯顿大学出版社出版的《Dynamic Programming》。 2

  7. 出处:「第 11 章」第 374~378 段(text/23-ch11.txt:374,搜「完全由当前时间步中环境的状态」;text/23-ch11.txt:378,搜「报纸可以刊登象棋棋局」)。原文说非马尔可夫的情况「数学公式会更为复杂,并且需要更多的算力才能完成计算」。 2

  8. 出处:「第 11 章」第 477 段与第 479 段脚注(text/23-ch11.txt:477,搜「查询表」;text/23-ch11.txt:479,搜「粗略的计算」)。原文:「使用DQN可谓一石二鸟。」脚注里那几个组合数的具体幂次在我们的文本副本里丢失了,所以本章只写「天文数字」,没有引用具体数值。 2

  9. 出处:「第 11 章」代码清单 11-5 与第 442 段(text/23-ch11.txt:442,搜「一系列conv2d层」)。原文说加批标准化层和 dropout 层是为了「增强DQN的泛化能力」。

  10. 出处:「第 11 章」第 493 段(text/23-ch11.txt:493,搜「先有鸡还是先有蛋」)。

  11. 出处:「第 11 章」第 558 与 593 段(text/23-ch11.txt:558,搜「目标值」;text/23-ch11.txt:593,搜「doneMask」)。原文给「真实」二字打引号,并说「确实没有方法获取值的实际值……因此,对它更准确的称呼是『目标值』」。

  12. 出处:「第 11 章」第 610~612 段(text/23-ch11.txt:610,搜「反馈循环」;text/23-ch11.txt:612,搜「1000个时间步」)。原文说不同步的话「目标DQN会和在线DQN脱节。它生成的对贝尔曼方程中下个时间步的最佳值估计也会失准」。 2 3

  13. 出处:「第 11 章」第 495~515 段(text/23-ch11.txt:495,搜「回放记忆」;text/23-ch11.txt:509,搜「旧的头部数据会从记忆中移除」;text/23-ch11.txt:515,搜「均匀」)。原文说抽样是「完全均匀」的,而且抽出来的记录「一般而言会来自多个不同的回合」。 2

  14. 出处:「第 11 章」第 521~548 段(text/23-ch11.txt:528,搜「epsilon贪心策略」;text/23-ch11.txt:548,搜「0.01」)。原文说明贪吃蛇里不能像倒立摆那样靠采样自带随机,因为「行为的选择不再是基于tf.multinomial(),而是基于值的大小(选择最大的)」;epsilon 不降到零是因为「即使是在智能体训练的后期,模型也需要一定程度的探索」。 2 3

  15. 出处:「第 11 章」第 661 与 667 段(text/23-ch11.txt:661,搜「70~80」;text/23-ch11.txt:667,搜「界面的边缘」)。原文:「当蛇的长度超过20时,它经常会把自己困在一个封闭的圈里。这就是我们的模型的极限了。」曲线波动的说明也在第 661 段。 2 3 4 5 6

  16. 出处:「第 11 章」第 671 段与第 677 段脚注(text/23-ch11.txt:671,搜「简化版」)。出处是 Mnih 等人发表于《Nature》2015 年第 518 期的「Human-Level Control through Deep Reinforcement Learning」。 2

  17. 补充(不在书里,依据我们的 ai-book-reference 书架):这一章只给了强化学习的入门,想往下走书架上另有两本专门的拆解,两本的地址都在下面。依据: book=an-introduction-to-deep-reinforcement-learning 事实=该书是一本专讲深度强化学习的教材,覆盖范围比本章这一节宽得多。与 book=reinforcement-learning-sutton-barto §06-td-learning 事实=那一章把本章用的 Q 学习放回它的出处(Watkins 1989),并与 Sarsa、Expected Sarsa 摆在一起对比。