Inductive program synthesis, or inferring programs from examples of desired behavior, offers a general paradigm for building interpretable, robust, and generalizable machine learning systems. Effective program synthesis depends on two key ingredients: a strong library of functions from which to build programs, and an efficient search strategy for finding programs that solve a given task. We introduce LAPS (Language for Abstraction and Program Search), a technique for using natural language annotations to guide joint learning of libraries and neurally-guided search models for synthesis. When integrated into a state-of-the-art library learning system (DreamCoder), LAPS produces higher-quality libraries and improves search efficiency and generalization on three domains -- string editing, image composition, and abstract reasoning about scenes -- even when no natural language hints are available at test time.
翻译:引入程序合成,或从理想行为的例子中推断出程序,为建立可解释、健全和可通用的机器学习系统提供了一个总体范例。有效的程序合成取决于两个关键要素:一个强大的功能库,从中建立程序,一个高效的搜索战略,以找到解决特定任务的程序。我们引入了LAPS(摘要和程序搜索语言),一种使用自然语言说明指导图书馆和神经导导导合成合成模型联合学习的技术。如果融入一个最先进的图书馆学习系统(DreamCoder),LAPS将产生高质量的图书馆,提高三个领域的搜索效率和一般化(编辑、图像组成和场景的抽象推理),即使测试时没有自然语言提示。