TerpreT: A Probabilistic Programming Language for Program Induction

08/15/2016
by   Alexander L. Gaunt, et al.
0

We study machine learning formulations of inductive program synthesis; given input-output examples, we try to synthesize source code that maps inputs to corresponding outputs. Our aims are to develop new machine learning approaches based on neural networks and graphical models, and to understand the capabilities of machine learning techniques relative to traditional alternatives, such as those based on constraint solving from the programming languages community. Our key contribution is the proposal of TerpreT, a domain-specific language for expressing program synthesis problems. TerpreT is similar to a probabilistic programming language: a model is composed of a specification of a program representation (declarations of random variables) and an interpreter describing how programs map inputs to outputs (a model connecting unknowns to observations). The inference task is to observe a set of input-output examples and infer the underlying program. TerpreT has two main benefits. First, it enables rapid exploration of a range of domains, program representations, and interpreter models. Second, it separates the model specification from the inference algorithm, allowing like-to-like comparisons between different approaches to inference. From a single TerpreT specification we automatically perform inference using four different back-ends. These are based on gradient descent, linear program (LP) relaxations for graphical models, discrete satisfiability solving, and the Sketch program synthesis system. We illustrate the value of TerpreT by developing several interpreter models and performing an empirical comparison between alternative inference algorithms. Our key empirical finding is that constraint solvers dominate the gradient descent and LP-based formulations. We conclude with suggestions for the machine learning community to make progress on program synthesis.

READ FULL TEXT
research
12/02/2016

Summary - TerpreT: A Probabilistic Programming Language for Program Induction

We study machine learning formulations of inductive program synthesis; t...
research
08/28/2020

Type-driven Neural Programming by Example

In this thesis we look into programming by example (PBE), which is about...
research
12/07/2020

SuperCoder: Program Learning Under Noisy Conditions From Superposition of States

We propose a new method of program learning in a Domain Specific Languag...
research
09/26/2019

Human-Centric Program Synthesis

Program synthesis techniques offer significant new capabilities in searc...
research
10/02/2018

Inference Over Programs That Make Predictions

This abstract extends on the previous work (arXiv:1407.2646, arXiv:1606....
research
11/09/2017

Learning to select examples for program synthesis

Program synthesis is a class of regression problems where one seeks a so...
research
10/11/2017

Neural Program Meta-Induction

Most recently proposed methods for Neural Program Induction work under t...

Please sign up or login with your details

Forgot password? Click here to reset