稳定性是制约人形机器人落地的重要因素之一,除尘烟雾收集罩如何利用强化学习(RL)与基于模型的控制(MBC)来进一步提高机器人的稳定性,已成当下业界的重要研究方向。
2024 年 12 月 8 日,雷峰网、AI 科技评论 GAIR Live 品牌联合石麻笔记一起举办了一场主题为"RL+Control:将机器人可靠性逼近99.9x%"的线上圆桌沙龙。
圆桌主持人为石麻笔记主理人、英诺天使投资人王建明,并邀请了浙江大学副教授与云深处创始人朱秋国、北京大学长聘副教授卢宗青、卡内基梅隆大学(CMU)石冠亚与加州大学伯克利分校博士后罗剑岚一起进行了一场深度的讨论。
会上,四位嘉宾围绕 RL、Control 和机器人可靠性之间的关系分别提出了自己的独到见解,其中:
石冠亚认为,可靠性包含多个维度:底层硬件的稳定性、兜底恢复(Recover)能力,而且可靠性不能一概而论,需要结合场景对泛化性的需求程度。当下,将强化学习与控制相结合,例如把控制的安全性融入强化学习中,或者借助控制良好的结构使强化学习变得更具稳健性,是提高机器人稳定性的可行路径。
朱秋国则表示,学界的可靠性和产业界的可靠性并不完全相同,很难将一种方法在实验中的可靠性(比如达到99%或者90%)直接套用到产业产品中。机器人作为产品形式出现,必然要解决硬件和软件融合之后的可靠性。他认为,RL 在控制领域里有点类似镇定器,在与环境交互接触的过程中,依靠强化学习的模型,能够确保机器人稳定可靠。但这并不意味着基于模型的方法就失效了,模型预测控制(MPC)与强化学习相结合也是当前的另一种趋势。
罗剑岚指出,机器人要想真正发挥作用,成功率实际上要达到 100%,因为每一次出现故障、失败都有成本,会直接导致收益减少。要达到这个目的(100%),需要将强化学习和模仿学习结合起来,并与环境进行交互,在动态的过程中去实现可靠性。
卢宗青认为,在现实世界里,要实现高性能的操作并达到高可靠性(100%),一定要与环境进行交互,而要实现与环境交互,就必须得运用强化学习(RL);而依靠模仿学习、强化学习这些控制方法,人形机器人不太可能达到99%以上的可靠性。从场景需求出发,许多任务并不需要100%的成功率,而是满足设定的目标值即可。
除此之外,四位嘉宾围绕机器人的移动(Locomotion)、操作(Manipulation)以及未来 RL 的创新方向等话题展开了精彩分享。以下 AI 科技评论进行了不改原意的整理:
"机器人是一个很棒的平台"
王建明:先请嘉宾们做一个自我介绍,从罗博士开始吧。
罗剑岚:大家好,我是罗剑岚。我目前在伯克利人工智能研究实验室(BAIR)担任博士后研究员。我曾在伯克利获得博士学位,并在谷歌工作了两三年,后来又回到伯克利。自 2015、2016 年起,我开始涉足机器人学习领域,当时这一领域还未被称为"具身智能",我的研究重点集中在机器人操作技术。
石冠亚:大家好,我是 2023 年入职 CMU 机器人研究所的助理教授,资历尚浅。我的博士毕业于加州理工学院控制系,该系云集了 Richard M. Murray、John Doyle 等控制领域的大佬。我从 2017 年开始研究 Control+Learning,当时很多控制领域的人都在考虑加入 Learning 元素,到目前为止我在 RL+Control 这个方向的研究已有七八年了。
博士毕业后,我在华盛顿大学做博士后,师从 Byron Boots,开展了大量机器人学习方面的工作。读博士之前,我在清华念本科。我对今天的主题极为感兴趣,我思考这个问题差不多有十年了,从本科时就开始琢磨,所以特别高兴能和大家探讨,可能等会我会有很多暴论(笑)。
卢宗青:大家好。我来自北大计算机学院,主要做强化学习算法研究。我 2017 年回国后便一直钻研强化学习算法。近期也涉足机器人相关工作,并且在跟进大模型研究,重点关注视觉标记化(Vision Tokenizer)以及交互学习的相关内容。
朱秋国:大家好,我是浙江大学控制学院副教授兼云深处科技创始人。我一直专注于人形机器人与四足机器人研究。早期运用传统控制理论方法,2019 年起便与国外学者合作开展 RL 相关研究, 主要带领课题组研究生开展这方面的研究工作。
王建明:感谢老师们的自我介绍。今天的讨论主题是"RL + Control"。作为热身,咱们先简单聊聊。很多人觉得 AI 和机器人结合是当下最大的机遇和浪潮,各位老师在浪潮来临前的十年甚至更久就在这个领域深耕了。能不能讲讲当初为什么选这个方向?现在风口来了,又有什么感受?
石冠亚:我觉得机器人和其他领域有个很大的不同之处,就是它属于系统性工程,由很多模块组成,像大脑、小脑、肌肉这些。大脑对应的是一些高层次算法,小脑则是全身控制算法,还包括硬件等方面。
以前我跟着导师读博时,有位叫 Joel W. Burdick 的老师,他在机器人领域造诣很深,可能都做了50年了。他常跟我说他的机器人波浪(Wave)理论,意思是每次机器人领域成为风口时,就会有很多浪潮往前推进,虽说没办法达到通用人工智能(AGI)的程度,但总会留下些成果,而这些成果对机器人领域来说是很大的贡献,等到下一波浪潮来临时,又会基于之前留下的成果再掀起新的浪潮。我对这个观点挺认同的。
回到王老师提的问题,我为什么喜欢机器人、为什么做机器人做了这么多年。我觉得机器人就是个载体,你想做的任何研究都可以通过它来开展。举个例子,要是你想挑战极限,去做个跑步机器人,那完全没问题,又或者你从材料科学角度去组装一个机器人也行,还可以专注做算法。总之,我认为它是个很棒的平台,能让我们去做很多想做的研究。
有没有和别人意见相左、坚持不下去的时候?对我而言,最大的不同可能就是我一直不太相信端到端学习算法能直接在real world里work,或许这与当下很多人的观念不太一样,但我觉得它并非非主流观点。很多人都觉得我们这个领域最大的争议是:"是不是 Data is all you need?"实际上,去年针对这一话题有过一场讨论,会后现场投票的结果是 50:50,所以我也不能说这是个非主流观点。
我其实一直挺坚持我们要在 real world 里做一些学习(Learning),并且要有一些真实的数据、一些结构(Structure)。我觉得这算不上冷门观点,但它确实是我的一个看法。
王建明:朱老师您也一直在这一领域里耕耘了至少 15 年,从最开始的双足人形机器人,到后面的四足机器人,您可以分享下这一路以来的感受吗?
朱秋国:我长期从事人形机器人相关研究工作,四足机器人是跟人形机器人并行的一个方向。因为早在最开始的时候,我们还和清华一起参加了 ROBOCUP 人形机器人比赛,当时就有一个预言,说到 2050 年时,要组建一支人形机器人队伍,最终能够打败人类足球队。可以想象一下,这中间的时间跨度非常大。
对于我们从事控制领域工作的人来说,人形机器人本身就是一个很棒的研究平台。机器人缺乏稳定性,如何控制它们是一个挑战,没有现成的理论或稳定性标准。我们的目标是让机器人走出实验室,适应真实世界的复杂环境,然后考虑如何实现实际应用。
对我个人而言,首先要热爱机器人,其次,在实现最终应用的过程中,需要经历不同阶段,包括理论的升级和机器人性能的提升。2010 年之前,我们实验室导师就提出要求,能不能让机器人走到室外,比如到实验室外的坡上、操场上走走。现在看来轻而易举的事,在那时却难如登天。光是迈出这一步,我发现都花了近十年时间。所以机器人本身就是个需要长期坚持的赛道或方向,要么放弃,要么长期坚守。
罗剑岚:实际上,我最初在伯克利从事控制领域的研究时,开始接触机器人学(Robotics)。当时我参与的第一个项目是操作(Manipulation)任务。在传统的控制方法中,需要采用分离原理(Separation principle),也就是将状态估计(State estimation)和控制(Control)分开。然而,很多操作问题中,状态估计并不是容易实现的。正因如此,这种控制方法在一些复杂场景下遇到了很大的挑战。
后来,我看到了伯克利在2015年发表的端到端(End-to-end)方法相关论文《Guide Policy Search》。这篇文章让我眼前一亮,因为它跳脱了传统分离控制的框架,为操作任务提供了一种全新的思路。通过端到端的学习方法,直接从感知到控制进行优化,绕过了对状态精确估计的依赖。
尽管操作任务至今仍然是一个巨大的挑战,很多问题还没有被完全解决,但端到端的学习方法以其广泛的适用性和潜力,正在成为解决实际操作问题的重要方向。
卢宗青:我先讲讲我的历程。我和其他三位老师不太一样的地方在于,我本身是做强化学习算法的,所以此前大部分工作都停留在做强化学习实验上,主要涉及两块,一个是 MuJoCo(通用物理引擎),另一个是游戏。实际上,我们之前主要聚焦在游戏这方面。
不过在大模型出现后,我们做了很多尝试,就是把强化学习和大模型结合起来开展工作。去年也做了诸多尝试,包括通用计算机的控制等一系列工作。我们期望能打造出一个通用智能体(Agent),让它能够控制并完成电脑上各种各样的任务,但是后来发现,尤其是在大模型方面,目前还很难做到这一点。
所以,我觉得即便有了大模型,它也需要与真实环境进行交互,基于这样获取到的数据去更好地学习。我跟剑岚刚才表达的意思相近,就是确实需要与物理环境交互,基于与物理环境交互得来的数据去学习,或许才能催生更具通用性的智能。
而说到与物理世界交互的载体,自然就是机器人了。因此,从今年开始,我们会把更多精力放在机器人方面,涵盖 Locomotion、Manipulation,以及思考在真实数据的基础上如何更好地学习大模型,特别是针对视觉这块,毕竟就目前的大模型而言,其对视觉的理解还比较薄弱。所以,怎样通过视觉也好,触觉也好,去更好地理解物理世界,是我们当下所关注的重点。
RL+Control 之于 Locomotion
王建明:接下来探讨一些更具体的问题,咱们先聊聊 RL 和 Control 在机器人移动能力(Locomotion)上的情况。
当 RL 和 Control 应用于 Locomotion 这一领域,其实很多时候二者是分开工作的。比如,有些老师一开始是运用基于模型的控制(MBC)方法来处理 Locomotion。而现在,很多强化学习的应用是先在仿真环境里进行,然后再通过 Sim2Real 的思路去解决机器人移动的相关问题。
石老师,我前段时间看了您在 YouTube 上的一个视频,是介绍 RL 和 Control 相结合的内容,像在四足机器人、人形机器人等方面都能结合。您还提到了 Leaning dynamics from real world 等概念,您可以系统地讲讲过去十年您是怎么把 RL 和 Control 结合起来的吗?
石冠亚:这个问题有些大,我先从一个小角度来切入吧。首先表明我的第一个观点,算是个"暴论"吧。我觉得 RL 以及 Control 本身都算不上是一种方法,而应该是一个问题。
我觉得强化学习的定义就是有一个马尔可夫决策过程(MDP),包含奖励(Reward)和系统动态特性(Dynamics),目标是优化奖励,找到策略用于控制,这和 Control 本质上是一回事。其定义就是面对动态系统去设计策略以满足一些限制,不能因为 Richard Belle man 提出"S、A、R、S" 这套表述就说它们不同。
因为它们本质是问题,所以有很多算法,像 RL 就很丰富多样。比如 Sim2Real RL 就是很具体的方法,我可以在像MuJoCo、SR 游戏这类做 Locomotion 的主流仿真器里,用近端策略优化算法(PPO)训练策略,再应用到现实世界中,这跟剑岚做的很多真机+ RL 完全不同,我觉得它们的差别比 RL 与 Control 的差别还大。
我的观点是,它们是两个不同的问题,得更具体地去探讨。就拿强化学习来说,我们得明确具体讨论的是哪种类型的强化学习。比如是 "仿真到现实的无模型强化学习(Sim2Real Model - Free Reinforcement Learning)" 呢,还是当下很热门的 "学习世界模型(Learning word model)"、也就是基于模型的强化学习(Model-based reinforcement learning),亦或是在真实世界里开展的无模型强化学习呢?像剑岚近期就有不少很棒的相关工作。
我觉得这些不同类型的强化学习其实差别挺大的。另外,还有离线强化学习(Offline reinforcement learning),有很多演示数据(Demonstration)的时候,不光能做模仿学习,还可以进行离线强化学习。我觉得它们之间的差别甚至比强化学习(RL)内部不同类型之间的差别还要大,这是我的第一个观点,第一个暴论。
第二点,说到 Locomotion,目前在这方面最流行的 RL 方法就是仿真到现实强化学习(Sim2Real RL),就是先在虚拟仿真(Simulated)环境里,运用近端策略优化算法(PPO)或者其他类似的算法去训练出一个策略,之后再把这个策略部署到现实世界当中去。
我的第二个"暴论"就是,我认为 Sim2Real RL 是一种基于模型的方法。你想想它的操作流程就能明白,首先得有一个你比较信赖的模型,比如仿真器(Simulator),然后在这个仿真器里训练出一个策略(Policy),之后再把这个策略部署到现实(Real world)当中。
不过我觉得它和 MBC 在两个维度上是不一样的,那它的优势在哪?在我看来,Sim2Real RL 最大的优势,在于其离线计算能力近乎无穷。也就是说,它可以离线从成百上千乃至上万条轨迹(Trajectory)当中去学习策略,有充足的时间去进行优化,从而找到合适的策略。 像 MPC 这类大多数基于模型的控制方法,其实它们所有的算力运用都是在线上的。就是说,我得在线去确定机器人下一步往哪儿走,它并没有离线的算力。
所以我觉得这就是 Sim2Real RL 和 MBC 在算力运用方面第一个主要的不同点,也就是算力到底是用在离线阶段(Offline)还是在线阶段(Online)。"离线"的定义,就是在机器人开始运行之前进行相关运算;而"在线"就是机器人一边运行,一边去计算相应的内容。
然后第二个我觉得 Sim2Real RL 相对 MBC 最大的优势在于,它在一定程度上绕开了状态估计(State estimation)的问题。在传统的控制里,我们一般遵循分离原则(Separate principle),比如说要用模型预测控制(MPC)去控制一个人形机器人,在这之前,大概率得先搞一个状态估计器(State estimator),去估计机器人自身的速度、角速度等物理量。
从某种程度上,在传统控制里,状态估计(Estimation)其实和 Control 一样,都是要面对的问题。说到底,你得清楚机器人所处的状态、得知道机器人此时此刻在什么位置。我觉得在现实世界里,状态估计(Estimation)其实和控制一样,都是要面对的问题,说到底就是得知道机器人的状态,清楚它此刻所在位置。而强化学习(RL)在一定程度上能绕开这个问题,因为它可以同时学习策略(Policy)和状态估计器(State estimator)。
拿目前在 Locomotion 方面最成功、最流行的逻辑来说,师生网络学习(Teacher Student Learning)。自 2020 年 Science Robotics 发布论文"Learning quadrupedal locomotion over challenging terrain(在具有挑战性的地形上学习四足移动)"之后,大概有几千篇文章都遵循这个逻辑,一直到现在,差不多5年时间把师生网络学习推到了顶峰。
师生网络学习是什么意思?就是先在仿真环境(Simulator)里训练出一个所谓的"教师策略(Teacher Policy)",这个"教师策略"知晓一切,比如它知道仿真器里的所有信息,像地面的各种情况、机器人的速度等等,这些我们称之为特权状态(Privilege state)。 然后,这个"教师策略"(Policy)是没办法直接部署到真机上的,因为在现实中,你没办法知晓地面情况,也不清楚机器人的绝对速度等信息。不过在 RL 里,利用这个"教师策略"后,可以将它提炼到一个叫"学生策略"(Student policy)的东西里,这个"学生策略"的输入是你所能观测到信息的历史记录,也就是"过去 n 步"的相关情况。目前这套方法已经很成熟了。
我觉得,就是因为有这种师生学习框架,所以绕开了状态估计(State estimation)这个问题。相当于在实际应用中,你不需要获取真实的状态,可以直接利用感知信息的历史记录就可以进行控制操作了。 我觉得这两点就是强化学习(RL)最大的优势。
而对于 Control,我认为它也有两大优势。第一点是跟 RL 刚好完全相反。首先,Control 具备在线计算能力。Sim2Real RL 存在的问题是,你在仿真环境里训练出一个策略后,一旦应用到线上,这个策略就固定住了。哪怕这个策略效果很差、很不理想,你也没办法去实时调整它,除非你再去做真实世界的 RL,而且基本上都会受到 Sim2Real GAP 的影响。如果仿真器质量很差的话,那产生的误差就会很大。但 Control 有个很重要的思路,就是可以进行类似 MPC 那样的操作,能够一边让机器人运行,一边进行相应的计算。
Control 的第二个的优势就是它具备很多很不错的结构。现在大部分流行的 RL 算法,其实就是近端策略优化算法(PPO),大家都用它,因为它是同策略(Onpolicy)的,大家也不太在意采样效率。它最终呈现出来的性能表现还算比较好,而且操作起来也相对简单,不过它本身并没有什么特定的结构,这就导致有时候它会收敛到一些我们不想要的状态,比如一些很奇怪的状态。但控制就不一样了,它有很好的结构,能够借此提高采样效率,这就是它的一个优势所在。
我很多研究的核心思路,就是尝试将 RL 与 Control 相结合,例如把 Control 的安全性融入 RL 中,或者借助 Control 良好的结构使强化学习变得更具稳健性。最后,我和前面三位老师有一个共识,最有效的学习方式最终还是要落实在真实世界当中去开展和验证。
我对于当前仿真(Simulation)方面的进展并不是特别乐观,因为我始终觉得,开发出一个非常完美的仿真器本身就是极为困难的一件事。我们不能期望能有达到通用人工智能(AGI)水平的仿真器出现,然后凭借它去解决所有问题。所以,一定要以某种方式,在真实世界里去做学习(Learning)才行,只不过我所采取的角度是将 RL 和 Control 相结合去做真实世界里的学习。
王建明:谢谢石老师。我觉得您可以推荐一些您在 RL 和 Control 结合方面的工作,可以让同学们参考学习一下。
石冠亚:好的,我分享几个相关内容吧。
第一个,我做过很多人形机器人相关的工作,其中有一套逻辑是我个人特别喜欢的,那就是别让 RL 直接进行一对一(n to n)的输入输出操作。我觉得当下有不少论文,就是用 RL 去输出比较高层的信息,打个比方,要是去控制一个人形机器人,为什么非得让强化学习(RL)去输出每个电机的扭矩呢?其实可以让它输出一些更高层的信息,比如可以让它输出速度、加速度等信息。 我觉得这是个挺有意思的方向,我有不少相关论文,大家可以搜一下"CAJun"就能找到,也可以直接进入我实验室主页看看那些视频,视频里机器狗跳跃等展示的成果,其实都是基于这个逻辑做出来的。
第二个给大家推荐的一系列工作,是带有"现实到仿真(Real to Sim)"的特点。我没直接做 Sim2Real 的工作,而是先进行 Real to Sim,再做 Sim2Real 。我个人挺看好这个方向,就是不在固定不变的仿真器里学习,而是到现实中获取数据来改进仿真器,之后再基于改进后的仿真器进行学习。 这个方向我觉得也挺不错的,我们近期在这方面也开展了一些工作。
第三个,就是基于 MPC 相关内容。更有意思一点的做法是,我们先学习一个世界模型(World model),然后再利用 MPC 去进行控制操作。这方面我们最近有挺多文章的,比如说 DIAL-MPC 的相关研究挺热门,很多人都在用,因为它的代码相对于传统MPC简单好用很多。我们做了很多关于学习动力学(Learn dynamics)的工作,就是在现实环境里把动力学模型学习出来,之后再运用基于采样的模型预测控制(Sampling-based MPC)去开展后续的 Control。 因为基于采样的模型预测控制算是一种最灵活的 MPC 方法了。
王建明:好的,谢谢石老师。朱老师,我觉得您在国内控制领域实力很强,整个浙大在控制方面也是如此,尤其在关节机器人控制领域经验丰富。从产业化角度看,朱老师所在的云深处近期的工作令人印象深刻,像四足狗、轮足机器人,它们现在很多控制都用 RL。能否请朱老师介绍一下,从传统的 MPC、更早的 ZMP(零力矩点)等方法的使用,到现在使用 RL,这整个过程您有什么感受?另外,对于产业和学术结合方面,您如何看待这两种方法?
朱秋国:早期在机器人上我们大量运用了 MPC +WBC(全身运动控制)这类方法,做了不少相关工作。但从整体效果来看,采用 RL 的方法能更好地展现机器人全身运动能力。
MPC 和 WBC 在 RL 出现之前算是比较主流的方式,因为无论是面向人形机器人还是四足机器人,它们的全身模型很复杂,当要去求解这种高维度的最优问题时,不仅需要大量计算,还得保证在线的实时性才行。
所以我们运用 MPC 时,往往会对模型进行简化,也就是处理简化模型的长时域最优化问题。在这个过程中,需要进行建模,比如先将其简化成单刚体模型,复杂一点的话就变成机器人模型。在此基础上,通过预测来保障机器人状态轨迹的可预测性,进而确保机器人的稳定性。但做完简化模型那一步后,大家发现存在问题,因为简化后的模型很难真实反映机器人全身动力学的特点。
于是我们的研究进入了第二阶段,也就是处理复杂模型的短时域最优化问题,就是所谓的全身运动控制(WBC)。在这个阶段,要建立机器人的全身动力学模型,然后计算出当前的最优控制以保证实时性,用全身运动控制(WBC)来弥补模型预测控制(MPC)因简化模型而产生的问题。这项工作确实开展了挺多,也取得了比较好的效果,不过运动的灵活性还是比较固定。我们通过这种方法做出的效果,很难与波士顿动力 Atlas 机器人相媲美,Atlas 呈现出的效果是最好的。
在很多场景下,我们现在用的机器人算法还是以传统的模型预测控制(MPC)加全身运动控制(WBC)这种方式为主,因为这种方式比较稳定、可靠,也容易解释和分析。不过这种方式也会带来一些问题。
第一个问题,比如对于腿足机器人,它的运动模式是足部离散运动,在它跳跃或者行走、跑步的时候,要怎么保持它连续跳跃的稳定性?如果采用传统方法,就会遇到几个问题,像怎么保证机器人在规定时间内接触地面,还有接触地面后怎么保证它能快速响应之类的问题。
要是还用传统的优化方法框架去处理的话,比如把时间纳入到优化问题里,就会发现这个优化问题会变得极为复杂,而且现在大部分人运用这套方法时,往往会忽视这个问题。
第二个问题是,关于触觉感知,怎么能让它在模型预测控制(MPC)起作用前就发挥作用呢?很有可能等检测到相关信息时,机器人就已经摔倒了。这些是我们在使用传统模型控制方法过程中会碰到的一些问题与挑战,有些问题很难解决,甚至根本没办法解决。
那么 RL 还是有它的优势,前面石老师讲过的那些优点我就不赘述了。我觉得 RL 在控制领域里有点类似镇定器,在与环境交互接触的过程中,靠着这样一套强化学习的模型,能够确保机器人稳定可靠。所以现在我们推出的人形机器人、机器狗、轮足机器人,我们实际运用的都是 RL 这套方法。在运用过程中,无论是发挥全身动力学的能力,还是实现全身的协调性,都能展现出更高的灵活性。
所以我们目前主要的研究重点还是放在 RL 上,但这并不意味着基于模型的方法就没用了。在浙大这边的研究中,我们带的研究生已经开始尝试在 RL 技术基础上,融入一些 MPC 的思路或设想,去开展一些更具挑战性的工作。
我觉得从原来单纯用 MPC,到后来使用 RL,再到现在进行 MPC 与 RL 相结合,可能就是在这个领域不断摸索的一个过程。
王建明:那请卢老师先介绍一下,您在强化学习领域深耕多年,能否跟大家分享下您目前在这方面的工作及经验积累?
卢宗青:好的,我先回应一下冠亚刚才提到的问题。首先,无模型强化学习(Model free RL)和 Control 解决的其实是相同的问题,面临的数学问题也是一样的,只不过解法不同罢了。
我一直在从事强化学习相关工作。对于机器人,尤其是人形机器人的解法,我们侧重的角度可能和大家不太一样。从人的角度来看,我们更多基于一种分层的假设框架,在高层可能更多涉及姿态方面的调控,或者说并非传统意义的控制,而是通过姿态去影响,而在下层,比如低层级策略,去进行具体的控制操作,好比针对人形机器人,就是过控制电机或其他控制量来实现相应姿态。
所以我们更关注与物理世界的交互,而在交互过程中需要融入视觉信息。毕竟人在控制自身身体时,会融入大量视觉信息,还有触觉信息等各类从外部能感知到的信息。也就是人形机器人如何与物理世界进行交互。
而且就人形机器人而言,我们可以利用大量与人相关的数据,包含互联网上能获取到的视频等资料。那如何依据这些数据让机器人实现对自身身体的控制?对于下层策略来说,不管是运用近端策略优化算法(PPO)在仿真器里训练,还是采用模型预测控制(MPC)的方法,只要能达成上层所给出的目标就行。我觉得这样的思路或许更容易构建出一套系统,从而更好地解决相关问题。
对于 Locomotion,目前多数情况下,不管是用 RL 还是 MPC 的方法去处理,解决的都是同样的问题。但我觉得其中更关键的是,怎样融入额外的模块,以此来考量物理世界中的相关信息。另外,就物理世界中的信息而言,学习动力学(Learning Dynamics)可能是相当困难的事。像其他学者提到的构建世界模型,要想在视觉层面以及触觉层面真的构建出一个完整的仿真器或者世界模型,我认为难度很大。所以从我的角度来看,在现实世界中去学习或许会更好一些。
Manipulation 之所以用 RL
王建明:好的,谢谢卢老师。刚才三位嘉宾的讨论多聚焦在 Locomotion 方面,接下来我们探讨一下操作方面 RL 和 Control 的相关内容。请罗剑岚博士介绍一下这七八年来在这条路径上的情况。
罗剑岚:大家刚才都在聊 Control,我本身也是控制背景出身,虽说现在不写控制方面的论文了,但也接受过完整的相关训练。我觉得控制是非常有效的,它的有效性已经体现在我们生活的方方面面了。汽车需要运用控制,我们靠着控制技术把人送上了月球。就好像如今我们做科研也不会再去专门引用牛顿三大定律了,因为它已然是既定存在且确实有效的。
我们具体把控制放到机器人这个范畴里来看,其实很多方面是存在不少问题的。因为就像冠亚所说,机器人是一个很大的系统,你可以说汽车是一种机器人,飞机也是机器人,腿足机器人同样是机器人,机械臂做操控也是一种机器人技术。这涉及到的很多问题都不一样,无论是无模型(Model-free),还是基于模型(Model-based),都需要具体问题具体分析。
总体来讲,大家可能主要在做三件事,第一个是导航(Navigation),第二个是移动(Locomotion), 第三就是操作(Manipulation)。我们探讨的这些方法论,要是套用到这三个不同的问题、不同的情境当中,那实际上是在说不同的事。
比如刚才冠亚提到的端到端,在这三个问题里,它的表述其实是不一样的。比如说针对导航做端到端,我不知道该怎么做,感觉要是把整个地球都绘制一遍地图来做,那这肯定不行的。应该是通过视觉基础模型获取语义信息,接着进行地图构建、同时运用即时定位与地图构建(SLAM)等技术。
而对于 Locomotion,这是个很有意思的问题,大家刚才一直在说仿真器之类的工作,从本质上讲,这其实意味着要对物理规律进行逆向推导。 "在对物理规律进行采样时,其实就是在做基于模型的控制",对于这个观点,我其实挺认同的。 仿真器提供了一个更好的计算工具,但它并不能直接给出一个策略(Policy),得使用优化器(Optimizer)才会有相应的策略。
然后再来说说 Manipulation 方面,这其实是另一个问题了。在机器人学里存在一个著名的悖论,叫莫拉维克悖论(Moravec's Paradox)。它所阐述的内容是这样的:回顾50年的人工智能发展历史,我们会发现,对人类而言简单的事,让机器去做却很难;而那些人类做起来难度较大的事,机器人操作起来反倒简单。比如,我们能够教会机器下围棋,像 IBM 的深蓝早在 20 年前就可以下棋了,后来 AlphaGo 打败了李世石。然而,像拿起水杯这类在人类眼中极为简单的动作,对于机器来说却异常困难。针对这一现象,有着诸多解释和争论。
之所以会出现这种情况,是因为人类历经了数十亿年的漫长进化,而数字化以及真正拥有智能,其实是相对较近几千年才发生的事。所以,让机器掌握相应的动作(Movement),要比让它获得推理能力(Reasoning)以及内在的推理智能难得多。不管怎么说,这实际上就是操作(Manipulation)需要解决的核心问题。我们怎样才能让机器人像人类一样去操控,去与物理世界进行交互,并且能可靠地完成这些事。
在这里,无论是端到端的方法,还是其他方法,与之前提到的导航(Navigation)或移动(Locomotion)其实存在一些显著的不同。为什么这么说呢?因为在操作任务中,通常会涉及到一些具体的物品和任务情境。比如,当你有一个机器人,它的前方往往会有一个相对固定的工作区域。无论是移动机器人,还是其他类型的机器人,通常需要先通过局部运动等方式导航(Navigate)到指定的位置。之后,在这个固定空间里,不论是工厂、家庭,还是其他应用场景,机器人面前的物体尺寸和任务范围一般是相对确定的。
在这种情况下,使用端到端的方法是有一定成功概率的,因为机器人的工作范围是有限的。在一个固定的工作区域中,不管是在工厂、家庭,还是其他场景,机器人面前的物体尺寸和任务范围通常是相对确定的。这种环境特点使得端到端方法能够在特定任务上表现出一定的效果。然而,这种成功依赖于对特定环境的数据训练和验证,确保模型在有限范围内具备可靠性和鲁棒性。
我不太容易陷入关于到底是端到端还是非端到端的争论中。我可能更关注这个问题究竟要如何才能被解决。至于是不是端到端,我们可以想想这样一件事,Jeff Hinton 在他 2018 年的图灵奖演讲上,说了这么一句话。他说最开始的语音系统,如果你想用一个神经网络去替代系统中的一部分,那这个神经网络会慢慢地把其他部分侵蚀掉,然后开始在整个系统里循环运转、不断扩张,就如同杆菌那样,会把系统的其他部分也全都"吃"掉,最终整个系统就完全变成由神经网络主导的样子了。
但是即便如此,我的重点在于,对于 Manipulation 而言,实际上是可以学到这样一个策略的。端到端的优势在于没有中间的偏差,并且可以直接针对目标进行优化。而且,Manipulation 为我们提供了这样的环境和设置来做这件事,实际上可以使所有情况都适配到。
现在我们再回到这个问题:我们为什么要使用真实世界的数据呢?我们先抛开那些非常具体的技术问题,先来思考一些基本的问题。今天研讨会的主题是如何将机器人的可靠性逼近到 99.9% 或者 100%。我们可以思考的一个问题是:机器人为什么达不到 100% 呢?
既然达不到 100%,这就意味着我们的模型、或者其他什么东西也好,和实际环境是存在一定差距的。只有缩小这个差距,才有可能达到 100%。那么,在一个存在未知信息的环境中,要如何缩小这个差距?除了和这个环境进行交互,把未知信息获取回来,然后以某种方式进行优化之外,没有别的办法。这是最通用、最具扩展性的方法。
你可以说我们能够设计一些东西来满足特定需求,然后构建一些模型,让它们去适配一两个特定的任务。就好比如今我们有这类专用模型,它就专门负责做一件事,速度特别快,而且成功率能达到 100%。
但要是有 1000 个任务、1 万个任务等等情况的话,那不可能每个任务都按这样的方式去做。尤其是我们现在想要的是通用型、带机械臂的机器人去执行任务的话,虽然各个任务具体细节或许不一样,但总体的基本逻辑都是一样,你得先有一个初始的设想、猜测,然后再与跟环境进行交互,最终把那些缺失的部分补上。
通过某种方式来构建这样的机制,比如说 RL,确切来讲就是强化学习的定义所描述的那样,具体如何操作,我们有很多种做法,有人说要用基于模型的强化学习(Model-based RL),有人说用无模型的强化学习(Model-free RL)。其实我可能不会特别倾向于其中某一种,它们各有各的长处。
总结一下,先说说为什么要采用 RL。在现实世界里,要实现高性能的操作并达到高可靠性,对于每一个环境来说,最通用、最具扩展性的办法必然是强化学习。而且它并非是一种被动的数据学习,不是简单地去收集一些离线数据就可以了。如果想要达到100%的可靠性,那就一定要与环境进行交互,而要实现与环境交互,就必须得运用强化学习,这是比较基本的逻辑。
在 Manipulation 领域选择强化学习而非传统控制,有着深刻的原因。今天我们讨论的一个重要主题是 Manipulation 和 Locomotion 的对比,这两者在本质上是完全不同的问题。
对于 Locomotion,主要的挑战在于机器人本体的不确定性。这种不确定性相对有限,例如机器人可能踩到石子,或者路面出现打滑等情况。从机器人本体的角度来看,这些不确定性的影响是可以量化的。在控制领域,我们有一整套数学工具来应对这些问题,其中之一就是鲁棒控制(Robust control)。鲁棒控制的核心思想是对不确定性进行定量建模,进而确定最坏情况的界限(Worst-case bound)。只要实际的不确定性在这个界限范围内,设计出的控制策略就是有效的。
然而,Manipulation 的情况则完全不同。Manipulation 的主要挑战来自外部世界的不确定性,而不是机器人本体的不确定性。机器人本体是一个经过精心设计的确定性系统,但外部世界的复杂性是无限的(Unbounded complexity)。这些不确定性可能来自视觉、物理交互、触觉感知等多个方面,而对这些因素进行全面、精确的建模几乎是不可能的。尽管我们可以对其中的某些部分进行建模,取得一些成果,但始终无法完全掌控这些外部复杂性。
这正是 Manipulation 问题需要强化学习(RL)的原因所在。RL 通过与外界的交互,能够更好地适应外部环境中的不确定性。从本质上来说,Manipulation 和 Locomotion 是两类截然不同的问题:Locomotion 可以通过控制理论中现有的工具(如鲁棒控制)较好地解决,而 Manipulation 则需要通过 RL 等数据驱动的方式,去应对外部世界的复杂性和不确定性。
Manipulation 路线之争
王建明:接下来谈谈商用以及机器人本身落地可靠性的问题。我们可以从 Manipulation 方面开始说起。
在 Locomotion 方面,虽说有不同的方法和途径,但大家的共识程度还是比较高。 但在 Manipulation 方向上,由于操作任务的复杂度、面临环境的复杂度以及路线选择方面的情况都更为多样。
目前技术路线不一,我留意到主要有几个,首先是模仿学习加真机的路线,像以扩散策略(Diffusion policy)或者其他以 Aloha 为代表的模仿学习路线,能产生一系列比较好用的策略(Policy);其次是罗博士近期一系列工作所代表的 RL+真机的路线;第三是 RL+仿真来解决操作问题的路线;还有一条是对仿真进行优化,比如添加一些可微的元素进去,例如通过可微分模拟的方式来构建虚拟环境的世界模型。
石冠亚:我一直有个比较大胆的暴论,我觉得彻底解决机器人的操作问题其实和解决 AGI 没有区别。
打个比方,就拿"开"这个动作来说,像开瓶子、开杯子、开可乐、开门,虽然都用"开"这一表述,但实际的动作完全不一样。我觉得要是有一个策略(Policy)能解决"打开任何东西"这个问题,那它和 AGI 就没什么区别了。
而且,从衡量指标来看,我个人很容易分不清到底是因为任务选得好,所以效果不错,还是因为方法本身确实有了一些实质性的突破。
另外,我特别赞同刚才说的那几个分类。不谈利弊,我可以跟大家讲讲我对它们的看法。
我觉得第一类属于"大力出奇迹"的做法。就是先收集大量的演示数据(Demonstration),然后采用行为克隆的方式。其实现在做离线强化学习的人挺少的,大家普遍都是直接进行行为克隆。刚才提到的扩散策略、ALOHA,还有近期在物理智能层面的 Pi 0,都是遵循这一个逻辑。
第二类 Sim2Real,采用这种方式的人相对少一些,但我觉得还是挺有意思的。其中最有名的应该就是 2019 年 OpenAI 做的用 Sim2Real 方式转魔方的项目。
第三类,有很多微调相关的做法,就是先进行预训练,然后再做微调之类的操作。
另外第四类,你之前没提到,我可以补充一下,就是用传统控制来做验证的情况其实也是存在的。不过它最大的问题就是不太能泛化。比如说,你要是设计了一个转笔的策略(policy),可能就只能转某一种特定的笔,要是笔的质量变为原来的2倍、长度变为原来的2倍,可能就没办法转了。
第五类是基于模型的方法,感觉这类比较小众。就是先学习一个模型,然后再去做控制。就像剑岚说的,它的难点在于你不仅要预测状态、帮助预测目标数据,而且做建模本身就很困难。这类工作虽然小众,但确实存在。我知道像加州理工学院(Caltech)、麻省理工学院(MIT)有人在做,他们研究诸如粒子动力学(Particle Dynamics)之类的内容,然后基于此开展工作。
罗剑岚:我也来谈谈自己的看法吧。如果我们想要实现 AGI,要对人类智能进行逆向工程,那所需的计算能力,单是用来处理人类的各种动作行为,几乎就是无穷无尽的。
就 Control 方法用于 Manipulation 来说,它存在不少问题。在机器人学刚开始形成一门学科、逐渐兴起的时候,那时并没有视觉相关的技术,就如同处在"盲人摸象"的状况里。从理论构建角度看,控制的核心是 HJB 方程,该方程要求输入的数据起码得是可微的,或者说要相对平滑,理想状态下要比上一时刻更平滑才行。
然而,要是遇到高维度并且不平滑的输入感知数据时,与之相关的那些理论基础就会出现状况,HJB 就会失去作用,如此一来,控制的基础也就被动摇了。一旦出现这种情况,不管在何种场景下,控制方法基本上就没办法发挥作用、失效了。
而机器人操作(Manipulation)必然是涉及感知这一要素的。如果你要处理感知相关的问题,就目前来看,最好的办法是通过学习(Learning)的方式。既然操作(Manipulation)是需要感知参与的,那么操作就必然要借助学习了。
不过,这并不是说控制(Control)就完全没有作用了。就拿现在机器人应用中一个比较大的话题来说吧,比如在码头场景下,有体型巨大的机器人要完成搬运货物的任务,可能是四五个机器人一起协作,把货物从里面取出来、然后再放上去。在这种情况下,我们应该运用运动规划(Motion Planning)的方法。并且,我们不但要采用目前最快、最好的在线运动规划模型,还要利用相关验证机制,把这些运动规划都逐一验证一遍,确保其准确性达到100%才行。要是不这样做的话,就很容易出现机器人之间相互碰撞,或者机器人误伤人之类的严重情况。
再说回操作。我们说的是那种有机械臂的机器人,它前方有一个工作区域,区域里有一些物体需要进行操作。看上去策略学习在这种情况下并没有那种特别复杂、特别难处理的动力学问题,但关键在于,如果我们能够解决其中哪怕仅仅 5% 或者 10% 的问题,那对于我们实现机器人走进千家万户的梦想来说,都会是一个很大的进步,机器人也会变得非常有用了。
第二点,来谈谈仿真的问题。我觉得当前存在一个比较突出的点,就是如果我们采用基于学习的操作方法,涉及到仿真与实际应用这两方面对比的时候,会出现这样一种情况:由于机器人目前还没有被大规模部署,所以就没办法获取到足够多的实际数据,进而也就难以开发出更好的模型。
当大家围绕"操作"这个核心进行讨论时,有人会说,操作能够生成大量的数据。但要是采用仿真的话,其难点就在于要把仿真做得准确、完善。
我并不是仿真方面的专家,所以只能从一些比较基本的原理角度出发。这就好比,要去做仿真就相当于要去模拟整个宇宙。可要是我们有真实的数据的话,我们要做的其实就是构造一个机器人的大脑。而宇宙是包含了大脑的,建一个宇宙比建一个大脑要难得多,所以我们应该先去建大脑。
以特斯拉为例。特斯拉一开始在车辆投入使用前,可能还面临数据不足之类的情况,可一旦它的车跑起来之后,情况就大不一样了。我昨天还看了些相关数据,特斯拉现在一年生产出来的真实行驶数据能达到 500 亿里程,这时它面临的问题根本不是有没有数据了,而是这些数据多得完全存不下,他们现在都没有足够的硬盘去存储这些来自各个摄像头等渠道的数据。
我们现在思考相关问题,总是想着仿真器能够生成海量的数据,可实际上,真实世界里像特斯拉这样的公司产生的数据量都已经大到难以处理了,关键问题在于:我们要拿这些数据怎么办。我们应该是思考怎么去利用好这些数据,而不是仅仅着眼于仿真器能生成多少数据。
我确实觉得仿真是非常有用的。如果今天要开一家自动驾驶公司,要是有人跟我说不打算构建仿真器,那我肯定得问问这是为什么,因为没有仿真器的话,软件集成之类的工作根本没办法开展,整个业务流程也会难以运转起来。仿真器对于像抓取放置(Pick and Place)这类相对简单些的、涉及运动学(Kinematic)的操作问题还是挺有帮助的。
不过,操作(Manipulation)问题的核心在于,一方面,我们得先处理好视觉输入;另一方面,我们还要处理非常复杂的物理相关情况,像物体之间的接触、流体的影响以及物体的变形等等复杂因素。与其费很大力气去构造一个像模拟整个宇宙那样复杂又庞大的仿真,还不如利用真实的数据,用真实数据就不存在任何的 GAP,然后再去深入思考怎样基于这些真实数据来制定出更好的策略,这就是我比较核心的一个观点了。
石冠亚:我非常认同剑岚的这个观点。哪怕是人也是如此。我们平时叠衣服、叠被子,我们之所以能做到这些,绝对不是因为我们会去求解纳维-斯托克斯方程。我们端起一杯水的时候,我们也不清楚这杯水具体的动力学原理。人在进行这些操作的时候,往往是凭借着直觉来更好地利用经验和感觉的。
说到仿真器,很多时候它其实是有点"用力过猛"了,做了过度的模拟(Overkill)。我们没必要去模拟所有的东西,只需要模拟那种凭直觉就能把握的、关键的部分就可以了,这其实也和 Locomotion 相关联。
那为什么局部运动在现有的框架里是可行的呢?这是因为目前它基本上只处理到了一类仿真相关的问题,就是刚体动力学方面的问题,它其实并没有过多涉及到像流体、颗粒材料等等更复杂的情况。
罗剑岚:谈到直觉物理学,其实在操控(Manipulation)任务中是个很有意思的话题。换个角度来看,操控通常存在于一个较低维度的流形(Manifold)中,也就是说,我们并不需要真正去解那些复杂的物理方程。例如,许多动态操作场景,比如鞭子的挥动、筋膜的运动等,实际上几乎无法用传统方法去求解,因为它们涉及非常复杂的偏微分方程(PDE),而这些问题本身的求解难度极高。
如果尝试在偏微分方程的外环上进行优化,再在线上进行实时计算,这种方法在人类操作中显然是不现实的。我可以肯定,人类的大脑并不是通过求解偏微分方程来完成这些任务的。相反,人类依赖的是一种直觉物理(Intuitive physics),这种能力是通过与环境的长期交互逐步形成的。比如,当你看到某个物体的位置,伸手去拿,或者在某处翻找,这些动作看似简单,却反映了人类对物理世界的直觉理解。
事实上,这种能力的形成远早于现代科学的发展。几万年前,人类已经可以钻木取火、拉弓射箭,而现代科学和数学体系的建立不过近 300 年的事情。当时,我们既没有偏微分方程,也没有用抽象的数学工具去理解世界。由此可见,人类大脑在操控和操作中一定不是通过解偏微分方程来实现的,而是通过直觉与环境交互形成了一种与物理世界高效对接的能力。
我们再来谈谈模仿学习和强化学习,我觉得这两者并非是完全相互排斥的。模仿学习能够给我们一个很好的起始点,但如果要达到 100% 的成功率,那就必须得用强化学习了,也就是要和环境进行交互,把最后的那部分性能提升上去。
而且我们从现在的相关工作中也能看到,强化学习其实原本是需要大量数据的。不过最新的成果显示,它其实只需要和真实场景交互 1 到 2 个小时就行了,并且我相信在未来,连这 1 到 2 个小时都不需要,因为很多时候它是在弄清楚一些非常基础的操作能力,一旦我们有了预训练,这个时间可能会缩短到 20 分钟。
最后我再补充一点。我们为什么要把某个指标逼近到 99.9% 呢?
如今部署在全球的机器人大概有 500 万台,其中 95% 都是位置控制型的,它们就跟"瞎子"一样,只是简单地重复编码好的程序。它们就是固定地从 A 点移动到 B 点再到 C 点,从1961年通用汽车发明了第一条生产线起,一直到现在,我们所做的不过是在原有基础上进行了一些优化,从根本上来说,其实并没有太大的改变。
要想真正发挥作用,成功率实际上得是百分之百才行,99% 都太低了。每一次出现故障、失败都是有成本的。要是在生产线上,成本体现就是整个生产线得停下来,直接反映就是你的资金收益在减少,得有人去弥补这个损失成本。
有人可能会讲,你说的是工业机器人需要百分百的成功率,可家庭机器人有个百分之七八十的成功率就够了 。其实我也思考过这个问题,我可以举个很形象的例子。就在昨天,我去伯克利的体育馆打球,那儿有个自动售卖机器人卖水,用的时候就是把信用卡贴上去,它就会把水拿出来递给你。我过去这一个月里经常去那儿,可昨天我把卡贴上去后,水本应该从出口出来的,结果却掉下去了,而且我还没办法把水取出来,这就产生了成本,明码标价就是那瓶水的价格,2.75 美元。所以说,这不是没成本,任何情况都是有成本的。
大家再想象一下,要是星巴克的机器人每 5 个小时就把咖啡洒地上一次,又或者家里的机器人每周都把厨房的杯子、盘子之类的东西往地上摔一次,这些都是损失,毕竟这都是在和物理世界做交互。我倒不是说我们就别去做家用机器人了、只搞工业机器人。我觉得当下是处于一个比较关键的阶段,在急切需要半约束、受约束的环境里,这样的环境能让我们去研发解决方案,探索新的科学成果。等我们把相关问题弄明白了,或许就能把成果拓展到家用机器人等领域了。而且家用机器人还涉及数据收集以及隐私方面的问题,毕竟谁也不想家里的机器人在自己睡觉或者做别的事情的时候盯着自己,或是把数据传回去用于训练。
所以我觉得,我们现在所处的这个阶段真的是首次开始系统、全面地去思考一种比较通用的解决方案,未来咱们不用太担心数据方面的问题,数据会像飞轮转起来一样不断积累、运转起来。那一旦到了那个阶段,我们该怎么去思考这 99.9% 成功率的问题呢?那肯定得是强化学习和模仿学习相结合才行,这两者并不是完全相互排斥的关系,关键是一定要和环境进行交互,它是动态变化的,而不是静态的。
机器人可靠性难以衡量
王建明:好的,谢谢罗博士。卢老师,您一直研究强化学习,对于人形机器人的 RL,还有您刚才提及的引入物理交互和视觉交互的内容,您可以详细讲讲这套方法吗?或者您认为强化学习对人形机器人控制的可靠性方面,未来会以怎样的速度迭代?
卢宗青:我先聊聊刚才提到的 Manipulation 方面的事。今年我们在操控方面做了不少工作,先是在模拟器里用强化学习进行训练。我发现只要把问题定义清晰了,强化学习是比较容易解决问题的,当然这里指的是给手部添加触觉信息的情况。
不过在模拟器里训练出的强化学习策略,解决不了实际问题。因为我们发现训练完后,模拟器里大多是基于点云的,但是很难泛化。真机采集的点云和模拟器里看到的点云完全不一样,所以在我看来,Sim2Real 的 gap 比较难解决。
但是这项工作有个启示,给我们传递了一个比较重要的信息:机器人要是具备触觉信息,完成 Manipulation 任务就会更容易些。我觉得这也是个比较直观的见解,毕竟盲人也能完成各种各样的操控任务。
不过我认为,对于 Manipulation 来说,就像刚才冠亚讲的,这本身就是个大难题。其实对于某个特定的问题,不管是模拟器、Sim2Real,还是真机+RL,都能比较好地解决这个特定问题。最关键的是泛化问题,就是我要怎么得到一个策略,让它可以完成各种各样的操控任务呢?在我看来,这是非常难的。而且对于这个问题,目前来看,很难有数据来驱动这样一个模型的学习,这是比较关键的点。
所以对于你刚才问到的人形机器人相关内容,人形机器人有两条胳膊、两只手,我们解决相关问题采取两步走的方式,因为目前我们没有从机器人端采集下来的数据,或者说数据量没那么多。我们前期会利用人的数据去生成人的姿态,输入是视觉信息,输出就是姿态。我们把这一步称作"预训练",也就是用互联网上大量但质量不算高的数据去训练模型,使其输出手部的姿态。然后再依据一些真机的数据,比如遥操采集的数据,去做后训练(Post training),以此来实现泛化性。
我觉得这是在刚才提到的四条技术路线之外,另外一条可行且值得尝试的技术路线。这条路线主要聚焦在泛化性上,而不只是着眼于如何完成某个 Manipulation 任务的思路。
王建明:您如何看待人形机器人达到 99% 以上可靠性这一问题?还有,它未来的发展路径和周期是怎样的?
卢宗青:我个人觉得,要是依靠模仿学习、强化学习这些方法,人形机器人不太可能达到 99% 以上的可靠性。就好比人去抓东西,可能抓一万次也会有一次失误。毕竟它不像工业机器人处于固定场景中,我希望看到的具身 AI 的应用,肯定是在开放场景里的应用。就像剑岚刚才说的,不同场景下的产品有不一样的需求,在有些情况下,可能百分之七八十的成功率就够了。
另外,对于我们这套技术方案而言,RL 主要是为了执行上层模块给出的指令,不管是姿态(Pose)也好,普通指令也好,本质上是用于控制电机之类的控制量。所以在我看来,它的完成度并非特别关键,反而更上层的高层次策略或者像姿态生成模型这类做法,怎样达到较高可靠性才更重要。
下层的 RL 策略,即便去训练,也就是那样一个结果,在最佳情况下,能找到一个最优策略(Optimal policy),可它的上限是由给定的问题本身决定的。至于怎么去给出这个问题,可能是我们需要进一步思考的地方。
王建明: 关于可靠性,也想听听朱老师的想法。您如何看待目前四足机器人的可靠性?在为客户部署机器人时,传统控制和强化学习哪个用得多?您之前也提到人形机器人 10 年前走出实验室很难,我们现在期望人形机器人能稳定完成一些任务。
朱秋国:关于可靠性这个问题,从学术界角度看,很难将一种方法在实验中的可靠性(比如达到 99% 或者 90%)直接套用到产业产品中。我想其他老师也会认同这一点,因为实验数据和实际应用中的可靠性不太一样。
就产品可靠性而言,我认为可以分为几个阶段,其中包括我们内部也在讨论的机器人本身硬件的可靠性问题,我们经常会提到一个"无故障运行时间"的概念。
"无故障运行时间"是评判机器人是否稳定可靠的关键指标。比如在电力巡检场景中,客户要求机器人在三个月内不能出一次问题。
那如何评判机器人的稳定可靠性呢?正如几位老师所讲,主要涉及几个方面。一是硬件本身的问题,对于机器人而言,连接的部件、关节越多越复杂,出问题的概率就越大。所以要让复杂的人形或四足机器狗在行业应用中长久保持稳定,就得提高硬件本身的可靠性。而在提高可靠性方面,首要解决的就是系统本身的可靠性问题,像机械结构、电控系统以及底层软件系统能否长期稳定可靠,这是个很大的挑战。
到了第二步,我们会更关注软件算法层面的问题,比如基于传统方法和基于模型的方法。从理论上讲,只要代码没写错,基本不会出什么问题。但要是结合其他算法,比如在机器人完成自主导航时,要让它实现精准定位,情况就不一样了。
这里面就存在挑战,因为算法本身还要解决环境动态变化,像随季节改变等环境变化时的适应性问题。所以,第二步可能要着重解决软件算法层面对于可靠性的评估问题。由此可见,产业界做可靠性和之前讲的情况不太一样,这是我们目前遇到的主要问题。
另外,关于四足机器人用 RL 还是 Control 的问题,目前更多还是用 Control 方法来进行实际运行操作。不过,现在我们已经开始逐渐尝试,尤其是面对 Locomotion 能力提升的情况,我们在想办法把 RL 方法结合进来,不管是传统的 SLAM 方法,还是新型的 Position+Navigation 这类方法,都在做相应部署。到今年年底,我们会试着在相对固定的环境中,采用 RL 方法去适应不同地形等应用场景。
但我们面临的一个关键挑战是,在这种场景下,如果机器人出现翻倒或其他问题,那要如何确保机器人不去破坏原场景,不碰坏周边的瓶瓶罐罐?我们考虑或许得引入 RL 或者一些规则进去,这样当机器人出现上述状况时,就能保证它不会产生额外风险,进而确保机器人在场景应用中的安全性。
从应用角度看,四足机器人发展到现在已经没什么本质问题了。就运动能力而言,虽说有时会展示一些极限运动能力,像从几米高的地方跳下来还能保持稳定,但从应用层面来讲,其实并不需要这么酷炫的动作。所以在我看来,当下四足机器人的 Locomotion 能力,已经可以满足很多场景下的运动需求了,这方面是没问题的。
刚才卢老师说得很对,人形机器人的关节复杂度更高,四足机器人就 12 个关节,人形机器人却有几十个关节。在应用过程中,如何保证其本身的稳定性是个很大的挑战。所以人形机器人确实还需要更长时间去发展。我跟很多人聊这个问题时,大家常常迫切希望看到人形机器人能在现实生活中应用起来,但我觉得这得循序渐进,得先看人形机器人适合在哪些场景中应用。
比如现在把人形机器人提供给高校老师当作课题科研平台,这是没问题的。让它站在咖啡机前给大家倒杯咖啡,或许也还行。但要是让它走进家庭、走向工业真正投入应用,我觉得还有很长的路要走,这会是个不断持续迭代的过程。不管是硬件层面,还是刚才提到的算法层面,特别是 Manipulation 层面,都得用更长远的眼光去看待人形机器人的应用问题。
王建明:好的,谢谢朱老师。石老师如何看待当下人形机器人在控制方面迭代的速度呢?我看你们有不少相关工作是关于 H2O、OmniH2O 方面,通过这些工作如何看待目前四足和人形机器人控制的可靠性问题?
石冠亚:我们做 Humanoid sim2real 相关工作大概有一年半了,MPC、RL 方面的工作也都做了,所以对人形机器人的可靠性挺有感触的。
我很认同朱老师刚才的观点,尤其是他对于当下哪些任务能实现、哪些任务可能还得等很多年的判断。我再补充几点:第一,Safe 和 RL 一样,是个很宽泛的概念,不能一概而论,Safe 有多个维度。最底层的是硬件的可靠性、稳定性,这非常重要。比如 Chris Atkeson 教授,他是电影《超能陆战队》里大白机器人原型的创作者,他认为除非做成大白那种机器人,否则 Safe 是不可能实现的,意思就是要实现安全,得让硬件本身就安全,无论怎么折腾都不会伤人,这和算法没关系,更多是结构、设计上怎么做到柔顺性(Compliance)之类的。
第二,很多人也在讨论,Safe 本身是一方面,另一方面是 Recover,也就是兜底。我觉得现在对很多机器人来说,Recover 可能比 Safe 本身还难。像波士顿动力与现代的合作、Agility Robotics 的产品 Digit 与亚马逊仓储的合作,还有 Figure 与宝马的合作,我觉得对它们而言,机器人摔倒这事的影响,远不如摔倒后爬不起来的影响大,它们目前的痛点就在没有兜底,机器人摔倒后不容易爬起来。而四足机器人现在有相对成熟的方案,本身就很稳定,即便有点趔趄甚至摔倒了,也能很快爬起来,人形机器人之前在兜底这块就比较困难,这都是不同维度的情况。
另外,谈 Safe 就跟谈毒性不能抛开剂量一样,抛开泛化性、成本谈 Safe 也不合理,到底要达到百分之多少的安全程度呢?一方面得看任务是不是对安全性要求极高,比如 Space X 火箭回收的安全要求肯定和其他机器人不一样。另一方面,泛化性也很重要,我很认同朱老师的判断,像一些简单任务,不需要很强的泛化性,比如在户外走走,只做 Locomotion,或者重复性任务,比如不停地给客人端咖啡,以现在的技术是比较有望打造出可靠系统的。
中间那层我称之为面向企业(ToB)应用,区别于面向消费者(ToC),机器人在企业应用中,像在工厂造车之类的场景,需要一定的泛化性,但又不需要特别强的泛化性。比如宝马与 Figure 合作中,机器人只需不断安装电池,安装电池虽有五个步骤,可能存在一些不确定性,但这些不确定性是可以控制住的。 然后车型是有限的,比如装宝马的七八个车型,我觉得在短期未来,从安全性角度这是可以去追求的方向。
但要是问什么时候能把人形机器人放进千家万户,让它完成各种不同任务,像扫地、看孩子、做饭,还要求达到 99.999% 的安全程度,我觉得目前技术还达不到,我们还有两三个问题没解决,哪怕是人可能也较难做到这点。
要是问我期望的技术路线,我不太相信 One Shot Safe,就是部署了就百分百安全。我觉得在现实世界中得有纠错机制,刚部署时可能还是会出些问题,这里我指的是在开放环境里机器人怎么实现安全,目前我们还没找到解决方案。我畅想的解决方案是,一开始可能会有不安全的时候,或许可以加入人工干预环节(Human in the loop),比如让人帮忙做些标注等,然后它能渐近性地(asymptolically)越来越好,我觉得渐近性安全(asymptotically safe)是目前我们能期望的最好状态了。
最后,Safe 还有另外一层含义,很多做安全性研究的人,是有比较特定的、可以验证的,类似创建规则那样的安全概念,这种 Safe 我们现在是有工具去实现的,比如规定机器人不能撞到物体,这种情况下,像可达性(reachability)等很多控制理论的工具就能拿来用了。
关于人形机器人的 Safe 问题,很多时候没办法给出一个明确的 Safe 定义。比如我们之前聊的很多 Manipulation 的例子,像开门,什么叫不安全的开门呢?可以列出一万种不同的故障情况,所以我觉得这很难定义。
总结来说,首先硬件的安全很重要;其次,兜底恢复能力(Feel safe)很重要,有时候在很多场景里它比安全本身还关键;第三,谈安全一定要结合场景对泛化性的需求程度。最后,我们课题组做的很多工作,包括很多控制器(Controller)相关工作,其实是针对比较特定的、可验证的、像创建规则里涉及的机器人碰撞这类安全问题,而很多操控方面的安全是没办法这么去定义的。
Make RL Great Again
王建明:对于刚才探讨的那些话题,各位老师看看还有没有要补充的呢?
石冠亚:我能不能问其他老师几个问题?机会难得。其实我有个思索已久的问题,我感觉现在 RL 算法本身的更新近乎停滞了。我想讨论一下 RL 算法本身还有没有创新空间?我一直觉得这些 RL 算法并不是专门为机器人设计的,它们太通用了。为什么 PPO 既可以用于语言模型的人类反馈强化学习(RHF),又能用于机器人学习呢?这本身不就有点奇怪吗?包括对于学生而言,我们还要不要去做一些强化学习算法的基础研究,去找到一种特别适合机器人领域的 RL 算法呢?
卢宗青:我先来回答一下。就像冠亚刚才说的,目前在 RL 算法层面的研究确实不多,从 PPO 到 SAC 之后,没有特别大的进展。在我看来,RL 本质上是一个 MDP,我们思考的是用什么方法来解决这个数学问题,所以它本身就是比较通用的的数学方法表述(Math method formulation)。
从数学角度讲,它是在实践中比较好的解决算法。比如 PPO 在实践中就是比较好的方法,实际上它是策略梯度(Policy grading)加上价值函数(Radio function)这样一种演员 - 评论家(Atercritic)框架。
对于机器人来说,能不能设计出一个好的强化学习方法呢?我觉得可以从机器人学习的特性角度出发来进行设计。我个人认为是可行的。因为机器人的一些约束条件(Constrain)和我们通常研究算法、做实验时的约束条件是不同的。如果把这些约束条件考虑到算法设计中,肯定会产生一些差异。就像剑岚做的 Real world 的强化学习,和已有的方法肯定不一样,它结合了离线(Offline)和在线(Online)的方法来做机器人学习。
总的来说,从强化学习算法角度,要得到一个特别好的通用算法是比较难的。但对于机器人学习而言,我们能否更好地定制一个针对机器人学习的强化学习算法,我觉得还有很多可以探索的空间。
罗剑岚:我谈谈自己的理解。 2017、2018 年的时候我就觉得别去搞 MuJoCo,因为没有解决实际问题。我们当时的问题就是为什么在 PPO 和 SAC 之后,没有新的算法出来?或许得看看 PPO 和 SAC 是怎么被发明出来的。当时它们是为了解决一些根本性问题,像在 MuJoCo 里小人跑不起来、Humanoid 站不起来这类问题,等这些问题解决了,MuJoCo 基准测试(Benchmark)被攻克了,自然就没新算法出现了。
所以我更多地在想,要是再有进展,一定要从根本上想清楚我们要解决的核心问题是什么。要是真有下一轮强化学习基准测试的突破、面临重大挑战时,得先想好要解决什么样的大问题,别重蹈覆辙。
具体到这个问题上,RL的下一个前沿方向在哪?分开来讲,对于 Locomotion 和 Manipulation,我觉得朱老师总结得很好,Locomotion 应该用 Control,Control 肯定是个解决方案。原因很简单,不管是 Locomotion 还是别的情况,都是有模型的,没模型机器人根本造不出来,既然有模型,那就得用 Model-based control,而且确切知道模型是什么后,要思考如何与 RL 较好地结合起来。具体来说,得考虑一些特定指标(Specific metrics),要是有模拟器,可能就不太需要考虑样本效率了,英伟达想卖显卡,估计也不会太考虑这个。
那比如要考虑性能(Performance)、安全性(Safety)等方面,思考它们怎样更好地有机结合,我觉得这是个挺有意思的待解决问题。 据我所知,现在就算是像 PPO 里"Teacher Student"模式,Sim2Real GAP 还是存在。要是真用控制的话,在处理物理模拟、进行下一步模拟事件等涉及样本物理、控制移动、物理移动等情况时,怎么用好这套机制来做自己想做的事 ?
Manipulation 和 Locomotion 相比,现在零次学习(Zero)的训练时间要一到两个小时,我觉得还能进一步缩短。要是想缩短的话,就得思考怎么构建一些基于视觉的通用能力,这可能就得回头想想怎么构建数据集、怎么构建任务以及怎么运用强化学习了。
再往远一点说,可能五年后会有 100 万台机器人部署在现实世界,不断传回大量数据,而那些数据都是异构的、隐藏的、广泛的,那我们该怎么做预训练呢?因为强化学习的预训练和行为克隆的预训练不一样,这也是为什么 BC+RL 看起来没太大区别,它们的训练目标不一样,一个是最大化数据集的对数似然(Maximize dataset log likeable),另一个是最大化价值函数(Maximize value function),所以实际上是超越数据集去发现新东西。
我们要怎么进行预训练呢?能不能模拟物理情况,利用 Meta 帮忙验证算法基准(Benchmark),搞出更具扩展性(scalable)的强化学习呢?在存在大量异构数据的这种情况下,要如何进行预训练(Pre training),并且实现快速应用(fast application)呢?我说的可是在真正大规模(massive scale)的情形下,这或许会是一个比较关键的重点所在。
我觉得在我个人未来五年的研究计划里肯定得有这一项内容。但为了做这件事,不可能说在开源算法开发的时候,真的把每个算法都放到 1 万台机器人上去测试,那样成本太高,对实际情况也会造成不小的影响。
总结一下,为什么 PPO、SAC 之后没什么新算法出现,就是因为它们把当时要解决的问题处理得很好了,我们现在需要新问题。我确实觉得,强化学习原则上提供了一种算法框架,如果它从根本上来说没问题、是合理可靠的,那不能因为现在有一些困难、存在局限性,就彻底放弃它,我们应该让它逐步变得更好,这样才能朝着更高更好的目标迈进。因为它不光是告诉你怎么复制、怎么预测、怎么从数据里找特征,要是想达到很高的优化程度,比如 99.99%、100%,光有数据不行,还得有优化,这是很关键的,所以未来的解决方案里肯定得有优化这一环节。
雷峰网雷峰网雷峰网