30 秒看懂
2020 年,伯克利教授 Sergey Levine 在与 Lex Fridman 的一次对话中,借用 2004 年斯坦福大学一段 PR1 家用机器人的演示,把人与机器人之间的差距拆成两部分:身体基本上是工程预算的问题,大脑则不是。他认为,常识是一生经验堆起来的冰山,感知与控制应当一起训练;而强化学习(reinforcement learning)的实际瓶颈,在于从别人留下的日志中学习,同时又不能信任数据从未支撑过的预测。他追求的目标,是一台只要存在就会不断变好的机器,直到宇宙的复杂性(而非模拟器或标注数据集)让它停下来。
- 1只要愿意花钱、做工程,Levine 说,硬件上的差距几乎可以补上。智能上的差距才是真正的大鸿沟,而每当世界有机会让机器人感到意外,这道鸿沟就会拉大。
- 2尚未解决的科学问题,是经验从哪里来:是把互联网灌进一个巨大的模型,还是让机器自己去尝试、观察结果,并选择去接触世界的哪些部分?
- 3如果把感知和控制训练成一个系统,就可以把误差分配到最不致命的地方。每个模块都可以弱一些,整体却仍然可以更好。
- 4一旦强化学习能够从大规模的已有数据中引导出一个还不错的策略,再稍作微调,他预计应用会增长得很快。这个问题就是离线强化学习。
- 5任何由人工构建、又不能从数据中改进的部分,最终都会拖累整个机器。模拟有用、务实,但它不能代替真实的经验。
- 6他具体的梦想,是机器存在得越久就越好,最终撞上的是宇宙复杂性的天花板,而非模拟器或标注数据集的天花板。
按章节阅读完整文稿
身体的差距几乎只是工程预算,大脑的差距则不然
Lex Fridman 开场就问 Sergey Levine 一个问题。Levine 是伯克利的教授,研究深度强化学习、机器人和计算机视觉。Fridman 问的是:最先进的人类和最先进的机器人,差别到底在哪里。Levine 说,这个问题比看上去要棘手。有些看似困难的事其实很容易,有些看似容易的事反而很难;而机器人的身体,以及它凭自己能做到的事,两者之间的差距大得惊人。
他举了一段 2004 年斯坦福大学的视频,机器人学习领域的研究者很爱放这段。一台名为 PR1 的家用辅助机器人在收拾客厅,把玩具放回原处,还给沙发上的人端来一瓶啤酒。看上去像是未来提前到来了。但关键在于,每一个动作都有人在远程操控。Levine 说,如果给这台机器人装上人类的大脑,剩下的硬件差距其实没那么大。花点钱、做点工程,身体的问题几乎就能解决。“智能上的差距,那一块非常大。”
他认为,这道差距的大小,取决于世界有多开放。把机器人锁在工厂里,告诉它每个零件放在哪里,把动作写死,它可以超过人类:更快、更有力,能举起一辆汽车。可一旦环境像厨房那样变来变去,系统就会散架。身体仍然可以变得更好,眼下真正的瓶颈是大脑。
常识是一生累积起来的冰山,无法直接下载
Fridman 问,人的认知有多少来自天生,有多少来自后天学习。如果全都是学来的,AI 就更有希望。Levine 不是生物学家,也不打算假装是。他把问题换成了充分性:最少需要什么,而人类实际上如何做到,他并不去追问。人脸识别也许带有进化留下的先天预设,但日常生活里有大量事情是进化从未让我们准备过的,比如汽车、太空飞行,还有一个接在你从没见过的机械臂上的操纵杆。
如果把那个操纵杆交给一个人,告诉他这关系到他的生计,要靠它开一家商店,他会先笨手笨脚地折腾几秒,然后慢慢摸索出门道。这种灵活性并不是进化写好的技能,恰恰是现在的机器人最容易崩溃的地方。Fridman 猜测,这种能力是否建立在一座预训练常识的冰山之上。Levine 同意冰山确实存在,但他认为,这座冰山是靠一生的经验堆起来的,听上去很像机器学习本来就应该做的事。
要把非结构化的经验提炼成常识,仍然很难。他说,或许是因为这个领域太过拘泥于有监督的输入输出学习。更尖锐的科学问题在于,经验从哪里来?是把整个互联网塞进一个巨大的语言模型,还是让机器自己去尝试、观察结果,然后选择去接触世界的哪些部分?一个世界模型有缺陷的系统,可能会以为打翻水瓶能提高自己的效用,于是真的把它打翻。亲自去做,恰恰就是那种告诉它不要这样做的监督。
他怀疑,明天的方法与今天的方法之间的区别,就在于这种持续改进的循环:先去试试当前模型认为可行的做法,再看看是不是真的可行。经典的强化学习框架是最大化效用,每个动作都服务于这个效用。他喜欢的另一种思路(虽然不是主流)是先探索,积累一套认知工具,之后再被告知去把咖啡端来。
机器人是观察智能的窗口,并非智能落地后的应用
被问到机器人领域的大问题时,Levine 给出了两个答案。务实的那个是:一个系统在物理限制之内,能完成用户设定的任何任务,只需要少量额外训练或试错,就像远程操作员会自己摸索出来那样。第二个答案更接近他投身这个领域的原因。他更在意的,是机器人能教会我们什么关于智能的事,而不只是机器人能做到多好。
机器人研究会逼你扔掉拐杖。你必须处理感知和控制,还必须处理两者的整合。经典的模块化做法,是分别解决各个部分,再把它们接起来,然后指望整体能跑通。过去二十年的经验表明,把系统当作一个整体来研究,得到的解法与单独研究各部分时不一样。机器人还把莫拉维克悖论(Moravec's paradox)暴露得格外清楚:对人来说微积分很难,对机器来说却很容易;而端起杯子喝水,情况正好反过来。差异这样明显,说明有某种重要的东西缺失了。
操作之所以这么难,原因之一在于监督信号。在一定的抽象层次上,计算机视觉可以被当作一个监督很紧密的问题来处理,机器人操作却做不到,至少做不好。你可以在每个时间步给运动指令打标签,然后拿来训练,但效果不好,而且和人类学习的方式完全不同。父母不会告诉你,走路时每块肌肉该怎么发力。Levine 说,底层的细节,我们大多是自己摸索出来的。
感知与控制一起训练,每个部件都可以弱一些
2014 年,Levine 的团队发表了最早一批基于视觉的操作技能的端到端强化学习成果,他说这在当时的机器人学界引起了不小的争议。但真正的主张其实更窄:对于感知加控制这个整体,把两者放在一起处理,胜过把它们拆开。任务很简单:把一个红色梯形插进梯形的孔里。模块化的基线方法先用位姿估计器检测孔的位置,再去移动机械臂;端到端的基线则直接把像素映射到关节力矩。
端到端模型对感知的要求更低。它不需要精确的三维位姿,只需要让误差分布得当:水平方向上的错误代价更大,垂直方向则没那么大,因为机器人可以一直往下压,直到压不下去为止。把两者结合起来,就是在各个组件之间权衡误差:每个部分都可以弱一些,整体仍然可以更好。动物身上也有同样的模式,叫作凝视启发式(gaze heuristic)。接住一个球时,你只需要让球在视野里保持固定,无须去解微分方程组。棒球手、判断碰撞的飞行员,还有捕食昆虫的青蛙,都在用它的某种变体。
Fridman 请 Levine 举一个典型的机器人问题,只要解决了它,就能打开大量应用。Levine 说,他没有一个干净的答案,因为难点在于灵活性,而不在于把某一件事做到极致。大约在 2016 年,他会说是抓取:仓库里的商业价值巨大,而且不同的物体需要不同的策略。后来人们在这方面已经做得相当好,他也不确定它还是不是正确的指导性问题了。奏效的方法是学习,外加大量仿真或真实世界中的试错,这意味着你不再需要手工去解决几何或物理问题。
抓取之所以难,是因为物体的种类太多。纸箱和塑料袋需要不同的策略;而且,除了几何形状之外的性质,比如柔软程度、洒落的风险、哪些部分能提供稳固的抓握,也开始带有常识的味道。Fridman 问,通用机器人是否因此必然需要人类水平的智能。Levine 把问题反过来问:研究机器人,或许正是我们学会把常识放进 AI 的途径。一个把穿皮草大衣的人描述成泰迪熊的图像模型,并不生活在我们的世界里,它生活在由像素和英文句子构成的宇宙里。在那里,你永远不必为了不冷而穿上外套。被迫面对我们这团乱糟糟世界的系统,为了最大化效用,也许不得不获得常识。而现在的系统,还可以走捷径。
从最优控制到强化学习,变的更多是名字
Fridman 原以为,必须先解决智能,才能解决机器人问题;Levine 一直主张倒过来。机器人问题能否完全靠学习来解决,不注入专家规则?Levine 认为这种二分法太过绝对,毕竟仍然需要有人写算法、打开 TensorFlow。但从精神上说,确实如此:许多过去需要细致手工工程的问题,可以交给自动化优化来完成。这个想法并不新鲜。1960 年代,你会说机器人在做最优控制。给反馈最小化写微分方程,与训练一个神经网络,两者之间的差别没有宣传的那么大,只是把优化推进到了系统更深的地方。
真正重要的区别在于,学习系统原则上会随着做得越多而变得越好。这是对经典最优控制的一次有力突破。至于符号 AI,Levine 讲的这段历史带有他自己的偏好,但传承脉络很清楚。起初,理性决策是对真假谓词的逻辑运算。1990 年代,同样的推理开始带上概率。后来,人们学会了概率本身;再后来,他们不再指定节点,改为在上面放一个大型神经网络。决策依然是推理,学习依然是优化。
训练一个网络去预测机器人采取某个动作后会发生什么,再用概率推断把它反过来,找出能导向期望结果的动作。这样做看起来就像逻辑。你手里有一个世界模型,只是它碰巧用神经网络表达,而你通过操纵这个模型来回答查询。
可解释性属于验证的一部分,谈不上什么浪漫的义务
Fridman 说,符号系统留下的是一条人能顺着读下去的故事线,神经网络不会讲这样的故事。也许,想要一个令人信服的解释,本身就是人类的一个怪癖。Levine 把可解释性和性能联系在一起:你希望系统能解释自己,这样它出错时,你能弄清楚原因。这比看上去要难得多。系统可能先出错,再把解释也搞错;或者某个 bug 意味着它从来没在做你以为它在做的事。他会把可解释性归入验证与确认之下,作为其中的一个组成部分。
Fridman 还想加入另一个维度:那种与调试无关的叙事,比如政治和学术圈里,人们彼此活在对方的故事里。Levine 提到了他的前合作者 Jacob Andreas,现在是 MIT 的教授。Andreas 训练过一个策略,它读取自然语言指令,但把这句话当作策略自身的内部状态,而不当作人类的命令。面对新任务时,它会尝试一组候选描述,比如去红房子、蓝房间、绿植物那里,直到其中某一个产生奖励。你可以读出它最终定下的那串文字。语言变成了内部状态。
Fridman 更进一步:把故事的说服力也加入奖励。他说,在 Twitter 和假新闻横行的世界里,这个念头有点吓人:人们对围绕事实的那套故事有多信服,也许比事实本身更要紧。
强化学习是基于学习的控制,缺的是日志这个入口
什么是强化学习?Levine 给出的工作定义,是基于学习的控制的现代形态。经典意义上,它指从奖励与惩罚中学习。今天,这个词的外延更宽:任何利用数据不断变好、通过一系列决策来最大化效用的控制器,都算在内。图像分类是一个决策问题,只不过不是序列式的;控制化工厂是序列式的,推荐 YouTube 视频也是。正是这种广度,让强化学习成为贯穿 AI 很大一部分领域的一条有吸引力的路径。
从数学上看,有监督学习只是一个特例:把损失函数当作负奖励。有监督学习假设有人告诉了你正确答案,而且数据是干净的;强化学习则放宽了这些假设。实践中,如果你手里确实是一个有监督问题,就该用有监督的方法,那样更简单。Fridman 指出,有监督学习已经在一些狭窄的问题上很有效,而强化学习仍然更像是 AI 的一个梦想,还没有产生同样的落地影响。
Levine 提到的实际差距,在于强化学习算法利用大量已有数据的能力。在大多数需要理性决策的场景里,你不能部署一个乱来、纯靠试错学习的策略。你手里有的,是别的策略留下的日志。如果能从这些日志里得到一个还不错的策略,再稍作微调,应用就会增长得非常快。这个问题就是离线强化学习,也叫异策略(off-policy)或批量强化学习(batch RL)。他认为,研究正在越来越接近它。
从根本上说,强化学习是在学习能回答“如果……会怎样”的模型:如果我采取一个从未采取过的动作,会发生什么?基于模型的方法问的是你会进入什么状态,基于价值的方法问的是你会得到多少效用,两者其实相差不大。回答这类问题之所以难,是因为它们讨论的是没有发生过的事。同策略(on-policy)学习之所以还能工作,是因为你亲自犯错、观察反例,然后停下来,尽管过程笨拙。离线数据则迫使你直面这些反事实,却没有这样的循环。策略把观测映射到动作;同策略数据来自当前策略,异策略数据来自别人。同策略数据更有用,而异策略数据通常才是你手里已经有的。
数据从未问过的问题,就无法相信对它的预测
离线强化学习的核心陷阱在于,你不能信任模型对任意动作给出的预测。如果数据集里从来没有人把车开上人行道,那么你去问“如果这么做会怎样”,价值函数大概率会给出错误的答案。你必须判断一个预测是否可信。密度估计可以标出那些与你过去采取过的任何动作都明显不同的动作;正则化项则可以让学习者不去回答它本来就回答不了的问题。
Fridman 问,瓶颈究竟在数据还是方法。Levine 说,就离线强化学习而言,目前主要是算法问题,这让他很兴奋:这需要聪明人深入思考,无需在数据或硬件上投入巨额成本。核心问题与因果推断非常接近:统计模型去预测没见过的东西,如果它找到了正确的结构,就能泛化;如果它抓住的是虚假的相关性,就会失败。你可以去找出值得信任的区域,也可以让模型泛化得更好,或者两者同时做。
他喜欢的配方是混合:大部分冰山来自离线数据,然后把机器人派出去,摆弄它从未打开过的那把锁。这一小段真实交互,就能完成新任务。被问到强化学习里最美的想法,他说,是你可以在没有世界完整模型的情况下,得到一个接近最优的控制器。从控制的角度看,这很奇怪。经典做法是先写下方程,再求解使性能最大化的东西。强化学习理论则给出了一条有原则的路径:即使不知道支配规律的方程,也能优化一个量。
深度网络学会了特征,厨房里的盘子却仍会被打碎
深度强化学习说到底,就是强化学习算法加上高容量的神经网络。这种组合看似随意,直到你想起“特征”过去意味着什么。1990 年代末和 2000 年代初,许多方法的数学很漂亮,可以归结为凸优化,但它们需要特殊的输入,也就是能让各个类别线性可分的表示。总得有人写代码,把图像转换成这些特征。神经网络学会了特征,这对图像来说很好,对那些从来没有好特征的领域来说就更好,而强化学习正是其中之一。
试想一下,围棋价值函数的线性特征,哪怕是最优策略的线性特征。人们曾经写下一长串专家直觉:马是不是处在棋盘中央?这条路没能走远。国际象棋至少还有懂得该看什么的专家,机器人领域往往没有。Fridman 问到这种表示能力的极限。Levine 说,这个问题很难回答,因为别的瓶颈会先冒出来。他让机器人在厨房里学洗碗没成功,一个可能的原因是网络太小;但真实世界里的试错,又会碰上别的问题。
把机器人放进你的厨房,它会把所有盘子都打碎,然后再也没有东西可洗。这听上去像工程细节,其实是个科学问题。人打碎一个盘子,下次就会小心一些;要是全打碎了,就去再拿些来。这种支撑,比如再试一次、求助、查资料,都处在经典强化学习框架之外。奖励函数也一样。你怎么知道自己把那杯水倒对了?你可能需要一整套计算机系统,只为给它打分,这很不优雅。这些缺口说明,问题本身的表述可能存在缺陷。
在围棋和 AlphaZero 那样的场景里,不存在摔碎的盘子。瓶颈在于算力,以及购买算力的钱。在真实世界里,你需要复用数据,并建起那座冰山。指望一台孤立的机器在几分钟内掌握一项复杂任务,像人们看上去能做到的那样,也许太过乐观。它未必需要这样。它需要的是一生中做过许多事情,让先前的经验使新的事情变得高效。这正是多任务学习和元学习背后的主题。
模拟是有用的起点,无法从数据中改进的部分会成为瓶颈
Fridman 提到特斯拉的 Autopilot,那时车队规模接近 100 万辆,电脑驾驶的时间大约占 30% 到 40%,其余时间由人来开,而且这是一个出错就会危及生命的场景。Levine 说,可靠性,也就是知道自己能力的边界,与离线强化学习中的信任是同一个问题。如果模型无法准确预测某种行为模式,就不要用这种预测去改变策略,部署时也不应该信任它。他乐观地认为,未来几年围绕这个问题的工作会有所收获。
模拟,他说,是一种务实的工具,能让有用的系统眼下就跑起来。从长远看,机器必须从真实数据中学习,因为只有这样它们才能持续改进。如果依赖模拟数据,模拟器就会成为瓶颈。这条规则具有普遍性:机器中任何不能从数据中改进的、由人手工构建的部分,最终都会拖累整体。手工设计的控制器,同样是一道天花板。模拟永远不会暴露摔碎盘子和未知奖励这类问题,它们只会在真实世界里出现。
被问到我们是否生活在模拟之中,Levine 说他毫无头绪。他更关心的是工程问题:要造出一个足够逼真的虚拟现实,让你宁愿待在里面,难度有多大?他喜欢 VR,但认为它离那个程度还很远。他认为,等他真愿意住进去的那一天到来,大多数人离那一天也只剩几年了,而抵达那里,并不需要模拟量子引力。如果这对训练 AI 也成立,那就意味着创造一个宇宙比创造一个大脑还容易,听上去有点怪。他对“人在回路中”的希望是,一个拥有大量先验数据、能从自身经验中学习的多任务机器人,也许会像对待其他一切那样对待人。理解他人的目标,能否从最大化效用中涌现出来,值得先去检验,再考虑发明一个专门的模块。
谈到重力,常见的陷阱是:因为我们知道某件事,就以为应该告诉机器。那些影响许多事件、又时时出现的规律,比如松手后物体会下落,其实很容易学会。机器学到的可能是牛顿那一版,爱因斯坦那一版未必学得到,但这已经足够让它合理行动。把数据里显而易见的东西手动写明,往往比让机器自己去发现更费力。局部最优确实令人担忧;人类文明在医学上曾长期困在迷信这类局部最优里。他说,这是这种方法的失败,同时也是人类智能的失败。
他更担心的是目标优化得不够好
在游戏里,自我对弈看起来威力很大。Levine 怀疑,在机器人领域没法直接走这条捷径。你仍然需要的是那种通过自然交互而变得更好的机器;然后它们才能彼此对弈、与人对弈、与环境对弈。棋类游戏的自我对弈之所以有效,是因为规则调节着互动,而涌现出的智能依赖于这个中介。经典强化学习把奖励当作外部给定的东西,他认为这是一个错误。奖励可以是一种沟通媒介,比如人如何把目标告诉机器人;也可以是一种内在动机媒介,也就是一个通用目标,即使没有具体任务,也能产生有用的技能。
这第二条路,有时被叫作无监督强化学习。他的团队用过信息论的量,比如最小化一种贝叶斯意义上的“惊讶度”,这一思路来自包括 Karl Friston 在内的计算神经科学家。行为上能准确预测世界,就可能发现稳定的生态位:在俄罗斯方块里,消行让棋盘保持干净,也让你能玩得更久。他更感兴趣的是,发现新事物能否成为其他能力目标的涌现结果,而非把好奇心本身当作目的。对于防止奇怪策略,一个实用的护栏是:设定一个目标,告诉系统不要进入在先验下概率很低的状态。这也是做离线强化学习的一个好办法,前提是你慢慢地向外探索。
关于对齐,也就是 Stuart Russell 提出的那个问题:让 AI 的成功与更广泛的人类利益保持一致。Levine 没有很好的答案,但他认为这很重要。他目前担心的方向恰恰相反。与其担心目标被优化得过头而产生意料之外的后果,他更担心的是目标没有被优化到位,尤其是在汽车和飞机上。意料之外的后果仍然可能出现在远离最优的地方,他的意思是,眼下可靠性的瓶颈,是系统还需要做得更好。凡是强大的技术,都会带来生存层面的隐患,包括居心不良的人、存在致命漏洞的系统,以及能力远超预期的系统。在这些隐患中,他最在意前两类,其中又以居心不良的人为甚。“纵观人类历史,一直以来的麻烦都来自邪恶的人,而非邪恶的机器。”
他能做的,是尽可能打造最好的技术,并推动负责任地使用。强化学习有没有让我们更了解自己?他还不确定。一些新的行为,也许要等到强化学习被广泛用于医疗、教育和社交媒体上的决策支持,在系统能够影响人的场景里,才会显现出来。Fridman 希望,那些握有数据的公司足够透明,让外界能分辨某个算法是否真的参与其中。
先建立通用方法,再让它们去收集自己的经验
Fridman 提到 Rich Sutton 的文章《苦涩的教训》(The Bitter Lesson):简单、通用、能借助算力的方法,最终会胜出。Levine 同意其中的高层思路,但不同意坐等计算机变快。他的结论是,应该去研究通用算法。如果自动化的通用方法加上数据能带来好结果,那就去构建你能部署的方法,让它们自己去收集经验。这最后一步,在模拟器或棋类游戏里很容易,在真实世界里却非常困难。数据该怎么收集?世界上有 70 亿人,每个人都在某个时候学过这些技能,这些经验就摆在那里。我们应该去尝试收集它。
被问到哪些书塑造了他,Levine 诚实地回答是 Isaac Asimov:一个机器人系统在社会中占据重要位置的未来,以及一种试图想象技术进步极限情形的努力。他是读研究生时才真正爱上这个领域的。直到 2009 年或 2010 年前后,这个方向都不是他的优先事项,因为他不认为有实质性进展会在有生之年出现。真正的转折,是一门与 Pieter Abbeel 一起上的研讨课。Abbeel 在开课的第一讲上说,过去学生想做 AI 时,他总会笑笑,然后丢给他们一道数学题;现在他认为,这个领域的学生也许能在有生之年看到实质性的进展。这话出自一个为此奉献了一生的人之口,分量很重。
他给学生的建议是,不要害怕花时间去想象自己想要的结果。职业、薪水,或者基准测试上的最新成绩,都可以是结果,但它们不应是主要的驱动力。坐下来,描绘你希望机器、机器人或语言系统做到什么,几乎像是在为一款未来产品拍广告,然后倒推其中的步骤。一个更高的图像分类分数,撑不起这样的角色;一个机器人管家,或者一套医疗决策支持系统,也许可以。这种习惯会让你重新审视假设,去攻克别人没有攻克的瓶颈。
他自己的奖励函数是什么?满足感来自确信自己在研究一个真正重要的问题。解决它本身,不如花时间去做他认为值得做的事那么重要,而他也很努力地挑选这些事。他具体的梦想是,机器存在得越久,就变得越好。今天我们还没有这样的机器,即使看上去像是有了。宇宙的复杂性没有尽头,而迄今为止的每一台机器,都会在耗尽可观察的东西之前,先撞上一堵墙:一个单薄的模拟器,或者一个标注好的数据集。他想造一台尽可能走得远的机器,直到撞上这种复杂性的天花板。
同频道的其他文章
3:36:56EN → 简体中文
5:15:51EN → 简体中文
3:12:58EN → 简体中文
3:46:18EN → 简体中文
3:51:47EN → 简体中文
2:53:42EN → 简体中文