机器人学习的理由
摘要
本文探讨了由于莫拉维克悖论(Moravec's paradox)给机器人编程带来的挑战,并提出通过机器人学习来实现具身智能作为解决方案。
<p><em>作者:<a href="https://ashwinreddy.github.io/">Ashwin Reddy</a></em></p><p>机器学习的最新进展使得人工智能在围棋、国际象棋和雅达利(Atari)街机游戏等环境中实现了超越人类的性能,甚至能够解决蛋白质折叠等复杂任务。我们可以得出结论:人工智能在这些领域展现了巨大的潜力。</p><p>那机器人技术呢?这段来自2008年的视频展示了一款PR1机器人,它似乎正在自主打扫房屋:</p><div id="youtube2-qBZPSTR96N4" class="youtube-wrap" data-attrs="{"videoId":"qBZPSTR96N4","startTime":null,"endTime":null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/qBZPSTR96N4?rel=0&autoplay=0&showinfo=0&enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>遗憾的是,这里有个陷阱:该机器人实际上是由一名画外的人类远程操控的。这段视频告诉我们,机器人<em>物理上</em>能够执行有用且复杂的任务,但它们自身的智能还不足以独立完成这些任务。如果机器人能够自主决定该做什么,它们在现实世界中将会更有用。</p><p>首先,我们将探讨为何为机器人编程呈现出一套独特的挑战。然后,我们将看看机器学习近期的进步如何有助于缩小现有机器人与理想机器人之间的差距。</p><h1>具身智能的挑战</h1><p>为什么为机器人编写软件比编写其他任何类型的软件都更难?</p><p>原则上,为个人电脑(PC)编写程序与为机器人编写程序没有区别。归根结底,开发人员都会将源代码推送到设备上,以用某种编程语言执行算法。</p><p>但是,这种思维方式忽略了一个微妙但重要的变化,即我们期望部署这些程序的方式。</p><p>以在PC上运行的电子表格程序为例。它接受人类的输入来执行计算。通常,人类输入的数据是合理的,不会出现任何问题。如果人类输入了无意义的数据,程序可以直接拒绝它。在最坏的情况下,程序可能会失败,导致电脑崩溃,这虽然对用户来说是个麻烦,但并非灾难。</p><p>机器人存在于一个完全不同的空间,在这个空间中,我们不能对输入和输出的现实情况如此漠不关心。电子表格向人类请求输入,而机器人必须主动<em>探测</em>局部世界以获取信息。这些信息充满噪声且存在延迟。电子表格的失败仅仅令人烦恼,而机器人的故障可能会磨损其自身的机械部件或毁坏其所处的家庭环境。研究人员可以通过在计算机模拟中与机器人合作来缓解这些实际困难,但根本问题依然存在。</p><p>计算机科学家为编程机器人面临的这一困难起了一个名字:<strong>莫拉维克悖论(Moravec's paradox)</strong>。它指出,编程让计算机解决逻辑和算术问题(这些任务人类觉得繁琐)比编程让它们理解世界(人类做起来毫不费力)要容易得多。由于我们在幼年时期就学习了运动技能(更不用说我们还受益于数百万年的进化),在世界中移动对我们来说似乎并不困难。然而,如何将我们的运动技能分解成算法尚不清楚。</p><p><strong>具身智能(Embodied Intelligence)</strong>这一术语更好地描述了现实世界如何影响决策。机器人在现实世界中具有物理实体,因此其传感器和电机必须紧密集成,而不是作为软件的 peripheral(外设)设备来处理。</p><h1>机器人学习</h1><p>具身智能并不适合传统的编程方法。软件工程师可能会在纸上写下一些逻辑,思考一些设计选择,将想法编码,运行一百次,调试并测试。这种循环对于机器人学家来说从根本上是不可持续的。</p><p><strong>机器人学习</strong>提出了一种不同的理念。在这里,我们将机器人视为新生儿:它有能力做很多事情,但需要一些支持才能有效地学习如何做这些事。</p><p>机器人学习将焦点从试图算法化地分解机器人任务,转变为确定机器人如何从自身经验中学习。这些经验可以来自机器人在现实世界中的尝试、模拟环境中的机器人,甚至可能来自其他机器人。</p><h2>端到端学习</h2><p>一种合理的算法机器人学方法是将系统分解为不同的模块(例如感知模块、导航模块、操作模块等),这些模块相互接口。这种方法允许工程师单独构建和调试各个部分,从而创建可维护性。然而,我们讨论过的现实世界机器人学的挑战意味着模块化系统往往很脆弱。</p><p>机器人学习的一个建议是用深度神经网络替换这些模块。然后,任何给定的机器人任务都简化为两个步骤:</p><ol><li><p>弄清楚如何获取高质量的机器人经验。</p></li><li><p>确定如何最好地利用它来训练网络/模块以完成任务。</p></li></ol><p><strong>端到端学习</strong>将这一理念推向极致。它提出,单个深度神经网络可以消化原始感官输入以产生电机输出,中间无需任何人工编写的代码连接这些部分。在下面的视频中,Sergey Levine 教授描述了他的一篇论文,该论文帮助证明了这一概念的可行性:</p><p><a href="https://www.youtube.com/watch?v=W2fcJVtLspM">https://www.youtube.com/watch?v=W2fcJVtLspM</a></p><p>简而言之,仍然有模块存在,因为网络的第一部分通常旨在处理图像,最后一部分确定电机动作,等等。然而,我们并不关心任何特定模块的有效性。相反,我们只关心整体性能,因此,只要下一个模块能够弥补前一个模块的不足,即使某个模块较弱也是可以的。</p><h2>侧栏:迁移学习</h2><p>端到端学习的一个好处是,针对任务 <em>A</em> 训练的网络可以微调以执行类似但不同的任务 <em>B</em>。</p><p>这种灵活性使研究人员能够将模拟环境中训练的机器人获得的技能迁移到机器人的真实实例中。模拟环境与现实世界之间的差异意味着在一种环境中正确的机器人行为在另一种环境中可能是错误的,因此你不能简单地期望训练好的网络在现实世界中做正确的事。</p><p>一种称为<strong>域随机化(domain randomization)</strong>的简单技术提出,模拟环境随机改变参数,从光照条件到物体位置等,以迫使学习对这些变化具有鲁棒性。</p><h2>端到端学习的替代方案</h2><p>为了让大家了解还存在哪些其他类型的技术,我想强调一些不属于端到端阵营的方法。</p><p>例如,<a href="https://berkeleyautomation.github.io/dex-net/">Dex-Net 项目</a> 试图使用机器学习解决机器人抓取日常物体的问题,但它不是端到端的。相反,模型的主要目标是预测针对给定物体的各种抓握方式的成功率。虽然这个网络接收感官输入,但其输出并不直接连接到电机扭矩,因此它不属于端到端学习家族。</p><p>在麻省理工学院(MIT)的具身智能研讨会上发表的题为“来自像素的反馈控制”的演讲中,Russ Tedrake 教授认为……</p>
查看缓存全文
缓存时间: 2026/05/08 08:40
# 机器人学习的论证
来源:https://mlberkeley.substack.com/p/robot
*作者:Ashwin Reddy (https://ashwinreddy.github.io/)*
机器学习的最新进展使得人工智能在围棋、国际象棋和街机游戏等环境中实现了超越人类的表现,甚至在诸如蛋白质折叠预测等任务中也展现了能力。我们可以得出结论,人工智能在这些领域展现了巨大的潜力。
那机器人学呢?下面这段 2008 年的视频展示了一台 PR1 机器人,它似乎正在独自打扫房子:
不幸的是,这里有个陷阱:画面外的一名人类必须通过遥操作控制这台机器人。这段视频告诉我们,机器人能够*物理上*执行有用且复杂的任务,但它们还不够智能,无法完全自主完成。如果机器人能够自主决定该做什么,它们在现实世界中将会更有用。
首先,我们将探讨为什么为机器人编程会面临一系列独特的挑战。然后,我们将看看机器学习的一些最新进展如何有助于缩小我们拥有的机器人与我们期望的机器人之间的差距。
为什么为机器人编写软件会比编写任何其他类型的软件更困难?
原则上,编写在个人电脑(PC)上运行的程序和在机器人上运行的程序没有区别。归根结底,开发者会将用编程语言编写的源代码推送到设备上以执行算法。
但是,如果这样想,我们就忽略了一个微妙但重要的变化,即我们对部署这些程序的预期方式发生了改变。
以在 PC 上运行的电子表格程序为例。它从人类那里获取输入以执行计算。通常情况下,人类输入的数据是合理的,没有问题。如果人类输入了无意义的数据,程序可以直接拒绝它。在最坏的情况下,程序可能会失败,计算机可能会崩溃,这对用户来说是个麻烦,但并非灾难。
机器人生活在一个完全不同的空间,在这个空间里,我们不能对输入和输出的现实如此漠不关心。电子表格向人类请求输入,而机器人必须主动*探测*本地世界以获取信息。这些信息充满了噪声且存在延迟。电子表格失败只是令人烦恼,而机器人失败可能会磨损其自身的机械部件或破坏其所在的家园。研究人员可以通过在计算机模拟中与机器人合作来缓解这些实际困难,但根本问题依然存在。
计算机科学家给这种在机器人编程中遇到的困难起了个名字:**莫拉维克悖论(Moravec's paradox)**。它指出,编程让计算机解决逻辑和算术问题——这些人类觉得繁琐的任务——比编程让它们理解世界(人类却能轻松做到)更容易。因为我们在年轻时就学习运动技能(更不用说我们还受益于数百万年的进化),所以在世界中移动对我们来说似乎并不困难。然而,尚不清楚如何将我们的运动技能分解为算法。
**具身智能(Embodied intelligence)**一词更好地描述了现实世界如何影响决策。机器人在物理上具身于现实世界中,因此其传感器和执行器必须紧密集成,而不是作为软件的外围设备来处理。
具身智能与传统编程方法并不完全契合。软件工程师可能会在纸上写下一些逻辑,思考一些设计选择,编码实现想法,运行一百次,调试并测试。这种循环对于机器人学家来说从根本上是不可行的。
**机器人学习(Robot learning)**提出了一种不同的理念。在这里,我们将机器人视为新生儿:它有能力做很多事情,但在学习如何有效完成这些事时需要一些支持。
机器人学习将焦点从试图将机器人任务分解为算法转变为确定机器人如何从自身经验中学习。这种经验可以来自机器人在现实世界中尝试事物、来自模拟中的机器人,甚至可能来自其他机器人。
对算法机器人的一种合理方法是将系统分解为不同的模块(例如,感知模块、导航模块、操作模块等),这些模块相互接口。这种方法允许工程师分别构建和调试各个部分,从而创造可维护性。然而,我们讨论过的现实世界机器人的挑战意味着模块化系统往往很脆弱。
机器人学习的一个建议是用深度神经网络取代这些模块。然后,任何给定的机器人任务都可以简化为两个步骤:
1. 找出如何获取高质量的机器人经验。
2. 确定如何最好地利用这些经验来训练网络/模块以完成任务。
**端到端学习(End-to-end learning)**将这一理念推向了极致。它提出,单个深度神经网络可以直接消化原始感官输入以产生电机输出,而无需任何人类编写的代码来连接这些部分。在下面的视频中,Sergey Levine 教授描述了他的一篇帮助证明该概念可行的论文:
https://www.youtube.com/watch?v=W2fcJVtLspM
简而言之,仍然有模块存在,因为网络的第一部分通常旨在处理图像,最后一部分确定电机动作,等等。然而,我们并不关心任何特定模块的有效性。相反,我们只关心整体性能,因此,如果一个模块较弱也没关系,只要下一个模块能弥补不足即可。
端到端学习的一个好处是,为任务*A*训练的网络可以微调以执行类似但不同的任务*B*。
这种灵活性使研究人员能够将机器人在模拟中获得的技能转移到真实世界的机器人实例上。模拟环境与现实世界之间的差异意味着在一个环境中正确的机器人行为在另一个环境中可能是错误的,因此你不能指望训练好的网络在现实世界中做正确的事。
一种称为**域随机化(domain randomization)**的简单技术提出,模拟环境会随机改变从光照条件到物体位置等参数,以迫使学习对这些变化具有鲁棒性。
为了让大家了解存在哪些其他类型的技术,我想重点介绍一些不属于端到端阵营的方法。
例如,Dex-Net 项目 (https://berkeleyautomation.github.io/dex-net/) 试图使用机器学习解决日常物体的机器人抓取问题,但它不是端到端的。相反,模型的主要目标是预测给定物体的各种抓取方式的成功率。虽然该网络接收感官输入,但其输出并不直接连接到电机扭矩,因此它不属于端到端学习家族。
在麻省理工学院具身智能研讨会上发表的题为“从像素进行反馈控制”的演讲中,Russ Tedrake 教授认为,完全端到端的模型并不是解决复杂机器人问题的唯一途径。对他来说,这种方法牺牲了经典机器人的严谨性和更深入的理解,这些理解得益于控制论。在一个项目中,他们使用线性模型和控制论让机器人在切菜板上推动切碎的胡萝卜。
简而言之,想象一个机器人软件的光谱。在一端,我们有由人类硬连线以执行特定任务的机器人。在另一端,我们有在分配给它们的任何任务上自我端到端训练的机器人。机器人学家需要弄清楚光谱中的哪一部分可能最有成果。
假设为了论证起见,机器人学的端到端学习是值得的。这绝不是机器人社区每个人都同意的一个方法,但它为部署机器人的许多有趣方式铺平了道路。
例如,假设我们发现某种神经网络架构在三四个不同的机器人任务上表现非常好。这将很有希望,因为我们可以利用这些信息快速获得新技能。
我们还可以开始思考机器人如何相互学习。例如,工厂里的人形机器人是否有可能利用在办公空间收集的 Spot 机器人的数据来更好地学习组装汽车?
无论端到端学习是否会或不会成为机器人的未来,有一件事是肯定的:机器人软件有其自身的约束和局限性,使其比非具身的软件更复杂。从高层次上讲,机器人学家试图从头开始构建动物表现出的动态行为。出于这个原因,机器人学家在应用人工智能工作时,总是需要稍微不同的思维方式。
- End-to-End Training of Deep Visuomotor Policies (https://arxiv.org/abs/1504.00702)
- The Surprising Effectiveness of Linear Models for Visual Foresight in Object Pile Manipulation (https://groups.csail.mit.edu/robotics-center/public_papers/Suh20.pdf)
#### 关于此帖子的讨论
### 准备好看更多了吗?
相似文章
机器人学习中的世界模型:全面综述
本综述全面回顾了机器人学习中世界模型的文献,涵盖其在策略学习、规划和模拟中的作用。文章突出了预测建模在具身智能体中的关键范式、基准测试及未来发展方向。
趣味性自主机器人学习
介绍趣味性自主机器人学习(Playful Agentic Robot Learning),其中具身编码智能体通过自主探索游戏(self-directed play)学习可复用技能,无需额外训练即可提升下游任务表现。提出的RATs系统在仿真和现实世界迁移中相比基线取得了显著提升。
@rohanpaul_ai: 语言有一个机器人不具备的奇怪优势:文本已经是人类思想的压缩共享界面,而…
讨论了具身AI和机器人技术面临的挑战,包括10万年的数据差距以及缺乏共享基准,并强调了数据循环、评估系统和部署方面的创业机会。
超越预定义学习对象:面向实时自主机器人学习的思维-学习交互模型
本文提出了一种面向自主机器人的思维-学习交互模型,使其能够在开放环境中自适应地发现新特征、扩展输出类别、更新学习模型并重构动作流程。实验结果表明,该模型在识别精度、类别形成和动作效率方面均有显著提升。
实验室机器人的启发式方法及其未来走向
本文讨论了实验室机器人的启发式方法,涵盖了不同类型的机器人(箱式机器人与机械臂),自动化协议的成本效益分析,以及在翻译层、硬件层和智能层的未来方向。本文还借鉴了该领域多位专家的见解。