HackerPapers

arXiv:1608.04428cs.LG

TerpreT: A Probabilistic Programming Language for Program Induction

Alexander L. Gaunt, Marc Brockschmidt, Rishabh Singh, Nate Kushman, Pushmeet Kohli, Jonathan Taylor, Daniel Tarlow

Abstract

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.

arXiv comments
50 pages, 20 figures, 4 tables
Journal reference
DOI
Subjects
cs.LGMachine Learning cs.AIArtificial Intelligence cs.NENeural and Evolutionary Computing

On Hacker News

Linked by 4 identifiable commenters in 4 comments across 4 threads, from Jan 2018 to May 2024. Found in 1 HN submission from Aug 2016 to Aug 2016. Open submission discussions.

Comments linking this paper, per year.

Discussed in comments4 threads

    • Thanks! You may find DeepProbLog by Manhaeve et al. interesting, which brings together logic programming, probabilistic programming and gradient descent/neural networks. Also, more generally, I believe in the field of program synthesis there is some research on deriving programs…

      justinnkView on HNParent context

    • If you're interested in these kinds of things, many years ago we created TerpreT (https://arxiv.org/pdf/1608.04428.pdf and https://github.com/51alg/TerpreT) to look into generic program synthesis problems, using a set of very different techniques (gradient descent, ILP, SMT) on…

      mabrocksView on HNParent context

  1. The Great AI Reckoning 1 comment
    • There is a vast chasm of computational complexity between Chess, Go, and protein folding, to program induction. Unlike problems where the configuration space grows exponentially, the space of valid programs is at least super-exponential and depending on the language family…

      bmc7505View on HNParent context

    • > What sort of things have been achieved with machine-learning over algorithms, though? See also this paper for a comparison of programming by example using gradient descent versus more standard alternatives: https://arxiv.org/abs/1608.04428 The main takeaway is that gradient…

      rapidcheckoutView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.