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