Learning to Learn Programs from Examples: Going Beyond Program Structure

Learning to Learn Programs from Examples: Going Beyond Program Structure
复制标题

学会从例子中学习程序:超越程序结构

DOI:
10.24963/ijcai.2017/227
复制
发表时间:
2017
期刊:
Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子:
--
通讯作者:
Sumit Gulwani
Sumit Gulwani
中科院分区:
--
文献类型:
--
作者:
Kevin Ellis;Sumit Gulwani

文献摘要

被引文献

相似文献

示例编程技术允许最终用户通过提供预期程序行为的示例来构建和运行新程序。但是,提供的少数例子很少能唯一地确定预期的程序。以前选择程序的方法倾向于更短或结构更自然的程序。我们在这里的工作提供了一种机器学习方法,通过依赖于独立于程序结构的特征来学习与以前工作不同的程序,而不是依赖于对程序行为的学习偏差,更普遍地说是对程序执行跟踪的学习偏差。我们的方法利用丰富的未标记数据进行半监督学习,并在程序归纳过程中结合简单的世界知识进行常识推理。这些技术在两个实例编程领域进行了评估,提高了程序学习器的准确性。
Programming-by-example technologies let end users construct and run new programs by providing examples of the intended program behavior. But, the few provided examples seldom uniquely determine the intended program. Previous approaches to picking a program used a bias toward shorter or more naturally structured programs. Our work here gives a machine learning approach for learning to learn programs that departs from previous work by relying upon features that are independent of the program structure, instead relying upon a learned bias over program behaviors, and more generally over program execution traces. Our approach leverages abundant unlabeled data for semi-supervised learning, and incorporates simple kinds of world knowledge for common-sense reasoning during program induction. These techniques are evaluated in two programming-by-example domains, improving the accuracy of program learners.