Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
126 tokens/sec
GPT-4o
47 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

DreamCoder: Growing generalizable, interpretable knowledge with wake-sleep Bayesian program learning (2006.08381v1)

Published 15 Jun 2020 in cs.AI and cs.LG

Abstract: 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 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 multi-layered symbolic representations that are interpretable and transferrable to new tasks, while still growing scalably and flexibly with experience.

Citations (173)

Summary

  • The paper introduces DreamCoder, which uses a wake-sleep Bayesian program induction algorithm to iteratively build a symbolic language for varied problem solving.
  • It integrates neural network-guided search during wake phases with sleep-phase abstraction consolidation, enhancing generalization and sample efficiency.
  • Experimental results demonstrate superior performance in domains like list processing, graphics, and structural planning, highlighting its practical impact.

Overview of DreamCoder: A Bayesian Program Learning System

Introduction

The paper "DreamCoder: Growing generalizable, interpretable knowledge with wake-sleep Bayesian program learning" introduces a system that aims to bridge significant gaps in current AI capabilities. This system, known as DreamCoder, utilizes a wake-sleep Bayesian program induction algorithm to develop generalizable and interpretable programming languages. These languages express domain concepts and are paired with neural networks designed to guide the search for relevant programs.

Core Objectives and Approach

DreamCoder is designed to learn across diverse domains by generating a library of symbolic abstractions through a wake-sleep cycle. The cycle consists of extending the programming language during sleep phases and leveraging neural networks during wake phases. This iterative learning process enables the system to solve tasks more efficiently over time. Importantly, DreamCoder not only solves problems in classical inductive programming domains but also handles creative tasks such as drawing images and constructing scenes.

Wake-Sleep Bayesian Program Learning

The wake-sleep algorithm alternately extends the programming language with new abstractions (during sleep) and trains the neural networks to recognize these abstractions and guide the formation of new programs (during wake). The wake phase uses a neural recognition model to propose candidate programs that are tested against task-specific data. The sleep phase consolidates successful programs into new abstractions and tasks the neural network with predicting solutions based on replayed and fictive examples.

Symbolic Representation and Scalability

The symbolic approach used by DreamCoder has several advantages:

  • Generalization: Programs developed using DreamCoder tend to extrapolate beyond the given data, leading to strong generalization capabilities.
  • Sample Efficiency: A few examples are often sufficient to accurately specify the function to be learned.
  • Interpretability: The resulting programs are human-readable and can be reused and composed for solving complex tasks.

DreamCoder addresses the scalability and efficiency issues associated with program induction by learning domain-specific languages and neural search strategies. This dual approach mitigates the search space complexity and enhances learning efficiency.

Domain Applications and Results

The system's efficacy was evaluated across different domains including classic programming challenges and more innovative tasks. Results showed:

  • List Processing and Text Editing: DreamCoder effectively learned basic operations and complex manipulations, outperforming traditional benchmarks in the SyGuS competition.
  • LOGO Graphics: The system developed interpretable drawing routines and higher-order functions, demonstrating its ability to understand and create diverse visual motifs.
  • Tower Building: DreamCoder learned to plan and construct intricate block structures, showcasing its capability to generalize across physical construction tasks.
  • Probabilistic Models and Regression: The model effectively inferred probabilistic concepts and real-valued parametric equations, demonstrating robust learning of continuous parameters and probabilistic phenomena.

Implications and Future Directions

DreamCoder's ability to learn and extend its knowledge base has significant implications for both practical and theoretical aspects of AI:

  • Practical Implications: The system's interpretable and reusable knowledge facilitates better human-computer interaction, making it possible to build more sophisticated AI applications across various domains.
  • Theoretical Implications: By combining symbolic, probabilistic, and neural learning paradigms, DreamCoder paves the way for more comprehensive AI models that integrate the strengths of these approaches.

Future work could explore more complex and noisy real-world data, necessitating further integration with probabilistic and neural AI methods. Expanding the general applicability of DreamCoder to commonsense reasoning and natural language understanding represents a promising avenue for research, heralding the development of more advanced AI systems that emulate human-like learning and problem-solving.

Conclusion

DreamCoder stands as a pivotal effort in advancing program induction technologies. Through wake-sleep Bayesian learning, it effectively grows generalizable, interpretable languages capable of solving a wide array of tasks. The system's dual focus on declarative and procedural knowledge paves the way for future AI that is adaptable, efficient, and collaborative with human intelligence.

Youtube Logo Streamline Icon: https://streamlinehq.com