Litcius/Paper detail

DreamCoder: bootstrapping inductive program synthesis with wake-sleep library learning

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

202196 citationsDOIOpen Access PDF

Abstract

We present a system for inductive program synthesis called DreamCoder, which inputs a corpus of synthesis problems each specified by one or a few examples, and automatically derives a library of program components and a neural search policy that can be used to efficiently solve other similar synthesis problems. The library and search policy bootstrap each other iteratively through a variant of "wake-sleep" approximate Bayesian learning. A new refactoring algorithm based on E-graph matching identifies common sub-components across synthesized programs, building a progressively deepening library of abstractions capturing the structure of the input domain. We evaluate on eight domains including classic program synthesis areas and AI tasks such as planning, inverse graphics, and equation discovery. We show that jointly learning the library and neural search policy leads to solving more problems, and solving them more quickly.

Topics & Concepts

Program synthesisComputer scienceBootstrapping (finance)Artificial neural networkInductive biasMatching (statistics)GraphGraphicsArtificial intelligenceMachine learningTheoretical computer scienceMulti-task learningTask (project management)MathematicsManagementComputer graphics (images)EconomicsFinancial economicsStatisticsSoftware Engineering ResearchMachine Learning and AlgorithmsSoftware Testing and Debugging Techniques