跳到主要内容

抄专家的作业(下) — 不学动作,反推奖励

这一章讲三件事: 为什么有些任务只能反推奖励、不能照着动作学; 反推这件事本身为什么是个死结,以及绕过它要付什么代价; 以及示范里连动作都没有(只有一段视频)时,还剩哪些办法。

它在全书链条里的位置:第 12 章的下半场。 两章治的是同一个障碍(样本效率),用的是同一份资源(人的示范); 分界线只有一条:要不要把奖励函数反推出来。 第 12 章不反推,这一章反推 —— 以及反推不成时怎么办。

顶层全景:一段「拉开抽屉」的视频,判别器的三次打分

这一章从头到尾用同一个例子:一段人拉开抽屉的视频。 只有画面,没有记录他的手往哪个方向使了多大劲。

第 12 章那套办法在这里全部失效 —— 它们都要求「这一帧配一个动作」。

做法:训一个裁判,让它去分辨「这一帧是那个人做的,还是我的策略做的」。
裁判越说不清,说明我做得越像。★ 裁判的打分,就当我这一步的奖励。★

裁判输出一个 0 到 1 的数,越接近 1 表示它越认为「这是专家做的」。

第 1 轮 给专家的帧打 0.9 给策略的帧打 0.3 → 策略这一步的奖励 = ln(0.3) = **−1.20**
★ 差得远,一眼就分出来了 ★
第 2 轮 给专家的帧打 0.7 给策略的帧打 0.45 → 奖励 = ln(0.45) = **−0.80**
★ 涨了 0.40,说明策略在变像 ★
第 N 轮 ★ 对谁都打 0.5 ★ → 奖励 = ln(0.5) = **−0.69**
★ 对专家和策略给出同一个数 ★

┌── 好消息:策略确实学会了 —— 裁判分不出来,就是「做得一样」的定义。
└── ★ 坏消息:这时候你手上什么都没有。裁判对所有输入都输出 0.5,
从它身上提不出任何一个「什么样算好」的函数。换个抽屉、换个房间,一切重来。★

图说:这就是本章的主走查。第 4 节推出这套做法,第 5 节说明那个 0.5 意味着什么,
第 6、7 节讲怎么把奖励函数捞回来。
(三组打分是**为演示编的**;「最优时对所有输入收敛到 0.5」是书里的结论,
三个奖励值是我们按那三个打分算的。)

1. 有些任务的奖励根本写不出来

这一节回答:上一章那套已经能用了,为什么还要往回推一层。

先看现象:一个你写不出公式的目标

书里举的例子非常好,而且一句话就能说明白。 这里的注意力指的是字面意思:有限的算力该多分给哪一路输入。

对于一个基于视觉的自动驾驶车辆,「多少注意力应当被分配到处理不同的反光镜上」—— 这难以通过奖励函数工程的方式来定义。1

你知道「看后视镜」是对的,但你写不出「左后视镜值 0.3 分、右后视镜值 0.2 分」这种公式。 更麻烦的是这些目标之间要权衡,而权衡的系数你也说不出来。

书里给的定位就是这句:逆向强化学习对某些应用是有用的, 比如「难以写出显式的奖励函数来实现在不同的目标之间权衡」的情况1

做法:从行为里把奖励倒推出来

书里给这件事的名字是逆向强化学习,定义一句话: 从观察到的最优行为中提取奖励函数2

正着走(前十章): 给你奖励函数 → 学一个策略
★ 倒着走(这一章): 给你一份好行为 → 反推出「他在最大化什么」★

而它实际怎么跑?书里说这类方法「反复地在两个过程中交替」2:

外循环: 拿示范去推断一个隐藏的奖励(或者它的负数,代价)函数

内循环: ★ 拿这个推断出来的奖励,跑一遍完整的强化学习,学出一个策略 ★

看这个策略和专家差多远,回到外循环改奖励

书里给挑奖励函数的原则也写死了:选一个奖励函数,让专家的动作最优,
并且「使得任何脱离于专家策略的单步选择尽可能产生更大损失」。[^2]
★ 翻译:选那个「让专家看起来最像天才」的奖励。★

那个「最大熵」是怎么进来的

书里说典型的做法要加一个正则项,用的是熵3

「熵」是第 05 章第 5 节那个词 —— 一组机会「有多说不准」的一个数。

为什么要加它:因为不加的话答案不唯一。 书里在写代价函数那一版时说得很直白: 熵这一项「可以被视作实现最优解的唯一性的正则化项」4

★ 记住这个动机 —— 下一节会看到「不唯一」到底有多严重。★

2. 这件事本身是个死结

这一节回收第 12 章第 9 节那个式子,而这是这一章的转折点。

书里的判词

书里对这条路的第一个挑战写得毫不含糊:

★「逆向强化学习的函数搜索是病态的,因为示范行为可以由多个奖励或代价函数导致。」★5

「病态」在这里是数学上的说法:这个问题的答案不唯一,而且不是「差一点」的不唯一。

为什么不唯一:就是那个式子

书里给的理由,正是第 12 章第 9 节那个奖励塑形的变换5:

新奖励 = 原奖励 + 折扣 × 下一个局面的「势」 − 这一个局面的「势」

★ 第 12 章:这个「势」你怎么定都行,最优策略保持不变。★
→ 在那里这是好消息:所以可以放心撒路标。

★ 这一章:这个「势」你怎么定都行,最优策略保持不变。★
→ 在这里这是坏消息:★ 那我看着这份示范,怎么知道他用的是哪一个?★

书里的结论句:「只用示范数据通过 IRL 方法学到的奖励函数,
是不能消除上面一类变换下奖励函数之间分歧的。」[^5]

★ 同一个数学形式,第二次出现,这次是病因。★ (第一次在第 12 章第 9 节是工具;第三次在本章第 7 节会变成解药。)

书里给的补救,以及它的代价

书里的办法是加限制,把答案逼唯一5:

限制加在哪具体怎么加
限制奖励函数的形状只允许它是「一些局面特征的加权和」这种简单形式
限制策略的形状要求学出来的策略满足最大熵那一类规则

★ 但书里当场说了代价:「这些显式的限制对所提出方法的通用性有一定潜在限制。」★5

换句话说:唯一性是买来的,买它的钱就是「这个方法能用在多少种任务上」。

3. 第二个死结:它太贵了

这一节讲这条路的第二个挑战,而它解释了下一节那个方法为什么存在。

贵在哪

回到第 1 节那张图:外循环走一步,内循环要跑一遍完整的强化学习。

书里把这笔账写得很清楚6:

① 在推断出来的奖励下优化策略,★ 要求智能体与环境交互 ★
—— 而第 11 章说过,交互本身就是最贵的那一项(时间、设备损耗、安全)

② 更要命的是结构:书里说 IRL 的步骤
★「主要要求智能体在迭代优化奖励函数的内循环中解决一个 MDP 问题」★[^6]
—— 也就是说,你每改一次奖励的猜测,就得把整个强化学习问题从头解一遍

书里的评价:「这从计算的角度也可能是有极大消耗的。」[^6]

★ 把两个挑战放在一起看:答案不唯一,而且求每一个候选答案都很贵。★ 这就是下一节那个方法的全部动机 —— 它干脆不求这个答案了。

4. 干脆跳过奖励:训一个裁判

这一节走主走查的前半段,是这一章最实用的一节。

那个结构你已经见过

第 08 章第 9 节埋了一处伏笔:书里专门写了一节,说生成对抗网络和演员-批判者 「结构十分类似」——一个负责生成,一个用一个分数评估。

★ 那一节读着像闲笔,它就是为这一节铺的路。★

书里介绍的这个方法叫 GAIL,它的做法一句话: 用一个生成对抗网络里的判别器,来给出基于示范数据的动作价值估计7

生成对抗网络里的那两个角色:
生成器 造出一个东西 ←→ ★ 这里是:策略,它「造出」一条轨迹 ★
判别器 判断这是真的还是造的 ←→ ★ 这里是:裁判,它判断这一步是专家的还是策略的 ★

★ 关键的一步:判别器的打分,直接被当成策略这一步的奖励。★[^7]
不再有「反推出一个奖励函数」这个中间产物 —— 分数直接来自裁判。

判别器怎么学:书里给的损失有两项 —— 一项来自策略探索到的样本,一项来自专家示范的样本7两项一起把它往「能分开这两堆」的方向推。

主走查的前半段

第 1 轮 裁判给专家的帧打 0.9、给策略的帧打 0.3
→ 策略这一步的奖励 = ln(0.3) = **−1.20**
→ 这个很低的分逼着策略往「看起来更像专家」的方向改

第 2 轮 策略改过之后,裁判没那么容易分了:专家 0.7、策略 0.45
→ 奖励 = ln(0.45) = **−0.80** ★ 比上一轮涨了 0.40 ★
→ 注意:★ 裁判本身也在同时变强 ★,所以这是一场追逐

(三组打分是为演示编的;奖励取判别器打分的对数,是书里式 8.11 的形式。)

判断(我们的,不是书里的): 书里把这个量写成「动作价值」, 而判别器往哪个方向训,取决于损失里两项的摆法 —— 有的写法让输出越大表示「越像策略造的」,有的反过来。 我们全章统一按「输出越大表示越像专家」来讲。 如果错,会错在: 照着某个具体实现抄的时候符号可能反了。 判据是:策略的目标永远是「让裁判分不出来」—— 顺着这一条去定符号,不会错。 而这一节的两个结论(省算力、拿不回奖励函数)与符号方向无关。

它省下的两笔钱

书里列了两条好处8:

好处书里的说法对照谁
省算力相比于使用逆向强化学习的方法**「有较低的计算消耗」**对照 §3 那个内外循环
★ 不需要专家在场 ★「它也不需要在训练中跟专家进行交互」★ 对照第 12 章第 5 节那个 DAgger ★

第二条要专门记:第 12 章那个办法有效,但要一个专家全程待命。 这一条不用 —— 一段录好的示范就够。

5. 但它有一个硬缺陷:训到最后,你什么也拿不回来

这一节走主走查的后半段,并给出这一章最要紧的一个判断。

那个 0.5

书里把这件事说得很清楚9:

「这种方法的缺点是,我们绕过了生成奖励的中间步骤,即我们不能从辨别器中提取奖励函数, 因为判别器对于所有的(局面, 动作)将收敛到 0.5。」9

第 N 轮:裁判对专家的帧打 0.5,对策略的帧也打 0.5

★ 这是好消息:0.5 意味着「五五开、完全分不出来」,也就是策略学成了。★
★ 这是坏消息:一个对所有输入都输出同一个数的函数,不携带任何信息。★

奖励 = ln(0.5) = −0.69 对专家这一步
奖励 = ln(0.5) = −0.69 对策略这一步
奖励 = ln(0.5) = −0.69 对随便哪一步

★ 你得到了一个策略,但没有得到「什么样算好」。★

这为什么要紧

书里没有展开,我们补一段:

判断(我们的,不是书里的): 拿不回奖励函数,意味着这份学习成果不能复用。 抽屉换个位置、房间换个光线,你只能重新收集示范、重新对抗训练一遍。 而如果你手上有奖励函数,那它是一个可以搬走的东西 —— 换个环境,拿它当奖励重新跑一遍强化学习就行,示范不必再收。 ★ 所以第 6、7 节那两个方法花的力气,买的是「这份成果能不能带走」。★ 如果错,会错在: 反推出来的奖励函数未必真能跨环境复用 —— 第 7 节里书里自己就说了,奖励函数「从环境动态的变化中不能被鲁棒地恢复出来」。 判据是:换一个环境之后,拿这个奖励函数训出来的策略还合不合理。

6. 第一次尝试捞回来:把奖励和轨迹的机会挂钩

这一节讲一个绕圈子的做法,而它的死结值得记住。

思路

要把奖励捞回来,得先让「奖励」和「能观测到的东西」挂上钩。

书里给的挂钩方式是一条分布:奖励越高的轨迹,越可能被专家走出来10

一条轨迹被走出来的机会 ∝ e 的(这条轨迹的总奖励)次方 ÷ 一个归一化的数

★ 直觉:好的轨迹机会大,差的轨迹机会小,而且是指数级地拉开差距。★

有了这条挂钩,反推奖励就变成了一个标准问题:
★ 调整奖励函数的参数,让「专家那些轨迹」出现的机会最大。★[^10]

这就是书里说的:逆向强化学习可以被理解为解决一个极大似然估计问题10 —— 「似然」就是「按现在这套参数,手上这批数据出现的机会有多大」。

死结在那个除数上

上面那个式子里有一个「归一化的数」,它的作用是让所有轨迹的机会加起来等于 1。 书里管它叫配分函数11

要算它,得把「所有符合环境规律的轨迹」的那一项全部加起来。

★ 轨迹有多少条?在连续动作、上百步的任务里,是无穷多条。★

书里的说法:对于大规模或连续空间的情况,「准确估计配分函数会很困难」, 因为精确估计只适用于小规模离散的情况11

绕过去的办法:又是重要性采样

书里的解法:不精确算,采样估计 —— 而用的正是重要性采样12

「重要性采样」是第 09 章第 4 节那个词 —— 拿另一个分布采的样,乘一个新旧机会的比值,来估这个分布下的量。

★ 而这里被拿来当「采样用的那个分布」的,就是当前的策略本身。★[^12]

于是形成一个来回:
策略采一批轨迹 → 用它们估那个除数 → 更新奖励函数的参数
↑ ↓
└──── 策略再照新的奖励更新 ←───────────┘

书里对策略那一步的目标写明了:让它去贴近「按代价函数算出来的那个分布」。[^12]

书里说,把这一套写成生成对抗网络的形式,就得到了一个能把奖励函数捞回来的方法13 —— 它和上一节那个方法「类似但是有不同的具体形式」13

关键差别在判别器的写法上:它的分子分母里显式地含着代价函数, 所以训完之后能从里面把奖励读出来14

7. 第二次尝试:改成对单步判别,再把混进去的东西拆开

这一节让那个式子第三次出现,这次是解药。

先看现象:上一节那个方法方差太大

书里点名了病根:上一节那个方法是「以轨迹为中心」的 —— 这意味着「完整的轨迹需要被估计」,而相比于估计单个(局面, 动作)对,这会有较大的估计方差15

「方差」是第 04 章第 5 节那个词。这里被估的东西是一整条几百步的轨迹 —— 换一条轨迹,估出来的数可以差很远。

改法:一步一步地判

书里介绍的方法叫 AIRL,改动很直接: 判别器不再吃整条轨迹,而是直接对单个局面和动作进行估计15

判别器的分子是「一个待学的函数取指数」,分母是它再加上「策略选这个动作的机会」15

但这么一改,学出来的东西不是奖励

书里给了一条被证明的结论16:

★ 在最优情况下,那个待学的函数等于「最优策略的优势函数」。★16

「优势」是第 08 章第 7 节那个词 ——「这个动作比这个局面的平均水平好多少」。

★ 这里就是这一章最漂亮的一处转折。★

你想要的是: 奖励 —— 「这一步本身值多少」
你学到的是: 优势 —— 「这一步比这个局面的平均水平好多少」

书里的原话:★「优势函数是一个高度纠缠的奖励函数减去一个基线值的结果。」★[^16]

★ 也就是说:奖励被和一个「只跟局面有关的量」搅在一起了,分不开。★
书里还给了一个具体后果:奖励函数「从环境动态的变化中不能被鲁棒地恢复出来」[^16]
—— 换个环境,同一份示范会推出不一样的奖励。

这里的「基线」就是第 08 章第 6 节那个基准 —— 一个只跟局面有关、与你选哪个动作无关的量。 两处是同一件事,书里在这一章换了个叫法。

拆开的办法:那个式子第三次出现

书里的解法是给那个待学的函数强加一个形状17:

待学的函数 = 一个奖励拟合器(只吃局面和动作)
+ 折扣 × 一个塑形项(只吃下一个局面)
− 那个塑形项(吃这一个局面)

★ 看这个形状 —— 它就是第 12 章第 9 节那个奖励塑形的式子。★

第 12 章: 这个形式加进去不改最优策略 → 所以能拿来撒路标(工具)
本章 §2: 这个形式怎么加都不改最优策略 → 所以分不出是哪一个(病因)
★ 本章这里:既然「纠缠进来的那部分」正好长成这个形式,那就把它单独设一个网络学掉,
剩下的那一项就是干净的奖励。★(解药)

书里的措辞:这个函数「被限制为一个奖励拟合器和一个塑形项」。[^17]

★ 同一个数学形式,一章之内三次转身:工具 → 病因 → 解药。★ 这是这本书第 8 章埋得最深的一条线,而书里从没把它点破。

8. 示范里根本没有动作怎么办

这一节开始讲这一章的后半段:从视频学。

问题

书里定义:从观察量进行模仿学习,是在没有完整可观察的动作的情况下进行的模仿学习; 它的一个典型例子就是从视频中学习 —— 视频里物体的真实动作值, 无法单纯地通过一些帧中的信息得到18

书里还说了一句很重要的定位:这一类方法与前面那些「大多是正交的关系」, 因为它是从另一个角度处理模仿学习,着重解决的是不可观测动作的问题18

★ 「正交」的意思是:它不是前面那些方法的替代品,而是补的另一个维度(可以想成另一根互不干扰的坐标轴)。★ 你可以把这一节的做法和前面任何一种拼起来用。

第一条路:先把动作补出来

思路朴素:书里说「先从状态中恢复动作,再采用标准的模仿学习算法」19

怎么恢复?训一个专门倒推动作的模型。 书里给的定义:它是从「一对相邻的状态」到「动作」的映射20 —— 书里管它叫逆向动态模型。

正着问: 在这个局面做这个动作 → 会到哪个局面? (这叫正向动态模型)
★ 倒着问:看到前后这两帧 → 中间做了什么动作?★ (这就是逆向的那个)

书里给的具体例子:有一项工作从「人操作绳子从一个初始状态到目标状态」的一串图像里,
学着预测绳结操作的一系列动作 —— 它学的是一个像素级的逆向动态模型,
用的是卷积神经网络(第 05 章第 9 节那个)。[^20]

★ 训练数据从哪来?机器人自己随便动、自己记 ——
这份数据不需要专家,因为它学的不是「该做什么」,只是「做了什么会变成什么样」。★[^20]

书里还给了两个变体: 一个先预训练这个倒推模型、再拿一个稀疏奖励用强化学习去微调它21; 另一个用倒推出来的动作把示范补全成「局面-动作」对,然后回到第 12 章那套常规做法22

书里也给了这条路的死穴:这种方法「性能极大地依赖于所学动态模型的好坏」, 对于状态转移中有噪声的情况「则很可能失败」19

第二条路:干脆不问真实动作

书里介绍的另一个方法更巧:它自己造一套「潜在动作」23

两个网络:
① 潜在策略网络:看当前这一帧 → 吐出一个「潜在动作」(一串数,不对应任何真实按键)
它里面还带一个正向动态模块:拿当前帧和这个潜在动作 → 预测下一帧
② 动作重映射网络:把「潜在动作」接到环境里真实的动作上

★ 最漂亮的地方,书里明说了:★
「使用潜在动作,不需要在学习潜在模型和潜在策略的过程中与环境进行交互」;
而那个重映射网络「只需要跟环境交互有限的次数」。[^23]

★ 也就是说:绝大部分学习是纯离线的,只有最后接线那一步才需要真机。★
对第 11 章那笔 800 小时的账来说,这一条很值钱。

9. 从视频学的第二条路:让裁判只看画面

这一节把第 4 节那套搬到视频上,并给出一个非常漂亮的反例。

改一处就行

书里说这一类是从第 4 节那个方法改的,改动只有一处: 判别器只判别和比较状态,而非对「局面-动作」对进行判别24

★ 因为你手上根本没有动作 —— 那就让裁判只看画面。★

那个环形反例

这个改动看起来天经地义,而书里给了一个例子说明它不够25:

一个环形的跑道上,两个智能体以相同的速度绕圈,但一个顺时针、一个逆时针。

★ 它们走过的位置完全一样 —— 状态分布一模一样。★
★ 而它们在每个位置上做的动作完全相反。★

→ 只看「你去过哪些地方」的裁判,判不出这两个有任何区别。
→ 于是你可能学出一个「方向完全反了」的策略,而裁判还给满分。

书里的原话:这将导致相同的状态分布,「即使它们的行为与彼此相反」。[^25]

解法:让裁判看前后两帧

书里的解法一句话:把判别器的输入从单个状态改为状态转移 —— 也就是「这一帧和下一帧」这一对26

★ 为什么这就够了:顺时针的那一对是(位置 A → 位置 B),
逆时针的那一对是(位置 B → 位置 A)。★
状态分布一样,但「前后两帧的搭配」完全不同 —— 裁判立刻分得出来。

书里还说,实践中这个序列也可以取长度大于 2 的。[^26]

书里另外提到一个很实在的工程选择:用「本体感觉特征」(关节角度这类身体自己知道的量) 当策略的输入,而不用图像。因为这些特征维度低,策略可以用一个简单的多层网络, 不必用卷积网络;而判别器仍然看图像27书里说这也让整个学习过程更高效27

第三条路:人为设计一个奖励

书里还列了一类:直接人为设计奖励函数,把模仿问题转成强化学习问题28

★ 而这里有一句很容易漏掉、但很要紧的话:★

「人为设计的奖励函数不需要是真实的产生专家策略的奖励函数, 而更像是一个基于示范数据集或任务先验知识的估计。」28

★ 这一句把这条路和 §1 到 §7 那一整条路划清了界限:★ 那边费尽力气在求「真实的那个奖励」,这边说 —— 不必真,能用就行。

书里给的最朴素的一版:拿「预测的下一个状态」和「示范者的下一个真实状态」之间的 直线距离当奖励28

10. 视频学习的两道真坎

这一节讲书里专门列的两个挑战,以及一个针对它们的巧妙做法。

坎一:你和示范者长得不一样

书里给这个问题的名字是具象不匹配,定义是: 外观、动态过程和其他特征在模仿者和示范者之间的差异29

书里给的典型例子:让机械臂模仿人的手臂。 而书里那句描述最能说明问题有多难:

★「即使是确认机器人和人的手臂是否在同一个状态都会有困难。」★29

解法:学一个能把两边对上的中间表示。 书里给的一种做法是用自动编码器(一个先把输入压成一串数、再从这串数还原回去的网络) 以监督学习的方式学不同具象之间的对应关系,并要求编码后的表示对具象特征保持不变29

坎二:摄像机站的位置不一样

书里说,对于基于视觉的控制,视角的差异「可能导致模仿策略表现显著下降」30

书里给了三条路30:

做法一句话
视角不变的编码模型学一个表示,让同一个场景从哪个角度看都编成同一串数
视角分类器训一个网络去判断「这一帧是从哪个角度拍的」,反过来用
背景转化模型学一个「把这个场景翻译到目标场景」的模型,代价是要收集两边的成对数据

那个针对视角问题的巧做法

书里专门介绍了一个方法,叫时间对比网络31它的核心是一条三重的损失, 把「哪些帧该靠近、哪些该推开」定死了:

同一时刻、不同视角的两帧 → ★ 拉近 ★ (同一件事,只是站的位置不同)
同一视角、相邻时刻的两帧 → ★ 推开 ★ (看起来很像,但实际状态不同)

书里的原话:这条损失被设定为「驱散连续帧的短时近邻」——
这些近邻「有相似的视觉特征但是不同的实际动态状态」;
同时「吸引那些不同视角下同时发生的帧」,它们在嵌入空间中有相同的动态状态。[^31]

★ 这两条合起来,逼着网络学会:看的是「事情进行到哪一步」,而不是「画面长什么样」。★

★ 而这套训练不需要任何人工标注 —— 书里说模仿策略因此能用无标签的人类示范视频 以自监督(不用人来标答案,拿数据自己造出监督信号)的方式学习31

学完之后奖励怎么算? 先分清两个说法: 「状态空间」就是「所有可能出现的局面」凑成的那一大片,而「嵌入空间」是网络把画面压成一串数之后的那一片。

书里说:还是那个直线距离,但它是「在嵌入空间而不是状态空间」里算的31

★ 这就把 §9 那个「人为设计奖励」的做法救活了 —— 在原始画面上算距离毫无意义(换个视角就全变),在这个学出来的表示上算才有意义。★

作者的判断与证据

书里给了证明或明确结论的:

  • 逆向强化学习是病态的,理由是那个奖励塑形变换5 —— 这是一条数学结论,不是经验判断;
  • ★ 对抗式做法在最优时判别器对所有输入收敛到 0.5,所以拿不回奖励函数 ★9 —— 书里给了理由(引的是 2014 年生成对抗网络那篇原论文);
  • 单步判别学到的那个函数在最优时等于优势函数16 —— 书里说「经证明」;
  • 环形环境那个反例25 —— 一个构造出来的反例,不需要实验;
  • 潜在动作那条路「不需要在学习潜在模型和潜在策略的过程中与环境进行交互」23

作者的判断与经验说法:

  • 对抗式做法「相比于使用逆向强化学习的方法有较低的计算消耗」8 —— 没有给具体倍数;
  • 先补动作那条路「性能极大地依赖于所学动态模型的好坏」19 —— 机理判断,没有实验;
  • ★「人为设计的奖励函数不需要是真实的产生专家策略的奖励函数」★28 —— 这是一句方法论上的表态,而它和这一章前半部分的追求正好相反;
  • 加限制换唯一性「对通用性有一定潜在限制」5 —— 一句自我限定。

书里没有给的:

  • ★ 这一章同样一个实验数字都没有。★ 十几种方法,零对照;
  • 各种方法之间怎么选,没有判据;
  • 那个「拿不回奖励函数」到底有多要紧,书里只陈述了事实,没有讨论后果 (§5 那个判断块是我们补的)。

边界与局限

  • ★ 这一章的所有方法,内层都还是一个完整的强化学习问题。★ 也就是说,前十章那些毛病(方差、步长、过估计、稳定性)一个都没消失, 只是被包在了一层外循环里面 —— 而外循环让它们更难诊断;
  • 反推出来的奖励函数能不能跨环境复用,书里自己说了不能鲁棒地恢复16, 而这恰恰是费这么大劲反推它的主要理由 —— 这一处张力书里没有正面处理;
  • 对抗式训练本身的稳定性,书里一个字都没提。 两个网络互相追,训练崩掉是常态, 而这一章通篇当它能训得动;
  • 从视频学的那几条路,书里给的全是「有人做过这个」,没有一条给出适用条件;
  • 具象不匹配这道坎,书里给的解法(学对应关系)本身就要成对的数据 —— 而「机器人和人做同一件事」的成对数据,并不比示范便宜;
  • 书里对配分函数那一段的推导给得很密(五六个式子连着), 但它的落点只有一句「所以要用采样绕过去」—— 详略是失衡的。

可带走的

全章那条走查,一行写完: 一段拉抽屉的视频(只有画面、没有动作) → 训一个裁判分辨真假,第 1 轮给专家 0.9、给策略 0.3,策略这一步的奖励 ln(0.3) = −1.20第 2 轮 0.7 与 0.45,奖励 −0.80(涨了 0.40),策略在变像第 N 轮对谁都是 0.5,奖励 −0.69 —— 策略学成了,但裁判不携带任何信息,奖励函数拿不回来 → 想拿回来就得改成单步判别,而单步判别学到的是优势(奖励和一个基线搅在一起), 再用第 12 章那个塑形式子把它拆开。 (打分是为演示编的;三个奖励值是我们按它算的;「收敛到 0.5」与「学到的是优势」都是书里的结论。)

  1. 有些任务的奖励写不出来 —— 书里的例子:视觉自动驾驶该给哪个后视镜分配多少注意力;
  2. 逆向强化学习 = 从好行为反推「他在最大化什么」;实际跑法是外循环改奖励、内循环解一遍强化学习;
  3. 挑奖励的原则是「让专家看起来最像天才」 —— 让任何偏离专家的单步选择都损失更大;
  4. ★ 这件事是病态的:第 12 章那个「加了不改最优策略」的式子,证明有无穷多个答案。★ 同一个式子,一章之内工具 → 病因 → 解药,三次转身;
  5. 买唯一性的钱是通用性 —— 加限制能让答案唯一,但方法能用的场合变窄;
  6. 第二个死结是贵:每改一次奖励的猜测,就要把整个强化学习问题从头解一遍;
  7. ★ 对抗式做法干脆跳过奖励:训一个裁判分辨真假,把裁判的打分直接当奖励。★ 它的结构就是第 08 章第 9 节点破的那个同构;
  8. 它省两笔钱:算力,以及★不需要专家在训练时在场★(对照 DAgger);
  9. ★ 它的硬缺陷:最优时裁判对谁都输出 0.5,你拿不回任何奖励函数 —— 这份成果带不走。★
  10. 想拿回来,得让判别器的式子里显式含着代价函数 —— 代价是要算一个「所有轨迹加起来」的除数,而那个数在连续空间里算不准,只能靠重要性采样绕;
  11. 按整条轨迹判,方差太大;改成对单步判,方差降下来 —— 但学到的东西变成了优势,而优势里混着一个与动作无关的基线;
  12. 示范里没有动作时有两条路:先训一个「看前后两帧倒推动作」的模型把动作补出来; 或者自己造一套「潜在动作」,★ 那样绝大部分学习完全不用碰真机 ★;
  13. ★ 让裁判只看单个画面是不够的:环形跑道上一顺一逆的两个智能体, 状态分布完全一样、动作完全相反。把裁判的输入改成「前后两帧」才分得开。★
  14. 人为设计的奖励不必是真实的那个 —— 书里明说了,能用就行。这条和前半章的追求正好相反;
  15. 视频学习的两道真坎:你和示范者长得不一样(连「是不是同一个状态」都难确认)、摄像机站的位置不一样;
  16. 时间对比网络的两条规则记住就够:★ 不同视角的同一时刻要拉近,同一视角的相邻时刻要推开。★ 学完在这个表示上算距离当奖励,而在原始画面上算是没有意义的。

原文地图

主题原书章原文位置
奖励写不出来的场合第8章 模仿学习text/13-ch08.txt:37(搜「难以写出显式的奖励函数」) · text/13-ch08.txt:39(搜「少注意力应当被分配到处理不同的反光镜上」)
逆向强化学习的定义与两个过程第8章 模仿学习text/13-ch08.txt:188(搜「解决从观察到的最优行为中提取奖励函数」) · text/13-ch08.txt:190(搜「一个是使用示范来推断一个隐藏的奖励或代价」) · text/13-ch08.txt:192(搜「尽可能产生更大损失」)
最大熵与唯一性第8章 模仿学习text/13-ch08.txt:204(搜「最大因果熵」) · text/13-ch08.txt:234(搜「实现最优解的唯一性的正则化项」)
奖励歧义第8章 模仿学习text/13-ch08.txt:248(搜「IRL 的函数搜索是病态的」) · text/13-ch08.txt:256(搜「最优策略对任何函数」) · text/13-ch08.txt:257(搜「是不能消除上面一类变换下奖励函数之间分歧的」) · text/13-ch08.txt:262(搜「有一定潜在限制」)
计算代价第8章 模仿学习text/13-ch08.txt:263(搜「较大的计算代价」) · text/13-ch08.txt:266(搜「在迭代优化奖励函数」) · text/13-ch08.txt:269(搜「题,而这从计算的角度也可能是有极大消耗的」)
GAIL 的做法与损失第8章 模仿学习text/13-ch08.txt:277(搜「它使用一个 GAN 中的辨别器」) · text/13-ch08.txt:285(搜「辨别器的损失函数定义为一般形式」)
GAIL 的两条好处第8章 模仿学习text/13-ch08.txt:293(搜「而且相比于使用 IRL」) · text/13-ch08.txt:294(搜「它也不需要在训练中跟专家进行交互」)
收敛到 0.5、拿不回奖励第8章 模仿学习text/13-ch08.txt:302(搜「我们不能从辨别器中提取奖励函数」) · text/13-ch08.txt:303(搜「将收敛到 0.5」) · text/13-ch08.txt:306(搜「GAIL 方法无法从示范数据中恢复奖励函数」)
极大似然与玻尔兹曼分布第8章 模仿学习text/13-ch08.txt:328(搜「极大似然估计」) · text/13-ch08.txt:350(搜「玻尔兹曼分布」)
配分函数算不准第8章 模仿学习text/13-ch08.txt:356(搜「配分函数」) · text/13-ch08.txt:360(搜「准确估计配分函数 Z 会很困难」)
用重要性采样绕过去第8章 模仿学习text/13-ch08.txt:364(搜「使用重要性采样」) · text/13-ch08.txt:379(搜「间的 KL 散度来优化」)
GAN-GCL第8章 模仿学习text/13-ch08.txt:383(搜「提出使用 GAN 的形式来解决上述优化问题」) · text/13-ch08.txt:397(搜「这产生了 GAN-GCL 方法」)
AIRL 改成单步判别第8章 模仿学习text/13-ch08.txt:405(搜「这意味着完整的轨迹需」) · text/13-ch08.txt:407(搜「直接对单个状态和动作进行估计」)
学到的是优势、以及解纠缠第8章 模仿学习text/13-ch08.txt:415(搜「给出了最优策略的优势函数」) · text/13-ch08.txt:416(搜「然而,优势函数是一个高度纠缠的奖励函数减去一个基线值的结果」) · text/13-ch08.txt:424(搜「被限制为一个奖励拟合器」)
从观察量模仿的定义与定位第8章 模仿学习text/13-ch08.txt:432(搜「是在没有完整可观」) · text/13-ch08.txt:433(搜「IfO 的一个例子是从视频中学习」) · text/13-ch08.txt:438(搜「大多是正交的关系」)
先补动作那条路及其死穴第8章 模仿学习text/13-ch08.txt:441(搜「先从状态中恢复动作」) · text/13-ch08.txt:444(搜「这种方法的性能极大地依赖于所学动态模型的好坏」)
逆向动态模型第8章 模仿学习text/13-ch08.txt:468(搜「一个逆向动态模型是从状态转移」) · text/13-ch08.txt:476(搜「卷积神经网络被用于学习逆向动态模型」)
微调与补全成对数据第8章 模仿学习text/13-ch08.txt:484(搜「增强逆向动态建模」) · text/13-ch08.txt:63(搜「从观察量进行行为克隆」)
潜在动作那条路第8章 模仿学习text/13-ch08.txt:534(搜「ILPO 在其学习过程中使用两个网络」) · text/13-ch08.txt:555(搜「使用潜在动作不需要在学习潜在模型和潜在策略的」)
判别器只看状态第8章 模仿学习text/13-ch08.txt:569(搜「辨别器」) · text/13-ch08.txt:570(搜「而非对状态-动作对进行判别」)
环形反例与它的解法第8章 模仿学习text/13-ch08.txt:606(搜「在一个环状的」) · text/13-ch08.txt:607(搜「体以相同的速度但是不同的方向移动」) · text/13-ch08.txt:611(搜「它只是将辨别器的输入改为状态转移」)
本体感觉特征第8章 模仿学习text/13-ch08.txt:617(搜「使用本体感觉」) · text/13-ch08.txt:623(搜「低维本体感觉特征也使得整个学习过程更高效」)
人为设计奖励第8章 模仿学习text/13-ch08.txt:661(搜「这里的奖」) · text/13-ch08.txt:664(搜「人为设计的奖励函数不需要是真实的产生专家策略的奖励函数」) · text/13-ch08.txt:666(搜「间的欧氏距离」)
时间对比网络第8章 模仿学习text/13-ch08.txt:668(搜「另一种奖励函数工程方法称为时间对比网络」) · text/13-ch08.txt:698(搜「而这些近邻满足有相似的视觉特征但是不同的实际动态状态」) · text/13-ch08.txt:700(搜「以自监督」) · text/13-ch08.txt:701(搜「奖励函数定义为同一时间步下示范状态和智能体实际状态的欧氏距离」)
具象不匹配第8章 模仿学习text/13-ch08.txt:722(搜「具象不匹配通常用来描述外观」) · text/13-ch08.txt:725(搜「即使是确认机器人和人的手臂是否在同一个状态都会有困」) · text/13-ch08.txt:730(搜「用自动编码器」)
视角差异的三条路第8章 模仿学习text/13-ch08.txt:734(搜「视角的差异可能导致模仿策」) · text/13-ch08.txt:739(搜「背景转化」)

Footnotes

  1. 出处:「第8章 模仿学习」第 37 段(text/13-ch08.txt:37,搜「难以写出显式的奖励函数」)与第 39 段(text/13-ch08.txt:39,搜「少注意力应当被分配到处理不同的反光镜上」)。原文说的是这类需要在不同目标之间权衡的场合。 2

  2. 出处:「第8章 模仿学习」第 188 段(text/13-ch08.txt:188,搜「解决从观察到的最优行为中提取奖励函数」)、第 190 段(text/13-ch08.txt:190,搜「一个是使用示范来推断一个隐藏的奖励或代价」)与第 192 段(text/13-ch08.txt:192,搜「尽可能产生更大损失」)。原书引的是 Ng 等人 2000 年与 Russell 1998 年的工作,并说这类技术被用于操控直升机、物体控制等任务。 2

  3. 出处:「第8章 模仿学习」第 204 段(text/13-ch08.txt:204,搜「最大因果熵」)与第 216 段(text/13-ch08.txt:216,搜「正向强化学习,而其奖励函数」)。原书给了两个式子:一个学奖励函数、一个在这个奖励下做熵正则化的正向强化学习,合起来构成一个套一层的架构。

  4. 出处:「第8章 模仿学习」第 228 段(text/13-ch08.txt:228,搜「代价函数」) 与第 234 段(text/13-ch08.txt:234,搜「实现最优解的唯一性的正则化项」)。原书把代价函数定义为奖励函数的负数,并说学出来的代价函数「将给专家策略分配较高的熵而给其他策略较低的熵」。

  5. 出处:「第8章 模仿学习」第 248 段(text/13-ch08.txt:248,搜「IRL 的函数搜索是病态的」)、第 256 段(text/13-ch08.txt:256,搜「最优策略对任何函数」)、第 257 段(text/13-ch08.txt:257,搜「是不能消除上面一类变换下奖励函数之间分歧的」)与第 262 段(text/13-ch08.txt:262,搜「有一定潜在限制」)。原书把这个挑战叫「奖励函数的非唯一性或奖励歧义」,并引了 Ng 等人 1999 年那条奖励塑形的结论。 2 3 4 5 6

  6. 出处:「第8章 模仿学习」第 263 段(text/13-ch08.txt:263,搜「较大的计算代价」)、第 266 段(text/13-ch08.txt:266,搜「在迭代优化奖励函数」)与第 269 段(text/13-ch08.txt:269,搜「题,而这从计算的角度也可能是有极大消耗的」)。原书紧接着说,近来有一些方法被提出以减轻这个要求,其中一种就是下一节那个。

  7. 出处:「第8章 模仿学习」第 274 段(text/13-ch08.txt:274,搜「采用了」)、第 277 段(text/13-ch08.txt:277,搜「它使用一个 GAN 中的辨别器」)与第 285 段(text/13-ch08.txt:285,搜「辨别器的损失函数定义为一般形式」)。原书引的是 Ho 等人 2016 年的工作;它还说这类算法可以被想成是「引入一个对模仿者的状态-动作占用率的度量,使之与示范者的相关特性类似」——正是第 12 章第 1 节那个分布匹配的说法。 2

  8. 出处:「第8章 模仿学习」第 293 段(text/13-ch08.txt:293,搜「而且相比于使用 IRL」)与第 294 段(text/13-ch08.txt:294,搜「它也不需要在训练中跟专家进行交互」)。原文点名对照的正是 DAgger 那一类需要专家在场的方法。 2

  9. 出处:「第8章 模仿学习」第 300 段(text/13-ch08.txt:300,搜「如果有无限的数据和无限的计算资源」)、第 302 段(text/13-ch08.txt:302,搜「我们不能从辨别器中提取奖励函数」)与第 303 段(text/13-ch08.txt:303,搜「将收敛到 0.5」)。原书还说,在最优情况下这个目标生成的状态-动作分布「应当完全匹配示范数据的状态-动作对」。 2 3

  10. 出处:「第8章 模仿学习」第 323 段(text/13-ch08.txt:323,搜「可以看出最优策略」)、第 328 段(text/13-ch08.txt:328,搜「极大似然估计」)与第 350 段(text/13-ch08.txt:350,搜「玻尔兹曼分布」)。原书是在一个「熵正则化的马尔可夫决策过程」下推的,并指出最优策略与柔性 Q 函数的指数成正比 —— 就是第 10 章第 6 节那个形状。 2

  11. 出处:「第8章 模仿学习」第 356 段(text/13-ch08.txt:356,搜「配分函数」)与第 360 段(text/13-ch08.txt:360,搜「准确估计配分函数 Z 会很困难」)。原文说精确估计只适用于小规模离散的情况,否则要用近似估计。 2

  12. 出处:「第8章 模仿学习」第 364 段(text/13-ch08.txt:364,搜「使用重要性采样」)与第 379 段(text/13-ch08.txt:379,搜「间的 KL 散度来优化」)。原书给的采样分布优化目标是最小化它与「按代价函数得到的那个分布」之间的 KL 散度。

  13. 出处:「第8章 模仿学习」第 383 段(text/13-ch08.txt:383,搜「提出使用 GAN 的形式来解决上述优化问题」)与第 306 段(text/13-ch08.txt:306,搜「GAIL 方法无法从示范数据中恢复奖励函数」)。原书对这个方法的定位就是「从使用示范数据训练的最优辨别器中提取一个最优的奖励函数」。 2

  14. 出处:「第8章 模仿学习」第 393 段(text/13-ch08.txt:393,搜「Z exp」)与第 397 段(text/13-ch08.txt:397,搜「这产生了 GAN-GCL 方法」)。原书写明:策略被训练以最大化一个由判别器算出的量,而达到最优时可以从学到的代价函数得到最优奖励函数。

  15. 出处:「第8章 模仿学习」第 405 段(text/13-ch08.txt:405,搜「这意味着完整的轨迹需」)与第 407 段(text/13-ch08.txt:407,搜「直接对单个状态和动作进行估计」)。原书引的是 Fu 等人 2017 年的工作,并说配分函数在这个式子里被忽略了,概率的归一性在实践中由 softmax 或 sigmoid 输出激活来保证。 2 3

  16. 出处:「第8章 模仿学习」第 414 段(text/13-ch08.txt:414,搜「经证明」)、第 415 段(text/13-ch08.txt:415,搜「给出了最优策略的优势函数」)与第 416 段(text/13-ch08.txt:416,搜「然而,优势函数是一个高度纠缠的奖励函数减去一个基线值的结果」)。原书还转述了原论文的论证:奖励函数从环境动态的变化中不能被鲁棒地恢复出来。 2 3 4

  17. 出处:「第8章 模仿学习」第 424 段(text/13-ch08.txt:424,搜「被限制为一个奖励拟合器」)与第 428 段(text/13-ch08.txt:428,搜「其中还需要对」)。原书把这个拆法叫「解纠缠」,而它的形式与 8.3.2 节那个奖励塑形变换完全一致 —— 这一点原书没有点破,是我们指出的。

  18. 出处:「第8章 模仿学习」第 432 段(text/13-ch08.txt:432,搜「是在没有完整可观」)、第 433 段(text/13-ch08.txt:433,搜「IfO 的一个例子是从视频中学习」)与第 438 段(text/13-ch08.txt:438,搜「大多是正交的关系」)。 2

  19. 出处:「第8章 模仿学习」第 441 段(text/13-ch08.txt:441,搜「先从状态中恢复动作」)与第 444 段(text/13-ch08.txt:444,搜「这种方法的性能极大地依赖于所学动态模型的好坏」)。原书引的是 Torabi 等人 2018 年的工作。 2 3

  20. 出处:「第8章 模仿学习」第 468 段(text/13-ch08.txt:468,搜「一个逆向动态模型是从状态转移」)、第 469 段(text/13-ch08.txt:469,搜「它通过人类操作绳子」)与第 476 段(text/13-ch08.txt:476,搜「卷积神经网络被用于学习逆向动态模型」)。原书写明:机器人通过探索策略自动收集样本来学这个模型,随后用它和人类示范里的期望状态进行规划。

  21. 出处:「第8章 模仿学习」第 484 段(text/13-ch08.txt:484,搜「增强逆向动态建模」)与第 486 段(text/13-ch08.txt:486,搜「预训练的逆向动态模型被看作是强」)。原书把这个方法叫 RIDM,并说它把预训练的倒推模型当成强化学习设置下的一个策略,再用稀疏奖励微调。

  22. 出处:「第8章 模仿学习」第 504 段(text/13-ch08.txt:504,搜「这个算法则试图使用完整的观察量-动作对」)。原书把这个方法叫 BCO:用学到的倒推模型把观察量补成完整的「观察量-动作」对,再用常规模仿学习的形式训策略。

  23. 出处:「第8章 模仿学习」第 534 段(text/13-ch08.txt:534,搜「ILPO 在其学习过程中使用两个网络」)与第 555 段(text/13-ch08.txt:555,搜「使用潜在动作不需要在学习潜在模型和潜在策略的」)。原书写明潜在策略网络里含一个「动作推理模块」和一个「正向动态模块」,而重映射网络只需要与环境交互有限的次数。 2

  24. 出处:「第8章 模仿学习」第 568 段(text/13-ch08.txt:568,搜「一种基本的生成对抗 IfO 的框架」)与第 570 段(text/13-ch08.txt:570,搜「而非对状态-动作对进行判别」)。

  25. 出处:「第8章 模仿学习」第 605 段(text/13-ch08.txt:605,搜「不意味着对于模仿策略和专家策略的所有状态」)、第 606 段(text/13-ch08.txt:606,搜「在一个环状的」)与第 607 段(text/13-ch08.txt:607,搜「体以相同的速度但是不同的方向移动」)。原书引的是 Torabi 等人 2019 年的工作。 2

  26. 出处:「第8章 模仿学习」第 610 段(text/13-ch08.txt:610,搜「给辨别器输入一系列状态而非单个状态」)、第 611 段(text/13-ch08.txt:611,搜「它只是将辨别器的输入改为状态转移」)与第 616 段(text/13-ch08.txt:616,搜「其中状态序列在实践中也可以选择长度大于 2 的」)。

  27. 出处:「第8章 模仿学习」第 617 段(text/13-ch08.txt:617,搜「使用本体感觉」)与第 623 段(text/13-ch08.txt:623,搜「低维本体感觉特征也使得整个学习过程更高效」)。原书写明判别器仍旧以图像序列为输入,只有策略换成了低维特征。 2

  28. 出处:「第8章 模仿学习」第 661 段(text/13-ch08.txt:661,搜「这里的奖」)、第 664 段(text/13-ch08.txt:664,搜「人为设计的奖励函数不需要是真实的产生专家策略的奖励函数」)与第 666 段(text/13-ch08.txt:666,搜「间的欧氏距离」)。原书还说前面那个先补动作再微调的方法,本质上也属于这一类。 2 3 4

  29. 出处:「第8章 模仿学习」第 722 段(text/13-ch08.txt:722,搜「具象不匹配通常用来描述外观」)、第 725 段(text/13-ch08.txt:725,搜「即使是确认机器人和人的手臂是否在同一个状态都会有困」)与第 730 段(text/13-ch08.txt:730,搜「用自动编码器」)。原书还提到另一条路:用少量人类监督加无监督学习来学这个对应关系。 2 3

  30. 出处:「第8章 模仿学习」第 733 段(text/13-ch08.txt:733,搜「视角差异」)、第 734 段(text/13-ch08.txt:734,搜「视角的差异可能导致模仿策」)与第 739 段(text/13-ch08.txt:739,搜「背景转化」)。原书写明背景转化那条路需要收集源背景和目标背景下相似的成对样本。 2

  31. 出处:「第8章 模仿学习」第 668 段(text/13-ch08.txt:668,搜「另一种奖励函数工程方法称为时间对比网络」)、第 698 段(text/13-ch08.txt:698,搜「而这些近邻满足有相似的视觉特征但是不同的实际动态状态」)、第 700 段(text/13-ch08.txt:700,搜「以自监督」)与第 701 段(text/13-ch08.txt:701,搜「奖励函数定义为同一时间步下示范状态和智能体实际状态的欧氏距离」)。原书说这个方法处理的是从不同视角获得的两个同步的相机视野,用的是一条三重损失;后续工作把它从单帧扩展到了多帧。 2 3