Introduces probabilistic programming, an emerging field at the intersection of programming languages, probability theory, and artificial intelligence. Shows how to integrate modeling and inference approaches from multiple eras of AI, by defining models and inference algorithms using executable code in new probabilistic programming languages. Also shows how to use technical ideas from programming languages to formalize and generalize AI techniques. Example modeling formalisms include generative models, neural networks, symbolic programs, hierarchical Bayesian models, and causal Bayesian networks. Example inference approaches include Monte Carlo, numerical optimization, and neural network techniques. Includes hands-on exercises in probabilistic programming fundamentals, plus applications to computer vision and data analysis, using two new open-source probabilistic programming platforms recently prototyped at MIT. Graduate students must complete an original research project for H level credit.
Introduces probabilistic programming, a computational formulation of probability theory. Covers how to formalize key ideas from probabilistic modeling and inference as probabilistic meta-programs, and provides hands-on probabilistic programming experience with Venture, an open-source research platform. Emphasizes practical AI-based techniques for probabilistic data analysis while also surveying applications to computer vision, robotics, and the exploration and modeling of complex databases in domains such as public health and neuroscience. Illustrates connections with other approaches to engineering and reverse-engineering intelligence.