© 2019 Strange Loop
What if it were possible to do state-of-the-art AI programming without having to do math? This talk presents novel programming constructs for probabilistic AI that automate and hide difficult mathematical and numerical details from the user. These constructs are analogous to automatic differentiation for deep learning, but apply to a broader class of AI approaches that exhibit more aspects of human-like intelligence and can work without any training data.
These constructs also enable a new conceptual framework for probabilistic AI that replaces arcane mathematical objects with code that is more accessible to programmers without advanced mathematical training. In this framework, the user first writes a stochastic simulator that produces imaginary data sets. The user then writes a simple metaprogram that analyzes the simulator code alongside an observed real-world data set, and inverts the simulator to return inferences about events that could explain that data.
The talk will illustrate these concepts using code written using Gen, a general-purpose probabilistic programming system. Gen makes it feasible to use powerful AI approaches that were previously deemed infeasible because of their engineering complexity. The talk will show how to infer the 3D structure and content of a scene from an image by inverting a graphics renderer and how to find the hidden compositional structure in time series data to make more accurate forecasts, both in under 100 lines of code.
Marco Cusumano-Towner created the general-purpose probabilistic programming system Gen while working at the MIT Probabilistic Computing Project. He is a fourth-year PhD student in electrical engineering and computer science at MIT, co-advised by Vikash Mansinghka and Josh Tenenbaum. Before MIT, Marco led an analytics team at a clinical cancer diagnostics startup, and studied at Stanford and UC Berkeley. As an undergraduate under the supervision of Pieter Abbeel, Marco developed systems for autonomous robotic manipulation of deformable materials (a.k.a. robotic laundry-folding). He has presented his research at leading academic conferences in programming languages (PLDI, POPL), machine learning (NeurIPS), and robotics (ICRA). Marco is interested in developing programming languages, systems, user interfaces, and other tools that make it easier to develop applications of automated probabilistic reasoning.