跳到主要内容

把任务拆开 — 分层强化学习

这一章讲三件事: 为什么长任务不是「多训一会儿」能解决的; 把任务拆成两层的两种拆法,以及它们各自拆的是什么; 以及上层怎么指挥下层、下层拿什么当工资。

它在全书链条里的位置:第 11 章那八个障碍的第三味药。 第 12 到 14 章治的是样本效率,这一章治的是探索(以及和它同源的稀疏奖励)。 第 11 章第 6 节说过:稀疏奖励任务的瓶颈其实在探索本身。 这一章的押注是:换一个粒度去探,组合就没那么多了。

顶层全景:一个「进屋充电」的任务,两种拆法

这一章从头到尾用同一个任务:一台移动机器人,要进屋、找到插座、给自己充电。

底层动作只有四个:前、后、左、右,每 0.1 秒一步。
从门口走到插座大约要 300 步,而只有插上的那一刻才给 +1 分,中间全是 0。

★ 用第 07 到 10 章那些算法直接练:随机乱走 300 步恰好插上的机会,基本是 0。★
★ 于是它永远拿不到那个 +1,也就永远学不到任何东西。★

┌── 拆法一:把一串动作打包成「一件事」 ──────────────── §2–§6
│ 不再是「前前左前右…」,而是「开门」「找插座」「对准」「插上」四件事。
│ ★ 上层只需要在这四件里挑,组合数从 4 的 300 次方掉到 4 的 4 次方。★
│ (这个对比是我们算的,用来说明量级差别。)

└── 拆法二:上层给下层指一个方向 ──────────────────── §7–§8
上层每 10 步说一句「往那边走」,下层只管「有没有朝那边走」。
★ 下层不需要知道「充电」这回事,它只对着一个方向拿分。★

图说:这就是本章的主走查。§2 到 §6 走第一条,§7、§8 走第二条,
两条都落在同一个「进屋充电」上。
(这个任务的设定是我们编的;「开门」这个选项的例子和两条路的机制都是书里的。)

1. 为什么长任务不是「多训一会儿」

这一节回答:分层押的是什么注。

先看现象

书里开门见山:近年来深度强化学习取得了显著成功, 「然而,长期规划对智能体来说仍然是一个挑战」——特别是在一些奖励稀疏、大时间跨度的环境1

书里点名的例子是两个即时战略类的大型游戏1

分层押的注

书里说分层强化学习「提供了一种方法来寻找这种复杂控制问题中的时空抽象和行为模式」2

「时空抽象」这四个字要拆开看,而这正好对应本章的两条路:

抽象在哪一维意思哪一条路
★ 时间上 ★把连着的一串动作打包成「一件事」选项框架(§2–§6)
★ 空间上 ★把「去哪里」和「怎么去」分开封建制(§7–§8)

书里给的类比是人:与人类认知的层次结构类似,分层「具备抽象多层次控制的潜力, 其中高层次的长期规划和元学习指导低层次的控制器」2

顺带还有两个好处

书里额外点了一句,而这一句常被忽略:层次结构的模块化「也提供了可移植性和可解释性」2

★ 可移植:「开门」这个技能学会了,换一个房间还能用 —— 不用重学。★
★ 可解释:出问题时你能指着说「是『找插座』那一段不行」,
而不是面对一个从像素到按键的黑盒子。★
(这两句展开是我们的解释;「可移植性和可解释性」是书里的原话。)

2. 第一条路:把一串动作打包成一件事

这一节给出这一章的第一个承重词。

先看现象

「开门」不是一个动作,是一串动作:靠近 → 抓门把 → 转。

但对上层来说,它应该是一件事 —— 上层不该关心门把手转了多少度。

书里的定义:三样东西打包

书里把这种打包的东西叫选项(也有人叫技能或宏操作), 定义是**「一种具有终止条件的子策略」:它观察环境并输出动作,直到满足终止条件为止**3

而书里把它拆成了三个零件4:

零件是什么「开门」这个选项里是什么
① 启动条件哪些局面下这个选项才能被启用 —— 书里叫「一组初始状态集」门把手在视野范围内
② 选项内置策略启用之后按什么走靠近 → 抓门把 → 转
③ 终止函数什么时候算干完了 —— 书里说它「通过伯努利分布提供随机终止条件」门被打开的概率

★ 注意 ③ 是随机的,不是一个开关。★ 「伯努利分布」是第 08 章第 2 节那个词:只有「是/否」两种结果,给一个数表示选「是」的机会。 所以每一步都要掷一次:这个选项是继续,还是到此为止。

书里给的正是「开门」这个例子:一个名为「开门」的选项 「可能包含一个用于靠近、抓取和转动门把手的策略,以及一个确定门被打开概率的终止条件」4

两层怎么摆

书里说得很清楚:一个选项框架由两层结构组成 —— 底层的每个元素是一个选项, 顶层是一个选项策略,「用来在片段开始或上个选项终结时候选择一个选项」5

★ 关键在「或上个选项终结时」这几个字:上层不是每一步都做决定。★

第 0 步 上层选了「开门」 ← 上层决策
第 1~40 步 全部由「开门」这个选项自己走 ← ★ 上层不插手 ★
每一步掷一次骰子:要不要终止?
第 41 步 骰子说终止 → 上层重新选一个,选了「找插座」 ← 上层决策
第 42~180 步 ……

★ 上层一共只做了几次决定,而不是 300 次。这就是「时间抽象」的全部意思。★
(步数是为演示编的;两层的摆法是书里的。)

3. 上层看到的世界变了:多了一个「要花多久」

这一节讲一个很容易被跳过、但对理解后面公式很要紧的变化。

先看现象

普通的马尔可夫决策过程里,一个动作就是一步 —— 做完就到下一个局面。

而上层选一个选项,可能 5 步就结束,也可能 60 步才结束。 ★ 「这一次决策会花多久」本身成了一个随机的东西。★

书里给的说法

书里说这可以看成马尔可夫过程「在时间层(几个时间步)上的分解」6, 而给它提供理论视角的是半马尔可夫决策过程6

普通的马尔可夫决策过程有五样东西:局面集、动作集、转移、奖励、折扣。
★ 半马尔可夫决策过程多一样:一个专门描述「转移要花多少时间」的东西。★

书里的说法:这个多出来的元素给出「在某个局面下执行某个动作时,转移时间为 t 的概率」。[^7]

★ 一句话:上层面对的不是「做了 A 会到 B」,而是「做了 A,大约 40 步之后会到 B」。★
书里说:选项框架中的顶层控制「可以被看成一个半马尔可夫决策过程上的策略」。[^7]

★ 记住这一条 —— 后面第 6 节那个终止函数的梯度,正是从「什么时候该停」这件事上来的。★

4. 人定的选项很脆,所以要自动发掘

这一节讲这条路的转折点,而书里那个例子非常具体。

先看现象:一个真实的脆弱

书里先承认人定的选项能用:研究表明,人工定义的选项和深度学习结合之后, 即使在很有挑战性的游戏环境里也能取得显著效果7

然后书里给了它的死穴,用的正是我们这个任务:

书里的例子:一个人工定义的策略,是让移动机器人「插上它的充电器」—— 而它「很有可能是只为充电器在视野范围内的状态而定制的」。 终止条件则规定:机器人成功插上、或者局面跑到启动条件之外时,终止概率为 1。8

★ 落到主走查上,这个脆弱是这样的:★

充电器在视野里 → 「插上充电器」这个选项可用 → 它工作得很好
机器人转了个身 → ★ 充电器不在视野里了 ★
→ 启动条件不满足 → 这个选项当场作废
→ 而人写这个选项时,根本没想过「先转回去」

★ 也就是说:人定的选项只在人想到的那些局面里成立。★
书里的判词:「初始集和终结条件是选项框架的一个制约因素。」[^9]

所以书里转向:「如何自动地发掘选项也曾是分层强化学习的一个研究主题」8

5. 自动发掘之一:把「接下来几步的计划」做成可学的矩阵

这一节讲第一个自动发掘的算法,而它的三个零件都很实在。

它的想法

书里介绍的算法叫 STRAW,它的做法是把「接下来打算做什么」显式地写出来,当成网络的输出9

★ 它有两块计划,而两块合起来就是一个「隐式的选项」:★

① 动作-计划:一张矩阵。每一列对应未来的一个时间步,
列里的数表示「那一步倾向于做哪个动作」。
书里的说法:它是一个显式的随机变量,「用于表示接下来一段时间内计划执行的动作」。[^11]

② 承诺-计划:一行数。它管的是★「什么时候重新做计划」★ ——
书里说它是「一个决定在哪一步网络结束一个宏动作并更新动作-计划的状态变量」;
而它当前这一格的值,「提供了终止条件的伯努利分布的参数」。[^12]

★ 把这两块对上第 2 节那三个零件:★
① 就是「选项内置策略」,只不过被写成了一张未来 T 步的时间表
② 就是「终止函数」,只不过它也是学出来的

计划怎么往前推

中间有一个很朴素的操作值得记:

★ 在照计划执行的期间,两块计划都被一个「时间移位」的操作直接往前滑一格 ——
做法是把矩阵的第一列去掉,末尾补 0。★

第 t 步 动作-计划 = [现在做什么 | 下一步 | 下下步 | …]
第 t+1 步 动作-计划 = [下一步 | 下下步 | … | 0 ] ← ★ 只是滑了一格,没重算 ★

★ 这就是「承诺」两个字的意思:不到重新计划的时候,就照着原计划往下走。★
(这个滑动操作是书里的;上面这两行示意是我们画的。)

一项防止它老改主意的损失

书里给的训练损失有三项,而第三项最值得记:

★ 书里说,最后一项「惩罚了重新计划并鼓励承诺」。★10

★ 为什么需要这一项:如果不罚,网络会学会每一步都重新计划 —— 那它就退回成一个普通的、没有分层的策略了。★ 书里还提到一个相关的实现细节:某个标量(一个单独的数,区别于一整排或一整张的那种) 被固定为 40,「以便经常重新做计划」10

书里对结果给的说法是:在一个二维迷宫任务上,它的表现优于一种常见的循环网络, 并且「很接近由 Dijkstra 算法给出的最优策略」;在选出的 8 个雅达利游戏里, 它和它的变体在 6 个上得分更高11

6. 自动发掘之二:把策略梯度定理扩展到选项上

这一节走主走查的第一条路,并给出这一章最漂亮的一个式子。

它的想法

书里介绍的算法叫选项-批判者,它做的事一句话: 把策略梯度定理扩展到选项上,提供一种端到端的、对选项和选项策略的联合学习12

「策略梯度定理」是第 08 章第 4 节那个 ——「把这个动作的机会调大」的方向 × 一个权重。

那个「继续还是换」的值

书里给了一个式子,它回答的是:一个选项走到下一个局面时,它到底值多少13

★ 这个值 = (1 − 终止概率) × 「继续用这个选项能拿多少」
+ 终止概率 × 「换一个最好的选项能拿多少」★

主走查上算一遍(这几个数是**为演示编的**):

机器人正在执行「开门」,走到了门前这个局面。
终止概率 β = 0.2
继续用「开门」的价值 = 3.0
换一个最好的选项的价值 = 4.5 ← 「找插座」已经比「开门」值钱了

这个值 = 0.8 × 3.0 + 0.2 × 4.5 = 2.4 + 0.9 = **3.3**

★ 直觉:它是一个加权平均 —— 越倾向于终止,这个值就越贴近「换一个」的那个数。★

那个负号:终止梯度定理

书里给了两条定理1415:

定理管什么
选项内置策略梯度定理选项里面那个策略怎么改 —— 形状和第 08 章那个策略梯度定理一样
★ 终止梯度定理 ★终止概率怎么改

★ 第二条的式子前面带一个负号,而它乘的正是选项的优势。★15

「选项的优势」= 「继续用这个选项值多少」− 「这个局面上最好的选项值多少」[^19]

主走查上:优势 = 3.0 − 4.5 = **−1.5** ← 负数:这个选项已经不如换一个了

梯度前面那个负号一乘:−(−1.5) = **+1.5** → ★ 把终止概率往上推 ★
→ 「开门」这个选项该收工了

反过来,如果这个选项还在占便宜(优势为正,比如 +1.2):
−(+1.2) = −1.2 → ★ 把终止概率往下压 ★ → 继续用它

★ 一句话记住这条定理:这个选项还在占便宜,就压低它的终止概率;
已经不如换一个了,就抬高它。★
(3.0、4.5、0.2 这三个数是为演示编的;两条定理与那个负号是书里的。)

书里还交代了这个算法怎么对上第 08 章那个结构:选项内置策略、终止函数和选项策略 都属于演员的部分,而批判者是那两个价值函数16另外它用了两种不同的更新速度:更新选项内置策略时快一些,更新终止函数时慢一些16

7. 第二条路:上层当领导,下层当员工

这一节走主走查的第二条路,并给出这一章第二个承重词。

它拆的是另一维

书里说得很明确:顶层的封建智能体「并非像选项框架那样学习一个选项的时间分解」, 而是「通过为底层策略制定明确目标来分解状态空间的问题」17

★ 选项框架切的是时间:这 40 步归「开门」管。★
★ 封建制切的是空间:上层说「去那个位置」,下层负责怎么去。★

两条硬原则

这套办法的名字来自封建等级制:每层的管理者可以给下级派任务、发奖惩18而书里给了两条「保证封建制规则」的关键原则,值得原样记住18:

原则书里的意思
★ 奖励隐藏 ★无论管理者做出的指令是否能让他的上级满意,他的下级都必须服从
★ 信息隐藏 ★下级不知道管理者被派了什么任务;管理者的上级也不知道他给下级安排了什么

★ 第一条翻译成人话:下层不许因为「这个目标看起来很蠢」就不执行。★ 它拿的分只来自「有没有完成上层给的目标」,和任务本身成不成功无关。

主走查:上层给方向,下层拿方向的分

书里介绍的具体算法叫 FuN,它有两个模块:管理者和工作者19

书里说:管理者「在一个潜在状态空间中更低的时间分辨率上设定目标」, 而工作者「学习如何通过内在奖励达到目标」19

「潜在状态空间」= 网络把原始画面压成一串数之后的那个空间(第 13 章第 10 节见过)。
「内在奖励」= 不是环境给的分,是上层发给下层的工资。

★ 主走查上走一遍(这些数是**为演示编的**;机制与那个余弦相似度是书里的):★

第 0 步 管理者输出一个方向目标 g = (0.6, 0.8) ← 一个单位长度的方向,指向门
★ 注意它给的是「方向」,不是「位置」★

第 3 步 工作者实际走出来的位移方向,归一化后是 (0.914, 0.406)
内在奖励 = 两个方向的余弦相似度
= 0.6 × 0.914 + 0.8 × 0.406
= 0.548 + 0.325 = **0.873**
★ 走得挺对,拿到 0.87 分 ★

如果它走反了,比如方向是 (−0.914, 0.406):
= −0.548 + 0.325 = **−0.223** ★ 直接扣分 ★

第 10 步 管理者重新给一个目标 ← 每 10 步才决策一次

「余弦相似度」是什么:两个方向完全一致时是 1,垂直时是 0,完全相反时是 −1。 ★ 用它当工资的好处,书里点了一句:状态空间中的方向偏移「为目标提供了结构不变性」20 —— 也就是说,同一个「往那边走」的指令,在屋子的任何位置都成立。★

两个必须记住的实现细节

★ 细节一:管理者和工作者之间不传梯度。★[^25]
书里明说了这一条。为什么要这样:如果传,工作者就会为了自己好拿分,
把管理者的「目标」拧成一个方便自己的内部变量 ——
书里的说法是「这可能导致目标会变成一个内部潜在变量,而不是分层标志」。[^26]
★ 那样两层就退化成一个大网络,分层名存实亡。★

★ 细节二:管理者自己怎么学?按「预测优势的方向」更新 ——★[^26]
它要让自己给出的那个方向,和「接下来这 10 步实际走出来的方向」对上;
而这件事的权重是那 10 步的优势(第 08 章第 7 节那个词)。
★ 也就是说:走出来的结果好,就多给这个方向;结果差,就少给。★

书里还老实交代了一处偏离:实践中工作者拿到的是「环境奖励 + 一个系数 × 内在奖励」, 而这「软化了原始封建制中的奖励隐藏条件」21

★ 也就是说:严格的奖励隐藏(下层完全看不到环境奖励)在实践中没有被照做。★

书里给的结果:在《蒙特祖玛的复仇》上(第 11 章第 6 节那个探索难题), 它「在采样效率上有着显著的提高」;在另外 10 款雅达利游戏上, 它的分数「明显高于选项-批判者结构」22

8. 一个很实在的麻烦:下层一直在变,上层的旧数据就作废了

这一节讲这条路上一个非常具体的工程问题,而它的解法很巧。

先看现象

上层的一条经验长这样:「在这个局面,我给的目标是 (0.6, 0.8),结果 10 步后到了那里,拿了 2 分」。

★ 问题:这条经验是三万步以前记下来的,而那时候的下层和现在的下层不是同一个东西。★

→ 现在的下层,拿到同一个目标 (0.6, 0.8),走出来的可能完全不一样
→ ★ 这条旧数据描述的因果,已经不成立了 ★

书里描述这个问题的原话是:「过去的低层控制器观测的转移数据并不能反映动作」23

解法:给旧数据重新贴标签

书里介绍的方法叫 HIRO,它的做法一句话24:

先说「标记」:给一条已经存下来的数据换一个标签 —— 数据本身(局面、动作、奖励)一个字不动,只改「当时的目标是什么」这一栏。

★ 旧的那条数据被重新标记一个不同的目标 —— 挑那个「让现在的下层最可能走出这串动作」的目标。★24

★ 主走查上是这样(这些数是为演示编的):★

旧数据记的目标: g = (0.6, 0.8)
旧数据记的那串动作: 「前、前、左、前、…」

★ 问:现在的下层,要看到什么目标,才最可能走出这一串动作?★
→ 试几个候选,算一算「现在的下层在这个目标下做出这串动作的机会有多大」
→ 发现 ĝ = (0.2, 0.98) 时机会最大

★ 于是把这条数据的标签从 (0.6, 0.8) 改成 (0.2, 0.98),再拿去训上层。★

书里还说了候选目标从哪来:从一个候选集里挑,而这个集合包含原来的目标、
「起点到终点的位移」那个差,以及从一个对角高斯分布里采的若干个。[^31]

★ 为什么这么改是对的:上层要学的是「给什么目标 → 会发生什么」。 既然下层变了,那就把标签改成「按现在的下层,这串行为对应的其实是那个目标」—— 这样这条数据描述的因果就重新成立了。★ (这段解释是我们的;做法是书里的。)

书里给的效果:实验表明「离线策略修正具有显著的优势」, 而且对低层控制器的重标记「可以对初始训练进行加速」25

书里还有一个反直觉的实测:与在嵌入空间里表示目标不同, 「HIRO 直接使用原始观测数据更为有效」26 —— ★ 也就是说:上一节那个「在压缩后的空间里给方向」的做法,未必比直接用原始坐标好。★

9. 作者自己泼的一盆冷水

这一节是这一章的落点,而它是全书最诚实的几句话之一。

先把两条路的分工摆清楚

书里在总结时给了一张对照27:

算法抽象在哪一维
选项框架(§2–§6)时域抽象 —— 把时间切段
FuN(§7)状态抽象 —— 把空间切开
★ HIRO(§8)★★ 两者都有 ★ —— 目标里既有方向(空间),目标转移函数又带时间信息

书里还给了另一个视角:按「下层的奖励信号从哪来」分28:

  • 端到端从环境学 —— STRAW 和选项-批判者属于这一类;
  • 靠一个额外造出来的奖励学 —— FuN 和 HIRO 属于这一类。

那盆冷水

书里在这一章的最后一段写道:

★「实验结果表明,分层架构带来了一些效果提升,但并没有足够的证据表明, 它是确实实现了分层抽象,还是只是进行了更有效的探索。」★29

★ 这句话把整章的成果打了个折,而且是作者自己打的。★

判断(我们的,不是书里的): 这句冷水比它看起来更重要,因为它同时否定了这一章的两个卖点。 §1 说分层还带来「可移植性和可解释性」—— 而这两条恰恰建立在「它真的学到了抽象」这个前提上。 如果它只是探索得更有效,那么「开门」那个选项里学到的东西, 换个房间未必能用;而你指着某一段说「这一段在开门」也未必对得上。 ★ 所以这盆冷水泼的不只是效果,是分层这件事的全部理由。★ 如果错,会错在: 「没有足够证据」不等于「证据表明没有」—— 这是一句关于举证不足的话,不是一句否定。 判据是:拿一个学出来的选项换个任务复用,看它还成不成立。

作者的判断与证据

书里给了定义或定理的:

  • 选项的三元定义(启动条件、内置策略、终止函数)4;
  • 半马尔可夫决策过程多出来的那一样(转移要花多久)30;
  • ★ 选项内置策略梯度定理与终止梯度定理 ★1415 —— 书里给了完整的式子,而那个负号是这一章最值钱的一处;
  • 封建制的两条原则(奖励隐藏、信息隐藏)18;
  • FuN 的前向计算与两条更新规则1931;
  • 重标记的具体做法与候选目标的来源2432

作者的判断与实验说法:

  • 人定的选项很脆(充电器那个例子)8 —— 一个构造出来的说明,不是实验;
  • STRAW「很接近由 Dijkstra 算法给出的最优策略」、8 个游戏里赢 6 个11 —— 有实验但没有数字;
  • FuN「在采样效率上有着显著的提高」、分数「明显高于选项-批判者结构」22 —— 同样是定性描述,没有给任何一个数;
  • HIRO「直接使用原始观测数据更为有效」26 —— 一条实测结论,书里没给数据;
  • ★ 那盆冷水 ★29 —— 作者对整个方向的判断。

书里没有给的:

  • ★ 这一章依然一个具体数字都没有。★ 三个算法,零对照表;
  • 选项该定几个、目标该多久设一次,书里没有讨论;
  • 两条路(选项与封建制)怎么选,书里给了分类,没有给判据。

边界与局限

  • ★ 这一章讲的是「怎么拆」,不是「拆成什么」。★ 一个任务该拆成哪几件事,除了自动发掘那两个算法之外,书里没有正面处理;
  • 书里对 STRAW 的介绍偏重网络结构(注意力怎么读写、滤波器怎么摆), 而它作为一个分层算法的行为,书里几乎没描述;
  • 奖励隐藏这条原则在实践中被软化了21 —— 书里承认了,但没有讨论软化到什么程度会失效;
  • 两层以上怎么办,书里只提了一句「更高层的选项可以看成低层选项在时间上进一步扩展」30, 没有展开;
  • 书里在结尾列了十几篇相关工作(自下而上的选项发掘、分层选项-批判者、 把终止条件解耦成两种、后见之明目标转移等)33, 但每一篇只有一两句话 —— 这一节更像一份文献清单,不是讲解;
  • ★ 最要紧的一条:书里自己说证据不足。★ 读这一章要带着 §9 那盆冷水。

可带走的

全章那条走查,一行写完: 一台机器人要进屋充电,底层四个动作、300 步、只在插上时给 +1 → 拆法一(选项):「开门」= 启动条件(门把手在视野内) + 内置策略(靠近、抓、转) + 终止函数; 走到门前时,终止概率 0.2、继续值 3.0、换一个值 4.5 → 这一步的值 = 0.8×3.0 + 0.2×4.5 = 3.3; 优势 = 3.0 − 4.5 = −1.5,梯度前面那个负号一乘变成 +1.5 → 把终止概率往上推,该收工了拆法二(封建制): 上层第 0 步给方向 (0.6, 0.8),第 3 步下层实际走 (0.914, 0.406), 内在奖励 = 余弦相似度 = 0.873;走反了就是 −0.223 → 第 10 步上层重设目标。 (所有数值都是为演示编的;两个式子与「开门」这个例子是书里的。)

  1. 长任务不是「多训一会儿」能解决的 —— 稀疏奖励加大跨度时,底层动作的组合根本探不完;
  2. 分层押的注是「时空抽象」:选项切时间,封建制切空间;
  3. ★ 选项 = 三样东西打包:哪些局面能启用它、启用后怎么走、什么时候算完。★ 而第三样是随机的,每一步掷一次;
  4. 两层的摆法:上层只在「片段开始」或「上一个选项终结」时做决定 —— 300 步的任务,上层可能只做四次决定;
  5. 上层面对的世界多了一维:「这一次决策要花多久」也是随机的(半马尔可夫决策过程);
  6. ★ 人定的选项很脆:为「充电器在视野内」写的策略,机器人一转身就作废。★ 所以要自动发掘;
  7. 一种发掘法是把「未来 T 步的计划」和「什么时候重新计划」都做成可学的矩阵; ★ 而必须配一项损失去惩罚「老改主意」—— 不然它退回成普通策略。★
  8. 另一种是把策略梯度定理扩展到选项上,它同时学选项里的策略和终止函数;
  9. ★ 终止梯度定理一句话:这个选项还在占便宜,就压低它的终止概率;不如换一个了,就抬高。★ 那个负号就是干这个的;
  10. 封建制的两条原则:下级必须服从(奖励隐藏)、上下互相不知道对方的任务(信息隐藏);
  11. FuN 里上层给的是「方向」不是「位置」,下层的工资是「有没有朝那个方向走」; ★ 用方向的好处是它在屋子任何位置都成立。★
  12. ★ 上下两层之间不传梯度 —— 传了,目标就会被拧成一个方便下层的内部变量,分层名存实亡。★
  13. 实践中奖励隐藏被软化了(下层同时拿环境奖励和内在奖励),书里承认了这一点;
  14. 下层一直在变,上层的旧数据就作废了;解法是重新贴标签 —— ★ 挑那个「让现在的下层最可能走出这串动作」的目标当新标签。★
  15. 一条反直觉的实测:直接用原始观测当目标,比在压缩后的空间里给目标更有效;
  16. ★ 作者自己的收尾:有效果提升,但没有足够证据表明它真的实现了分层抽象, 还是只是探索得更有效。★

原文地图

主题原书章原文位置
长期规划是挑战第10章 分层强化学习text/15-ch10.txt:13(搜「长期规划对智能体来说仍然是一个挑战」) · text/15-ch10.txt:15(搜「提供了一种方法来寻找这种」)
时空抽象与两个额外好处第10章 分层强化学习text/15-ch10.txt:18(搜「具备抽」) · text/15-ch10.txt:20(搜「也提供了可移植性和可解释性」)
两条路的分工第10章 分层强化学习text/15-ch10.txt:27(搜「高层策略会在特定的时间步上切换低层策略」) · text/15-ch10.txt:28(搜「高层控制器负责为下层控制器提出明确的目标」)
选项的定义与三元组第10章 分层强化学习text/15-ch10.txt:37(搜「将动作在时间层面扩展」) · text/15-ch10.txt:40(搜「它观察环境并输出动作」) · text/15-ch10.txt:43(搜「为一组初始状态集」) · text/15-ch10.txt:44(搜「是一个通过伯努利分布提供随机终止条件的终止函数」)
「开门」那个例子第10章 分层强化学习text/15-ch10.txt:48(搜「能包含一个用于靠近、抓取和转动门把手的策略」)
两层结构第10章 分层强化学习text/15-ch10.txt:49(搜「一个选项框架由两层结构组成」)
半马尔可夫决策过程第10章 分层强化学习text/15-ch10.txt:55(搜「这可以看成马尔可夫过程在时间层」) · text/15-ch10.txt:58(搜「转移时间为 t 的概率」)
人定选项的脆弱第10章 分层强化学习text/15-ch10.txt:66(搜「人工定义的选项通过和深度学习的结合」) · text/15-ch10.txt:68(搜「初始集和终结条件是选项框架的一个制约因素」) · text/15-ch10.txt:69(搜「插上它的充电器」) · text/15-ch10.txt:70(搜「如何自动地发掘选项也曾是」)
STRAW 的两块计划第10章 分层强化学习text/15-ch10.txt:83(搜「第一个模块将环境的观测数据转化为一个动作-计划」) · text/15-ch10.txt:89(搜「用于表示接下来一段时间内计划执行的动作」) · text/15-ch10.txt:92(搜「第二个模块通过单行矩阵」) · text/15-ch10.txt:94(搜「供了终止条件的伯努利分布的参数」)
时间移位与惩罚重新计划第10章 分层强化学习text/15-ch10.txt:95(搜「时间移位运算符」) · text/15-ch10.txt:116(搜「以便经常重新做计划」) · text/15-ch10.txt:140(搜「后一项惩罚了重新计划并鼓励承诺」)
STRAW 的实验结果第10章 分层强化学习text/15-ch10.txt:146(搜「很接近由 Dijkstra 算法给出的最优策略」) · text/15-ch10.txt:148(搜「游戏中的 6 个里」)
选项-批判者第10章 分层强化学习text/15-ch10.txt:153(搜「将策略梯度定理扩展至选」) · text/15-ch10.txt:163(搜「是进入一个状态」) · text/15-ch10.txt:189(搜「选项内置策略、终止函数和选项策略都属于行动者的部」)
两条定理第10章 分层强化学习text/15-ch10.txt:194(搜「选项内置策略梯度理论」) · text/15-ch10.txt:206(搜「终止梯度定理」) · text/15-ch10.txt:175(搜「为选项的」)
封建制的两条原则第10章 分层强化学习text/15-ch10.txt:230(搜「奖励隐藏」) · text/15-ch10.txt:232(搜「该管理者的下级都必须服从」) · text/15-ch10.txt:233(搜「信息隐藏是指管理者的下级不知道该管理者被派予的任务」)
它拆的是状态空间第10章 分层强化学习text/15-ch10.txt:234(搜「顶层的封建智能体并非像选项框架那样学习一个选项的时间分解」)
FuN 的两个模块第10章 分层强化学习text/15-ch10.txt:247(搜「管理者在一个潜在状态空间中更低的时间分辨率上设定目标」) · text/15-ch10.txt:272(搜「管理者和工作者之间没有梯度传播」)
管理者怎么学、内在奖励第10章 分层强化学习text/15-ch10.txt:278(搜「然而这样会导致」) · text/15-ch10.txt:280(搜「更新规则遵循预测优势方向」) · text/15-ch10.txt:286(搜「其内在奖励定义如下」) · text/15-ch10.txt:291(搜「状态空间中的方向偏移为目标提供了结构不变性」)
奖励隐藏被软化第10章 分层强化学习text/15-ch10.txt:292(搜「软化了原始 FRL 中的奖励隐藏条件」)
FuN 的结果第10章 分层强化学习text/15-ch10.txt:311(搜「在采样效率上有着显著的提高」) · text/15-ch10.txt:312(搜「的分数明显高于选项-批判者结构」)
旧数据作废与重标记第10章 分层强化学习text/15-ch10.txt:324(搜「考虑了高层控制器通过自动提出一些目标来监督低层控制器的方案」) · text/15-ch10.txt:343(搜「然而过去的低层控制器观测的转移数据并」) · text/15-ch10.txt:344(搜「提出使用重标记」) · text/15-ch10.txt:345(搜「将被重新标记一个不同的目标」)
候选目标与结果第10章 分层强化学习text/15-ch10.txt:357(搜「从一个包括原始目标的目标候选集中选择」) · text/15-ch10.txt:361(搜「离线策略修正具有显著的优势」) · text/15-ch10.txt:328(搜「直接使用原始观测数据更为有效」)
两个视角的总结第10章 分层强化学习text/15-ch10.txt:4(搜「先」) · text/15-ch10.txt:407(搜「选项框架通常学习时域抽象」) · text/15-ch10.txt:408(搜「可以被认为既考虑了状态抽象又考虑了时域抽象」)
那盆冷水第10章 分层强化学习text/15-ch10.txt:419(搜「分层架构带来了一些效果提升」) · text/15-ch10.txt:420(搜「或者只是进行了更有效的探索」)

Footnotes

  1. 出处:「第10章 分层强化学习」第 13 段(text/15-ch10.txt:13,搜「长期规划对智能体来说仍然是一个挑战」)。原文点名的是奖励稀疏、大时间跨度的环境,并举了两个大型实时游戏。 2

  2. 出处:「第10章 分层强化学习」第 15 段(text/15-ch10.txt:15,搜「提供了一种方法来寻找这种」)、第 18 段(text/15-ch10.txt:18,搜「具备抽」)与第 20 段(text/15-ch10.txt:20,搜「也提供了可移植性和可解释性」)。原文说的是「复杂控制问题中的时空抽象和行为模式」,并把它类比人类认知的层次结构。 2 3

  3. 出处:「第10章 分层强化学习」第 37 段(text/15-ch10.txt:37,搜「将动作在时间层面扩展」)与第 40 段(text/15-ch10.txt:40,搜「它观察环境并输出动作」)。原文还给了选项的另外两个叫法:技能、宏操作。

  4. 出处:「第10章 分层强化学习」第 43 段(text/15-ch10.txt:43,搜「为一组初始状态集」)、第 44 段(text/15-ch10.txt:44,搜「是一个通过伯努利分布提供随机终止条件的终止函数」)与第 48 段(text/15-ch10.txt:48,搜「能包含一个用于靠近、抓取和转动门把手的策略」)。原文写明:一个选项只有在当前局面属于它的初始状态集时,才能被用在这个局面上。 2 3

  5. 出处:「第10章 分层强化学习」第 49 段(text/15-ch10.txt:49,搜「一个选项框架由两层结构组成」)与第 52 段(text/15-ch10.txt:52,搜「一旦给出了选项」)。原文还说:选项策略从环境给出的奖励信息学习,而选项本身可以通过明确的子目标来学。

  6. 出处:「第10章 分层强化学习」第 54 段(text/15-ch10.txt:54,搜「顶层模块学习的是一个选项策略」)与第 55 段(text/15-ch10.txt:55,搜「这可以看成马尔可夫过程在时间层」)。 2

  7. 出处:「第10章 分层强化学习」第 66 段(text/15-ch10.txt:66,搜「人工定义的选项通过和深度学习的结合」)。原文举的是《我的世界》和雅达利游戏。

  8. 出处:「第10章 分层强化学习」第 68 段(text/15-ch10.txt:68,搜「初始集和终结条件是选项框架的一个制约因素」)、第 69 段(text/15-ch10.txt:69,搜「插上它的充电器」)与第 70 段(text/15-ch10.txt:70,搜「如何自动地发掘选项也曾是」)。 2 3

  9. 出处:「第10章 分层强化学习」第 73 段(text/15-ch10.txt:73,搜「它通过开环选项内置策略」)与第 79 段(text/15-ch10.txt:79,搜「是一种新奇的深度递归神经网络结构」)。原书在脚注里解释了「开环」:不将控制的结果反馈、进而影响当前控制的系统(text/15-ch10.txt:85,搜「开环意即不将控制的结果反馈」);选项-批判者那一路则是闭环的(text/15-ch10.txt:86,搜「闭环意即将控制的结果进行完全反馈」)。

  10. 出处:「第10章 分层强化学习」第 95 段(text/15-ch10.txt:95,搜「时间移位运算符」)、第 116 段(text/15-ch10.txt:116,搜「以便经常重新做计划」)与第 140 段(text/15-ch10.txt:140,搜「后一项惩罚了重新计划并鼓励承诺」)。原文对时间移位的描述是:通过移除矩阵的第一列并在末尾添 0 来移动矩阵。 2

  11. 出处:「第10章 分层强化学习」第 146 段(text/15-ch10.txt:146,搜「很接近由 Dijkstra 算法给出的最优策略」)与第 148 段(text/15-ch10.txt:148,搜「游戏中的 6 个里」)。原书注明这些实验用的强化学习算法是 A3C(我们的第 17 章讲它)。 2

  12. 出处:「第10章 分层强化学习」第 153 段(text/15-ch10.txt:153,搜「将策略梯度定理扩展至选」)。原书注明这个算法出自 Bacon 等人 2017 年的工作,并说它直接优化了折扣化回报。

  13. 出处:「第10章 分层强化学习」第 163 段(text/15-ch10.txt:163,搜「是进入一个状态」)。这是原书的式 10.5:进入一个新局面时执行某个选项的价值,是「不终止的机会 × 继续用它的价值」加「终止的机会 × 换一个最好的选项的价值」。

  14. 出处:「第10章 分层强化学习」第 194 段(text/15-ch10.txt:194,搜「选项内置策略梯度理论」)。这是原书的定理 10.1。 2

  15. 出处:「第10章 分层强化学习」第 206 段(text/15-ch10.txt:206,搜「终止梯度定理」)。这是原书的定理 10.2;它的式子(10.10)最前面带一个负号,乘的是终止函数对参数的导数与选项优势的乘积。 2 3

  16. 出处:「第10章 分层强化学习」第 187 段(text/15-ch10.txt:187,搜「通过一种基于两种时间尺度结构来学习价值」)与第 189 段(text/15-ch10.txt:189,搜「选项内置策略、终止函数和选项策略都属于行动者的部」)。原文写明:更新选项内置策略时用更快的时间尺度,更新终止函数时用比例更小的时限。 2

  17. 出处:「第10章 分层强化学习」第 234 段(text/15-ch10.txt:234,搜「顶层的封建智能体并非像选项框架那样学习一个选项的时间分解」)。

  18. 出处:「第10章 分层强化学习」第 227 段(text/15-ch10.txt:227,搜「提出了一种封建」)、第 230 段(text/15-ch10.txt:230,搜「奖励隐藏」)、第 232 段(text/15-ch10.txt:232,搜「该管理者的下级都必须服从」)与第 233 段(text/15-ch10.txt:233,搜「信息隐藏是指管理者的下级不知道该管理者被派予的任务」)。原书注明封建制强化学习出自 Dayan 等人 1993 年的工作。 2 3

  19. 出处:「第10章 分层强化学习」第 246 段(text/15-ch10.txt:246,搜「它有两个」)与第 247 段(text/15-ch10.txt:247,搜「管理者在一个潜在状态空间中更低的时间分辨率上设定目标」)。原书注明 FuN 出自 Vezhnevets 等人 2017 年的工作。 2 3

  20. 出处:「第10章 分层强化学习」第 286 段(text/15-ch10.txt:286,搜「其内在奖励定义如下」)与第 291 段(text/15-ch10.txt:291,搜「状态空间中的方向偏移为目标提供了结构不变性」)。原书给的内在奖励是若干步内「实际位移方向」与「目标方向」的余弦相似度的平均。

  21. 出处:「第10章 分层强化学习」第 292 段(text/15-ch10.txt:292,搜「软化了原始 FRL 中的奖励隐藏条件」)。原文写明工作者实际拿到的是环境奖励加上一个系数乘内在奖励。 2

  22. 出处:「第10章 分层强化学习」第 311 段(text/15-ch10.txt:311,搜「在采样效率上有着显著的提高」)与第 312 段(text/15-ch10.txt:312,搜「的分数明显高于选项-批判者结构」)。 2

  23. 出处:「第10章 分层强化学习」第 343 段(text/15-ch10.txt:343,搜「然而过去的低层控制器观测的转移数据并」)。

  24. 出处:「第10章 分层强化学习」第 324 段(text/15-ch10.txt:324,搜「考虑了高层控制器通过自动提出一些目标来监督低层控制器的方案」)、第 344 段(text/15-ch10.txt:344,搜「提出使用重标记」)与第 345 段(text/15-ch10.txt:345,搜「将被重新标记一个不同的目标」)。原书注明 HIRO 出自 Nachum 等人 2018 年的工作。 2 3

  25. 出处:「第10章 分层强化学习」第 361 段(text/15-ch10.txt:361,搜「离线策略修正具有显著的优势」)。原书说实验是在四个有挑战性的任务上做的。

  26. 出处:「第10章 分层强化学习」第 328 段(text/15-ch10.txt:328,搜「直接使用原始观测数据更为有效」)。 2

  27. 出处:「第10章 分层强化学习」第 407 段(text/15-ch10.txt:407,搜「选项框架通常学习时域抽象」)与第 408 段(text/15-ch10.txt:408,搜「可以被认为既考虑了状态抽象又考虑了时域抽象」)。

  28. 出处:「第10章 分层强化学习」第 369 段(text/15-ch10.txt:369,搜「我们对近年来 HRL 方面的工作进行了简要的总结」)与第 372 段(text/15-ch10.txt:372,搜「第二种观点认为通过辅助奖励进行学习可以获得更好的分层效果」)。这是原书图 10.6 那两个视角里的第一个。

  29. 出处:「第10章 分层强化学习」第 419 段(text/15-ch10.txt:419,搜「分层架构带来了一些效果提升」)与第 420 段(text/15-ch10.txt:420,搜「或者只是进行了更有效的探索」)。原书还说未来可能的突破方向是概率规划与相关理论研究。 2

  30. 出处:「第10章 分层强化学习」第 57 段(text/15-ch10.txt:57,搜「是一个具备额外元素」)、第 58 段(text/15-ch10.txt:58,搜「转移时间为 t 的概率」)与第 59 段(text/15-ch10.txt:59,搜「架中的顶层控制可以被看成一个 SMDP 上的策略」)。原文还提了一句多级选项的情况:更高层的选项可以看成低层选项在时间上进一步扩展。 2

  31. 出处:「第10章 分层强化学习」第 278 段(text/15-ch10.txt:278,搜「然而这样会导致」)与第 280 段(text/15-ch10.txt:280,搜「更新规则遵循预测优势方向」)。原文的担心是:端到端训练会让梯度从工作者经由目标传给管理者,「这可能导致目标会变成一个内部潜在变量,而不是分层标志」。

  32. 出处:「第10章 分层强化学习」第 357 段(text/15-ch10.txt:357,搜「从一个包括原始目标的目标候选集中选择」)。原文写明候选集里包含原始目标、起终点位移的那个差,以及从一个对角高斯分布里采出来的若干个。

  33. 出处:「第10章 分层强化学习」第 380 段(text/15-ch10.txt:380,搜「介绍了一种自下而上的方法」)与第 396 段(text/15-ch10.txt:396,搜「进一步引入了后见之明目标转移」)。这一节列了十几项相关工作,每项一两句话。