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.
翻译:本文提出了一种新的基于合成的方法,用于解决机器人学中的从示范中学习(LfD)问题。给定一组用户示范,程序化LfD的目标是学习一种编程语言中的策略,该策略可用于控制机器人的行为。我们通过一种新颖的程序合成算法来解决这个问题,该算法利用了两种关键思想:首先,为了从用户示范中实现快速有效的泛化,我们的合成算法将这些示范视为有限字母表上的字符串,并将领域特定语言中的程序抽象为同一字母表上的正则表达式。这种正则表达式抽象有助于合成,通过帮助推断有用的程序草图并修剪搜索空间中不可行的部分。其次,为了处理环境中大量对象类型,我们的方法利用大型语言模型来引导搜索。我们已在名为Prolex的工具中实现该方法,并在三个不同环境中的40个独特任务上,针对120个基准测试进行了全面实验评估。结果表明,在120秒的时间限制内,Prolex能在80%的情况下找到与示范一致的程序。此外,对于返回解决方案的任务中81%的情况,Prolex仅凭一次示范就能找到真实程序。为将这些结果置于背景下,我们与两个基线方法进行了比较,结果显示两个基线方法的性能都远逊于Prolex。