DreamCoder:使用唤醒-睡眠贝叶斯程序学习来增长可概括、可解释的知识
DreamCoder: Growing generalizable, interpretable knowledge with wake-sleep Bayesian program learning
摘要:
专家解决问题是由强大的语言驱动的,用于思考问题及其解决方案。获得专业知识意味着学习这些语言-概念系统,以及使用它们的技能。我们提出了DreamCoder,一个通过编写程序来学习解决问题的系统。它通过创建用于表达领域概念的程序设计语言,以及用于指导在这些语言中搜索程序的神经网络来构建专业知识。"唤醒-睡眠“学习算法交替地用新的符号抽象来扩展语言,并在想象和重放的问题上训练神经网络。DreamCoder解决了经典的归纳编程任务和创造性任务,如绘画和构建场景。它重新发现了现代函数式编程,向量代数和经典物理学的基础知识,包括牛顿定律和库仑定律。概念是从早期学习的内容中构建的,产生多层符号表示,这些符号表示可解释并可转移到新任务中,同时仍然随着经验的增加而灵活扩展。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。