Chaudhuri, Swarat Neurosymbolic Programming (1680839349)
Neurosymbolic programming is an emerging area that bridges the areas of deep learning and program synthesis. As in classical machine learning, the goal is to learn functions from data. However, these functions are represented as programs that can use neural modules in addition to symbolic primitives and are induced using a combination of symbolic search and gradient-based optimization.
Neurosymbolic programming can offer multiple advantages over end-to-end deep learning. Programs can sometimes naturally represent long-horizon, procedural tasks that are difficult to perform using deep networks. Neurosymbolic representations are also, commonly, easier to interpret and formally verify than neural networks. The restrictions of a programming language can serve as a form of regularization and lead to more generalizable and data-efficient learning. Compositional programming abstractions can also be a natural way of reusing learned modules across learning tasks.In this monograph, the authors illustrate these potential benefits with concrete examples from recent work on neurosymbolic programming. They also categorize the main ways in which symbolic and neural learning techniques come together in this area and conclude with a discussion of the open technical challenges in the field. The comprehensive review of neurosymbolic programming introduces the reader to the topic and provides an insightful treatise on an increasingly important topic at the intersection of programming languages and machine learning.