# 皮特·阿比耳：深度强化学习

> 深度强化学习研究者讲解机器人学习、模拟到现实迁移与样本效率的难题。

- 原标题：Pieter Abbeel: Deep Reinforcement Learning
- 期数：特别节目
- 发布日期：2018-12-16
- 嘉宾 / 主题：皮特·阿比耳
- 网页版：https://lexfridman-cn.pages.dev/ep/pieter-abbeel/
- 官方页面：https://lexfridman.com/pieter-abbeel/
- 精读字数：约 6482 字（阅读约 14 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

OpenAI 有一只单腿机器人，学会了后空翻。整个过程里没有人给它写过“后空翻”这条奖励函数，也没有人告诉它目标是什么。它只收到一类信号：人看完它刚才那段动作，说这次比上次好，或者说这次不如上次。

几十次比较之后，它翻出一个干净的后空翻。皮特·阿比耳（Pieter Abbeel）讲这件事时，把它当成强化学习最迷人的地方：人的心里装着一个目标，机器人对那个目标一无所知，两边靠“更好”和“更差”这两类偏好信号，最后收敛到了同一个动作上。阿比耳是伯克利机器人学习实验室的主任，深度强化学习这条线上最核心的研究者之一，也是让机器人学会抓取、飞行、操作的代表人物。

这件事的另一面，是强化学习今天最大的瓶颈。绝对分数难拿，相对偏好好拿。让人给一段动作打 1 到 10 分，他会犹豫半天；让他比较两段视频哪段顺眼，他脱口而出。OpenAI 的保罗·克里斯蒂亚诺（Paul Christiano）和同事做出的结果证明的就是：把打分换成比较，样本效率能好一大截。

## 让人形机器人打赢费德勒，卡在硬件还是软件

访谈从一个玩笑开始：什么时候能有机器人自主打赢费德勒？阿比耳把这问题拆成两半。在 AI 的很多难题里，缺的只有软件，可这件事上硬件同样差得远。波士顿动力的机器人开始接近了，但离“绕着球场跑动再挥拍”还早。他的估计是硬件还要 10 到 15 年。他特意提到场地：红土要滑步，可能比草地更难。

如果不强求人形，允许轮式底盘和特殊设计，时间会提前。挥拍这件事他反而乐观。球机在一侧发球，机械臂在另一侧挥拍，用强化学习加上一点仿真里的预训练，他觉得可行，只是不知道能做到多高的精度。人类选手能把球打在边线上，还带旋转。强化学习能不能学会给球加旋转，他说这问题把他问出兴趣来了。

> “你把我问有兴趣了。”（皮特·阿比耳）

## 明知道里面没有学习，人还是会喜欢它

物理世界里最震撼阿比耳的，还是波士顿动力那些视频：跑上楼梯、做 parkour。他说不知道底下有多少是硬编码的，但光是身体层面的运动能力就已经很惊人。他在杰夫·贝索斯（Jeff Bezos）组织的 Mars 活动上见过 SpotMini，它在场上到处溜达，贝索斯一离开房间，它还得跟着走。今年早些时候他和 Spot 一对一待过一段时间。明知道里面没有多少学习，明知道原理，心理上还是会产生某种连接。

更极端的例子是 Pepper。在一场 Fidelity 组织的活动上，Pepper 被脚本化去主持几个环节，还被脚本化出一点小孩的性格，会突然插话，也像人一样抢着参与。阿比耳说那百分之百是写死的脚本，他还是很难不把它当成一个“人”。

实验室里还有 BRETT，全称是 Berkeley Robot for the Elimination of Tedious Tasks。所有人一律叫“他”，不叫“它”。一个性别代词，就让它在心理上更像人。

那这种心理能不能写进奖励函数？阿比耳说，如果能把“让人喜欢和它相处”形式化成一个目标，强化学习没有理由学不会，也没有理由不会自己变得越来越像人，或者像宠物。难点在于怎么拿到那个信号。数字形式的评分很难，比较形式的好恶却很容易：一个人说“你刚才那五分钟比前五分钟舒服多了”，这句话就已经是一个可用的奖励。

## 一百步动作换来的 3 分，能说明什么

阿比耳提到自己刚翻开萨顿（Sutton）和巴托（Barto）那本强化学习教材时的感受：这看起来像魔法，像是智能本身的定义。

稀疏奖励下的学习为什么可能？他先讲了反面。正因为信号这么弱，强化学习才需要海量样本。设想连续做一百个动作，第一次拿到 3 分，第二次拿到 2 分。单看这两个数字毫无意义，但两条轨迹之间有了相对关系：第二次那一百个动作整体上不如第一次。两条轨迹里都混着好动作和坏动作，分不出来是哪个起了作用。所以只能靠大量经历，把“一贯和好结果同时出现的动作”和偶然的噪声分开。

然后策略梯度做的是一件很简单的事：让高奖励时经常出现的动作更可能发生，让低奖励时经常出现的动作更不可能发生。听起来过于朴素，但它在实际任务里学到的东西，比纸面推演能解释的要多。

## ReLU 网络是一片逐步铺开的线性控制器

伯克利做深度强化学习大约起步于 2011 到 2013 年，闫端（Yan Duan）最早在推动。当时他们脑子里的图景是这样的：ReLU 这类整流网络给出的东西，本质上是**分段的线性反馈控制**。

线性反馈控制在控制文献里极其成功。阿比耳举过直升机的例子：悬停状态下，直升机是一个动力学非常复杂的系统，可一个相对简单的线性控制器就能把它稳住。被控对象复杂，控制结构却可以很简单，这在工程里反复被验证过。

网络的额外好处是拼接。以前这块工作要靠人手工做：这里放一个线性控制器，那里放一个，中间用有限状态机切换。网络学的是自己决定什么时候用哪一块。两层网络里，隐层某个单元从激活切到失活，相当于沿着某个方向切一刀，这个方向不一定和坐标轴对齐。空间就这样被一刀一刀慢慢铺满，而且**相邻的那些线性控制器共享大量参数**，也就是共享了大量已经学到的经验。

阿比耳说，这是他当年敢于期待深度强化学习能成的核心直觉：它吃着线性反馈控制极其好用的红利，同时用铺砖的方式补上了线性控制做不到的部分。

## 肌肉收缩是高频的，读博的决定是低频的

这套直觉搬进真实世界，就会撞上时间尺度的问题。

人影响世界的方式，说到底是一串高频的肌肉纤维收缩和放松。但“决定读一个博士”这种决策，跟肌肉动作之间隔了不知道多少层抽象。做出决定到看到结果要十年，中间还有无数分叉。现有算法根本没有能力把最终的结果归因到当初那个决定上。

这就是信用分配（credit assignment）的死结。阿比耳认为，要解开它，需要**目前完全不存在的层级推理能力**。调参补不上这个缺口，缺的是一个还没有被发明出来的机制。

## 二三十年前的推理系统能想很远，只是没接地

层级推理这四个字，容易让人以为是个新问题。阿比耳提醒，二三十年前就有能在很长时间跨度上做推理的系统，问题是它们不接地。世界的逻辑描述、动力学描述，全部由人手工设计，接不到感知上，接不到真实物体上。这套系统在纸面上想得很远，落到现实里立刻失焦。

深度学习补上的正好是这一环。它让机器能从传感器数据里看懂世界里有什么。所以现在是把两边接起来的时机，他给出了两条路线。

第一条是把深度学习嵌进传统方法，端到端训练，让深度网络的输出变成一种表征，再喂给传统的动力学系统去做规划。值迭代网络（Value Iteration Networks，阿维夫·塔玛 Aviv Tamar 等人的工作）是这条线上的代表。

第二条是信息论的思路。所谓采取一个高层动作，就是选一个隐变量，这个隐变量在相当程度上决定了未来一段时间里会发生什么。决定去加油站加油，五分钟后人到没到，从当初那个高层动作大致就能判断出来。这条路线他们做了很久，进展很小。

撞墙之后，阿比耳回头问了一个更朴素的问题：要层级到底是为了什么？答案落在两件事上，更好的信用分配，和更快的学习。

> “我们不知道层级该怎么设计，但我们知道想从它身上得到什么。那就直接把它当优化目标，看它会不会自己长出来。”（皮特·阿比耳）

这就是 RL²（由闫端领衔）的做法。在迷宫导航任务里，确实长出了东西：走廊里稳定地直着走，这本身就是一个“选项”；到了岔路口才决定转不转；甚至出现了“别去走过的地方”这种倾向。阿比耳说这算有生命迹象，只是还没能扩展到真实世界的复杂度上。

他同时承认，自己更希望这类问题能用数学解决。一个能形式化的结论可以跳过大量实验，而研究过程本身就像强化学习，要试很多次才撞到一次成功。可惜这些年大多数进展还是一步一步试出来的，那种能一眼看穿两年实验量的方程，还没有出现。

## AlexNet 真正的价值在于学到的东西能复用

迁移学习是阿比耳眼里最难也最重要的问题之一。他在这件事上的态度有点分裂。

一边是已经足够惊人的成绩。2012 年 AlexNet 在图像识别上变好，只是个开头。紧接着大家发现，在 ImageNet 上学到的东西可以微调去解新任务。这一点在当时反而是更大的事情：以前的机器学习通常是一次性的，为一个场景学一个模型，学完就完了。**“学到的东西能复用”这件事，是迁移学习到今天为止影响范围最大的一次成功。**

后来规模变大，又把这件事放大了一轮。语言模型先做预测任务，再把学到的东西复用到别的任务上。UNREAL 那类工作一边做强化学习一边挂上辅助目标，在迷宫导航里学到的不只是走法。阿比耳说这些结果已经很说明问题。

另一边是他的困惑。什么算泛化？泛化有几个层级？这条线该画在哪里？他说自己在这上面很分裂。看得见的进步是真的，概念上的模糊也是真的。

## 能预测行星轨道的模型，遇到闯入的恒星就废了

他有一个区分“学会精通”和“学会泛化”的例子。

当前的深度学习拿来预测太阳系行星的相对运动，能预测得不错。可如果突然有一颗大质量天体闯进太阳系，它就不会知道接下来会发生什么。物理学家做的事情不一样：他们要找到能解释这一切的最简解释，不断追问还能不能更简单。整个宇宙动力学的终极方程，是这种追问的极限形态。深度学习没有往这个方向推。

统计学家弗拉基米尔·瓦普尼克（Vladimir Vapnik）梦想找到学习的 E=mc²，一门关于学习的通用理论。阿比耳觉得这个追求有意思，但他心里的版本更像是**模块化原则**。有证据表明大脑相当模块化，先天失明的人会把通常处理视觉的脑区挪作他用，说明一部分脑区可以被重新征用。新皮质占了很大一块，看起来也相当模块化。如果谁能设计出同样模块化的东西，让它自己成长、自己变得更能干，这个方向不算不现实。

## 自我对弈漂亮在哪：一局里总有一方赢

自我对弈（self-play）之所以美，在于它顺手解决了强化学习最头疼的信号问题。

普通强化学习里，如果你从来没成功过，就一点信号都拿不到。自我对弈里你在两边，一局里总有一方赢、一方输，对比天然存在：一个版本的“我”比另一个版本的“我”强。每下一局都有信号。所以只要一个问题能被改写成自我对弈，学习速度就远好于普通环境。

可惜目前自我对弈主要还用在有天然对手的游戏里。如果机器人搭建一间小屋这种事也能写成自我对弈，会快得多，但没人知道怎么写。写不成就只能设计细粒度奖励，不只奖励达成目标，还要奖励中间取得的进展。这样做很耗人力。

既然奖励要花这么大力气设计，为什么不干脆演示一遍？阿比耳顺势把话头引到了模仿学习上。

## 十分钟教一个技能，和让机器人看懂你的手

最直接的一种演示是遥操作。人在这边操控，机器人在那边真实地经历整个过程。信噪比很高。阿比耳说十分钟就能教会一个基本技能，比如抓起瓶子放到指定位置，不管瓶子从哪个位置开始都能放过去。

更有意思的是第三人称。机器人不动手，只看着你做，然后自己完成那一步翻译：把“你的手在做什么”映射成“我的手该做什么”。你不能用它控制你的手，你只能看。阿比耳把 2018 年的一次重要突破归在这条线上，由切尔西·芬恩（Chelsea Finn）领衔，他形容这几乎是给示范做了一次机器翻译：人的示范被翻译成机器人该执行的动作，背后是元学习，从很少的示范里学到这种翻译关系。这打开了很多加速学习的口子。

## 自动驾驶不太需要区分第一人称和第三人称

莱克斯自己研究自动驾驶，问这套第三人称的办法能不能用过去。阿比耳说，开车这件事上，第一人称和第三人称的区分并不重要。

原因在于难的地方已经很清楚了：从当前位置到前方几米的一个点，这件事被研究得很透，动力学也好理解。区别只在谁在打方向盘。机器人操作就完全不同，接触力非常复杂，视角的区分在那里才有意义。

至于驾驶该用模仿还是强化学习，模仿给出的信号更足，短板也明显：标准形态的模仿学习里没有目标概念。纯粹反应式的行为克隆，泛化能力有限，遇到训练分布之外的场景就没辙。逆强化学习这类带目标推断的版本会好不少。阿比耳的意思很清楚：**一个没有目标概念的策略，很难泛化到你真正需要的那种程度。**

## 与其造一个完美仿真器，不如造一群不太完美的

仿真和模仿、强化学习的关系，阿比耳给了一个角度。

一条路是把仿真器做得越来越准。另一条路是造一批仿真器，每一个都不够准，单独在里面训练都迁移不到真机，但同时在全部仿真器里训练，就会出现一个在所有仿真器里都表现好的策略。真机无非是又一个略有偏差的仿真器。

> “说不定我们本来就活在一个仿真里，那真机也就是其中之一。”（皮特·阿比耳）

## 驾照只考绕街区一圈，我们却不敢这么信自动驾驶车

说到安全，阿比耳先谈最实际的一层。机器人物理上很强壮，一次失误就可能造成伤害，车可以看成会跑的机器人，风险同理。这一层是很工程的问题：这个机器人犯错，后果是什么。“机器比人聪明之后怎么办”那类长期担忧，是另一个层面的事。仿真在这里派上很大用场。

他拿驾照考试做了个对比。加州郊区的路考，绕街区开一圈，路边停车，过一个停车标志，基本就结束了。人类驾驶这么复杂的能力，被这么短的测试代表了，我们接受了这种代表性。换成一辆自动驾驶车做完这套流程，没人会信它能上路。所以真正缺的是**面向机器人的单元测试**，这一类测试目前还没有。

问题在软件更新时更尖锐。自驾驶系统升级了一版，怎么确认新版本在所有维度上都更强，没有把坏行为悄悄带进来？阿比耳说这个问题目前还没有真正的解法，是值得专门研究的方向。

## 善良是被预置的，还是能被优化出来

访谈末尾聊到善良。

阿比耳提到吴恩达（Andrew Ng）让他看到善良的价值。人的偏好里有一部分是进化预置的：痛、饿、渴，我们天生就知道要躲开，这不是被教出来的。进化把这些写进身体里，正是因为把它们写进去，学习才变得容易。同时人类又非常部落化，对自己人很宽厚，对外人要专门去学。

史蒂芬·平克（Steven Pinker）在《人性中的善良天使》里描述了暴力长期下降的趋势。无论人们怎么分阵营，长期看人类是越来越能相处。这是一种跨越很多代的缓慢优化。

那能不能把善良教给机器人？阿比耳用狗来回答。狗有推理能力，水平也不低，但远不到人类水平，可是很多人从狗身上得到的幸福感很高。回家时狗扑上来，那天就顺了；狗被带走几天，回家的那一刻就没那么高兴。建立强烈的感情联结，**不需要人类级别的推理**。至于这种联结对人是不是好事，那是另一个问题。

马斯克说过爱是答案。莱克斯顺着提了个改法：爱是目标函数，强化学习是答案。阿比耳的回答是，也许吧。

把整场对话串起来看，阿比耳的判断其实相当克制。机器人打赢费德勒还要等硬件，层级推理还没有发明出来，安全测试还没有解法，迁移学习到底算不算泛化也说不清。他反复回到同一个位置：如果一件事能被形式化成目标，学习就没理由做不到。剩下的工作，是把目标写对，以及找到足够便宜的信号来源。

- **奖励信号能用比较就别用打分。**绝对评分采集成本高、噪声大，“这一段比上一段好”这种相对判断几乎零成本，文中独腿机器人学会后空翻就是靠这个。设计人类反馈流程时，先把评分表换成二选一。
- **先问一个问题能不能改写成自我对弈。**只要能拆出两个互相竞争的自己，每局都有胜负，信号就不再稀缺。游戏之外的场景值得花时间试一次这种改写，收益远大于调超参。
- **奖励塑形做不动时，改成演示。**与其设计逐步进展的奖励，不如花十分钟遥操作示范一次，信噪比高得多。有条件的团队可以再往第三人称示范上走一步，让机器只观察、不经历。
- **仿真别追求单个完美，追求一组有偏差的。**同时在一批都不够准的仿真器里训练，逼策略学出对全部偏差都成立的行为，真机就是其中一个略有不同的样本。
- **给模型建回归测试集，尤其在更新之后。**人类靠一圈路考代表驾驶能力，机器需要更严格的东西。每次上线前确认新版本在所有维度上都不弱于旧版本，别让坏行为悄悄混进来。
- **把“层级”当优化目标而不是手工架构。**既然说不清层级该长什么样，就先定义想从它身上获得的东西，比如更快的收敛，然后让结构自己涌现，再从结果里反推它学到了什么。
- **先在大规模预测任务上预训练，再迁移。**从 ImageNet 微调到语言模型，这条路的收益被反复验证过。手上的任务规模不够时，先把数据用在通用表征上。
- **给形式化推导留出时间。**实验本身就像强化学习，要试很多次才成功一次。一个能写下来的定理或界，可以跳过两年的试错，这笔账值得算。
