Leveraging Grammar and Reinforcement Learning for Neural Program Synthesis

By Rudy Bunel, Matthew J. Hausknecht, Jacob Devlin, Rishabh Singh, Pushmeet Kohli. 2018

231 citations recorded by the source corpus.

Program synthesis is the task of automatically generating a program consistent with a specification. Recent years have seen proposal of a number of neural approaches for program synthesis, many of which adopt a sequence generation paradigm similar to neural machine translation, in which sequence-to-sequence models are trained to maximize the likelihood of known reference programs. While achieving impressive results, this strategy has two key limitations. First, it ignores Program Aliasing: the fact that many different programs may satisfy a given specification (especially with incomplete specifications such as a few input-output examples). By maximizing the likelihood of only a single reference program, it penalizes many semantically correct programs, which can adversely affect the synthesizer performance. Second, this strategy overlooks the fact that programs have a strict syntax that can be efficiently checked. To address the first limitation, we perform reinforcement learning on top of a supervised model with an objective that explicitly maximizes the likelihood of generating semantically correct programs. For addressing the second limitation, we introduce a training procedure that directly maximizes the probability of generating syntactically correct programs that fulfill the specification. We show that our contributions lead to improved accuracy of the models, especially in cases where the training data is limited.

Subfields: Electrical and Electronic Engineering, Information Systems, Software, Natural Language Processing, Reinforcement Learning

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Electrical and Electronic Engineering

  1. Abhishek Gupta
  2. Sergey Levine
  3. Mohammad Norouzi
  4. Eric Eaton
  5. Joseph J. Lim
  6. Jorge Armando Mendez Mendez
  7. Anirudh Goyal
  8. Petros Maniatis

In Information Systems

  1. Charles Sutton
  2. Rishabh Singh
  3. Uri Alon
  4. Dawn Song
  5. Xinyun Chen
  6. Koushik Sen
  7. Rafael-Michael Karampatsis
  8. Pushmeet Kohli

In Software

  1. Dawn Song
  2. Rishabh Singh
  3. Koushik Sen
  4. Charles Sutton
  5. Swarat Chaudhuri
  6. Xinyun Chen
  7. Pushmeet Kohli
  8. Chang Liu

In Natural Language Processing

  1. Graham Neubig
  2. Percy Liang
  3. Mohit Bansal
  4. Luke S. Zettlemoyer
  5. Jianfeng Gao
  6. Jonathan Berant
  7. Dawn Song
  8. Christopher D. Manning

In Reinforcement Learning

  1. Sergey Levine
  2. Pieter Abbeel
  3. Ofir Nachum
  4. Chelsea Finn
  5. Abhishek Gupta
  6. Silvio Savarese
  7. Shimon Whiteson
  8. Mohammad Norouzi

Citations in the corpus