简介

想象一下试图教机器人做一顿饭。你可以抓住它的手臂,引导它完成一系列动作: 打开冰箱、拿鸡蛋、打蛋、煎蛋。这就是模仿学习 (Imitation Learning, IL) 的本质。它对于短时、特定的技能非常有效。但当你要求同一个机器人准备一顿三道菜的晚餐时,会发生什么?

突然间,机器人不再只是模仿动作;它需要规划。它需要理解“蛋”必须在“煎”之前先“打碎”,而“平底锅”必须在蛋放入之前变“热”。如果机器人只知道模仿动作,在长序列任务中它不可避免地会失败。它可能会试图煎蛋壳,或者把蛋放进冷锅里,因为它不理解任务背后的逻辑

为了解决复杂的长视程 (long-horizon) 任务,人类依赖符号推理——我们以对象、状态和规则来思考。另一方面,机器人通常擅长连续控制——计算电机扭矩和轨迹。弥合这一鸿沟是神经符号人工智能 (Neuro-Symbolic AI) 的领域。

在塔夫茨大学和奥地利理工学院的研究人员发表的一篇题为*“Few-Shot Neuro-Symbolic Imitation Learning for Long-Horizon Planning and Acting”*的精彩新论文中,他们提出了一个弥合这一鸿沟的框架。他们开发了一个系统,只需观察少量原始演示,就能同时学习两件事:

  1. 高层逻辑: 它在没有被告知的情况下,发现了博弈的符号规则 (如 PDDL 规划域) 。
  2. 低层技能: 它学习执行这些规则所需的精确运动动作。

结果是,机器人只需少至五次演示就能解决复杂的谜题、组装螺母和螺栓以及驾驶叉车,其表现超越了需要数百次演示的传统深度学习方法。

核心问题: 行动与规划之间的鸿沟

目前的机器人学习方法通常分为两大阵营,而在长视程任务方面,两者都不完美。

1. 端到端模仿学习: 这些是将相机像素直接映射到电机动作的神经网络。它们非常擅长获取类似直觉的技能 (比如抓取形状怪异的物体) 。然而,它们需要海量的数据。更关键的是,它们难以应对“分布偏移 (distribution shift) ”。在长任务中,小错误会累积。如果机器人在 50 步流程的第 5 步稍微偏离位置,它就会遇到从未见过的状态并导致失败。

2. 任务与运动规划 (TAMP) : 这是经典的机器人学方法。你给机器人一张世界的符号地图 (例如,Object A is on Table) 。你使用像 PDDL (规划域定义语言) 这样的语言定义规则。规划器计算步骤序列,控制器执行这些步骤。这很稳健且可解释。问题在于? 你必须手工编写所有代码。 你必须手动定义什么是“状态”,存在哪些“谓词”,以及每个动作做什么。这既脆弱又费力。

贡献

研究人员认为我们不必二选一。他们的框架自动化了符号层的创建。通过观察人类几次执行任务,系统构建自己对世界的符号表示,并将其链接到学习到的神经策略。

图1: 我们的神经符号框架集成了图构建、符号抽象、规划、动作分解、模仿学习和空间过滤。从少量的技能演示开始 (左) ,我们构建了一个转换图来捕获转换 (边) ,即两个高层状态 (黑盒节点) 之间的技能转换。该图支持通过 ASP 求解器自动提取 PDDL 模型,从而为高层规划提供动力。预言机将复杂任务分解为由学习到的基于扩散的控制器执行的原始动作步骤策略,从而允许泛化到新颖的长视程任务,同时只需极少的训练数据。

如图 1 所示,工作流程从原始演示变为转换图,然后变为抽象的符号逻辑,最后回到具体的电机控制器。

构建大脑: 从图到符号

本文的第一个重大创新是它如何从视觉数据中提取逻辑。机器人没有拿到手册;它必须自己写一本。

步骤 1: 转换图

过程始于人类演示一个任务。系统将每个演示视为“高层状态”之间的转换。

例如,想象一个汉诺塔谜题。

  • 状态 A: 所有圆盘都在 1 号柱上。
  • 动作: 将小圆盘移动到 2 号柱。
  • 状态 B: 小圆盘在 2 号柱上,其他在 1 号柱上。

系统捕捉这些技能开始和结束时的视觉快照。人类为转换提供一个简单的标签 (例如,“移动”) 。关键在于,人类帮助识别何时两个不同的视觉状态实际上是同一个“抽象”状态 (例如,匹配两张盘子配置相同的照片) 。

结果是一个转换图 (Transition Graph) , 其中节点是状态,边是动作。

图 8: 不同环境的任务图。堆叠和叉车装载/卸载托盘图仅包含两个节点和一条连接边,因为它们被视为单技能任务且不需要规划。而厨房环境 (c, d) 这样的复杂任务则创建了错综复杂的依赖网络。

图 8 展示了这些图。虽然像堆叠 (a) 这样的简单任务看起来是线性的,但像厨房环境 (c, d) 这样的复杂任务则创建了错综复杂的依赖网络。

步骤 2: 基于 ASP 的符号抽象

这就是“神经符号”魔力发生的地方。系统拥有一个图,但它还不理解生成该图结构的规则

研究人员使用了一个答案集编程 (Answer Set Programming, ASP) 求解器。把 ASP 想象成一个逻辑谜题求解器。系统向求解器提问: “找到能从数学上解释这个图结构的最简单的符号规则集 (谓词和算子) 。”

求解器输出一个 PDDL 域 。 它可能会发现:

  • 存在一个我们称之为 p1 的谓词 (可能对应于“在…之上”) 。
  • 存在一个算子 Move,它要求 p1(A, B) 在发生之前为假。

系统现在已经“学会”了谜题的物理和逻辑,而从未被显式编程过诸如“重力”或“堆叠”之类的概念。

预言机 (The Oracle) : 学会专注

一旦机器人理解了计划 (符号层) ,它就需要学习动作 (神经层) 。这正是许多模仿学习方法失败的地方: 过多的数据淹没了神经网络。

如果机器人试图捡起一个特定的螺母拧到螺栓上,桌子另一边的咖啡杯的位置就是无关紧要的。如果神经网络关注了咖啡杯,当杯子移动时它可能会失败。

作者引入了一个预言机 (Oracle) ——一种直接源自上一步学到的符号抽象的过滤机制。因为 ASP 求解器识别了哪些物体参与了特定的转换,系统确切地知道哪些物体对每项技能至关重要。

论文定义了一个过滤函数 \(\gamma\):

() \\gamma ( \\tilde { s } , o _ { i } ) = \\tilde { s } ( \\mathcal { E } _ { o _ { i } } ) . ()

该函数获取世界的完整状态 \(\tilde{s}\) 和一个算子 \(o_i\) (如“拿起螺母”) ,并仅返回与该算子相关的对象子集 \(\mathcal{E}\)。

但他们更进了一步。机器人需要泛化。在位置 X 捡起积木应该与在位置 Y 捡起积木是同一种技能。为了实现这一点,预言机应用变换 \(\alpha\) 将绝对坐标转换为相对于机器人末端执行器的坐标 :

() \\phi ( \\tilde { s } _ { t } ) = \\alpha \\circ \\gamma ( \\tilde { s } _ { t } , o _ { i } ) . ()

这个组合函数 \(\phi\) (Phi) 确保策略 \(\pi\) 接收到任务的“规范”视图。它只看到必要的物体,并且是相对于手的位置。

图 2: 这里展示了汉诺塔域中 MOVE 算子的演示示例,其中 1 号块从 2 号块上移开并放置到平台上。智能体将技能演示划分为动作步骤,并使用预言机 \\(\\phi\\) 过滤观测结果以简化学习。首先收集演示,然后使用 \\(\\gamma\\) 进行过滤以保留与算子相关的对象 (1 号块和 3 号平台) ,并使用 \\(\\alpha\\) 将坐标表示为相对于末端执行器的坐标。然后将轨迹分解为一系列更简单的动作步骤。这使得低层控制器的训练更加高效,这些控制器按顺序排列以执行每个符号算子 (算法 1 第 5 行) 。

图 2 完美地展示了这个流程。请注意复杂的场景是如何被过滤到只剩相关的块和抓手的,使得“移动”技能可以应用于工作空间中的任何地方。

学习动作: 扩散策略

随着数据经过过滤和相对化处理,系统开始训练实际的运动策略。研究人员使用了扩散策略 (Diffusion Policies) , 这是一类受图像生成模型 (如 Stable Diffusion) 启发的现代模仿学习算法。

扩散策略的工作原理是向专家的动作添加噪声,并学习“去噪”以恢复正确的运动。它们特别擅长捕捉复杂的多模态分布 (处理执行同一动作的不同方式) 。

() a _ { t } = \\pi _ { e x e c } ( \\phi ( \\tilde { s } _ { t } ) ) . ()

策略 \(\pi_{exec}\) 接收来自预言机的过滤观测并输出动作 \(a_t\)。

训练目标是最小化机器人预测动作与专家演示之间的差异:

() \\pi ^ { * } = \\arg \\operatorname* { m i n } _ { \\pi \\in \\Pi } \\sum _ { \\tilde { \\tau } _ { i } \\in \\mathcal { D } } \\sum _ { t = 0 } ^ { T _ { i } } \\mathcal { L } ( \\pi ( \\tilde { s } _ { t } ) , a _ { t } ) , ()

动作分解

为了进一步简化学习,系统自动将复杂的技能分解为更小的“动作步骤 (Action Steps) ”。“移动”指令不仅仅是一长串模糊的动作;它是一个序列: 伸向 -> 抓取 -> 搬运 -> 放下。

图 7: 使用堆叠和汉诺塔演示将“MOVE”技能分解为动作步骤的示例。从左到右: 伸向-抓取,抓取,伸向-放下,以及放下。

通过聚类动作数据 (图 7) ,系统自动识别这些子阶段。学习四个简单的、短视程的策略比学习一个长的、复杂的策略要容易得多。

付诸测试

研究人员在六个不同的领域验证了他们的框架,范围从桌面操控到移动机器人。

图 3: 用于评估的一些仿真领域示意图。 图 6: Robosuite 中螺母组装环境的示意图。

这些领域包括:

  1. 堆叠 (Stacking) : 搭建积木塔。
  2. 汉诺塔 (Towers of Hanoi) : 需要递归规划的经典谜题。
  3. 螺母组装 (Nut Assembly) : 精密操控 (图 6) 。
  4. 厨房 (Kitchen) : 包括打开炉灶、烹饪和上菜的复杂序列。
  5. 叉车 (Forklift) : 涉及车辆导航和托盘操作的模拟仓库环境。

结果: 效率与鲁棒性

主要指标是长视程任务的成功率。比较对象包括标准的模仿学习 (IL) 和分层模仿学习 (H-IL) 基线。

结果非常显著。

图 4: 我们的神经符号 (N-S) 框架与基线方法的性能比较。我们的方法在短视程任务 (堆叠和叉车托盘装卸) 和长视程任务 (包括汉诺塔、多托盘存储、螺母组装和厨房) 上都取得了很高的成功率——即使只有少至 5 次演示。我们的方法与领域无关,并且在非常不同的场景中均有效。

如图 4 所示:

  • 数据效率: 神经符号 (N-S) 方法 (红条) 在仅有 5 次演示的情况下就达到了很高的成功率 (90%以上) 。
  • 基线失败: 基线方法 (蓝/紫条) 在像汉诺塔这样的复杂任务上通常完全失败 (0% 成功率) ,即使给出了 500 次演示。它们根本无法学习长期依赖关系。
  • 一致性: 无论是机械臂还是驾驶叉车,N-S 方法的表现都很稳定。

泛化的力量

也许最令人印象深刻的结果是系统的泛化能力。因为机器人学习了汉诺塔的符号规则,它不只是死记硬背盘子的位置。

研究人员在简单的 3 盘配置上训练智能体。然后要求它解决 4 盘和 5 盘版本的谜题——这是它从未见过的任务。

图 5: 不同汉诺塔配置下的零样本和少样本泛化结果。

图 5 展示了这些结果。智能体表现出了强大的零样本泛化 (zero-shot generalization) 能力。它可以立即解决更难的谜题,因为它发现的 PDDL 域 (移动盘子的逻辑) 无论有多少个盘子都是成立的。只需添加少量的“专家”修正 (少样本) ,在最难任务上的表现就会突飞猛进。

结论: 机器人学习的未来

本文为神经网络与符号 AI 的联姻提出了令人信服的论据。通过让神经网络处理“混乱”的现实世界运动控制,让符号引擎处理“清晰”的高层逻辑,我们获得了两全其美的效果。

主要的结论有:

  1. 可解释性: 与“黑盒”神经网络不同,我们可以查看生成的 PDDL 代码,确切地看到机器人认为规则是什么。
  2. 数据效率: 分解问题使机器人能够从 5 个示例中学习,而不是 5,000 个。
  3. 泛化能力: 逻辑具有可扩展性。在小谜题上学到的规则同样适用于大谜题。

该框架为机器人铺平了道路,使其能够在几分钟内由人类演示者教会新的复杂工作,而无需编写一行代码。无论是整理仓库还是在厨房帮忙,机器人技术的未来看起来越来越趋向于神经符号化。