DreamCoder: Building interpretable hierarchical knowledge representations with wake-sleep Bayesian program learning

semanticscholar(2020)

引用 0|浏览8
暂无评分
摘要
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 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 guiding the language’s use. A new “wake-sleep” learning algorithm interleaves two sleep phases, alternately extending DreamCoder’s language with new symbolic abstractions, and training its network on imagined and replayed problems. DreamCoder solves classic programming problems and creative tasks like drawing pictures and building scenes. It rediscovers basics of modern functional programming, vector algebra and classical physics, including Newton’s and Coulomb’s laws. DreamCoder grows its languages compositionally from concepts learned earlier, building multi-layered symbolic representations that are interpretable and transferrable to new tasks, while still growing scalably and flexibly with experience.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要