This paper presents a new synthesis-based approach for solving the Learning from Demonstration (LfD) problem in robotics. Given a set of user demonstrations, the goal of programmatic LfD is to learn a policy in a programming language that can be used to control a robot's behavior. We address this problem through a novel program synthesis algorithm that leverages two key ideas: First, to perform fast and effective generalization from user demonstrations, our synthesis algorithm views these demonstrations as strings over a finite alphabet and abstracts programs in our DSL as regular expressions over the same alphabet. This regex abstraction facilitates synthesis by helping infer useful program sketches and pruning infeasible parts of the search space. Second, to deal with the large number of object types in the environment, our method leverages a Large Language Model (LLM) to guide search. We have implemented our approach in a tool called Prolex and present the results of a comprehensive experimental evaluation on 120 benchmarks involving 40 unique tasks in three different environments. We show that, given a 120 second time limit, Prolex can find a program consistent with the demonstrations in 80% of the cases. Furthermore, for 81% of the tasks for which a solution is returned, Prolex is able to find the ground truth program with just one demonstration. To put these results in perspective, we conduct a comparison against two baselines and show that both perform much worse.
翻译:本文提出了一种新的基于合成的方法,用于解决机器人领域的示教学习问题。给定一组用户演示,程序化示教学习的目标是学习一个编程语言中的策略,该策略可用于控制机器人的行为。我们通过一种新颖的程序合成算法来解决这一问题,该算法利用了以下两个关键思想:首先,为了从用户演示中进行快速且有效的泛化,我们的合成算法将这些演示视为有限字母表上的字符串,并将领域特定语言中的程序抽象为同一字母表上的正则表达式。这种正则表达式抽象有助于推断有用的程序草图,并剪枝搜索空间中不可行的部分,从而促进合成。其次,为了处理环境中大量的对象类型,我们的方法利用大语言模型来引导搜索。我们已将我们的方法实现于一个名为Prolex的工具中,并在三个不同环境中涉及40个独特任务的120个基准测试上,展示了全面的实验评估结果。实验表明,在120秒的时间限制内,Prolex能在80%的案例中找到与演示一致的程序。此外,对于返回解决方案的任务中,有81%的情况下Prolex仅凭一次演示即可找到真实程序。为了将这些结果置于更广阔的背景下,我们与两个基线方法进行了对比,结果表明这两者的表现均远逊于我们的方法。