DreamCoder: growing generalizable, interpretable knowledge with wake–sleep Bayesian program learning

By Kevin Ellis, Catherine Wong, Maxwell Nye, Mathias Sablé-Meyer, Luc Cary, Lucas Morales, Luke B. Hewitt, Armando Solar-Lezama, Josh Tenenbaum. 2020

266 citations recorded by the source corpus.

Expert problem-solving is driven by powerful languages for thinking about problems and their solutions. Acquiring expertise means learning these languages—systems of concepts, alongside the skills to use them. We present DreamCoder, a system that learns to solve problems by writing programs. It builds expertise by creating domain-specific programming languages for expressing domain concepts, together with neural networks to guide the search for programs within these languages. A ‘wake–sleep’ learning algorithm alternately extends the language with new symbolic abstractions and trains the neural network on imagined and replayed problems. DreamCoder solves both classic inductive programming tasks and creative tasks such as drawing pictures and building scenes. It rediscovers the basics of modern functional programming, vector algebra and classical physics, including Newton’s and Coulomb’s laws. Concepts are built compositionally from those learned earlier, yielding multilayered symbolic representations that are interpretable and transferrable to new tasks, while still growing scalably and flexibly with experience. This article is part of a discussion meeting issue ‘Cognitive artificial intelligence’.

Subfields: Artificial Intelligence, Computational Theory and Mathematics, Representation & Self-Supervised Learning, Code Generation & Program Synthesis

How researchers see this paper

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

In Artificial Intelligence

  1. Sergey Levine
  2. Josh Tenenbaum
  3. Chelsea Finn
  4. Pieter Abbeel
  5. Li Fei-Fei
  6. Yoshua Bengio
  7. Yuke Zhu
  8. Ruslan Salakhutdinov

In Computational Theory and Mathematics

  1. Sergey Levine
  2. Nicolas Manfred Otto Heess
  3. Pieter Abbeel
  4. Timothy P. Lillicrap
  5. Josh Tenenbaum
  6. Yuke Zhu
  7. Yuval Tassa
  8. Joseph J. Lim

In Representation & Self-Supervised Learning

  1. Josh Tenenbaum
  2. Timothy P. Lillicrap
  3. Brenden M. Lake
  4. Sergey Levine
  5. Jacob Andreas
  6. Adam Santoro
  7. Joseph J. Lim
  8. Kevin Ellis

In Code Generation & Program Synthesis

  1. Swarat Chaudhuri
  2. Josh Tenenbaum
  3. Armando Solar-Lezama
  4. Maxwell Nye
  5. Oleksandr Polozov
  6. Rishabh Singh
  7. Kevin Ellis
  8. Catherine Wong

Citations in the corpus