I’m a fifth-year PhD student at MIT’s Probabilistic Computing Project, co-advised by Vikash Mansinghka and Josh Tenenbaum, and supported by an NSF Graduate Research Fellowship. Before coming to MIT, I taught high school computer science at Commonwealth School in Boston. And before that, I was a student at Yale, where I received a B.S. in computer science and math in 2015.
I’m interested in designing systems and abstractions that help people apply, invent, and reason about sophisticated algorithms for probabilistic modeling and inference. I’m also interested in using those systems to explore ideas in knowledge representation, expert systems, logic, and program synthesis. Selected research projects are listed below; please see Google Scholar for a complete list of publications.
Alexander Lew*, Mathieu Huot*, Sam Staton, Vikash Mansinghka
ADEV shows how to run automatic differentiation (AD) on programs that make random choices. Given a probabilistic program, ADEV produces a new probabilistic program, whose expected return value is the derivative of the original program’s expectation. This output program can be run to generate unbiased Monte Carlo estimates of the desired gradient, for use within stochastic gradient descent.
Alexander Lew, Marco Cusumano-Towner, Vikash Mansinghka
We introduce a new framework, Recursive Auxiliary-Variable Inference (RAVI), for designing Monte Carlo and variational inference algorithms. RAVI shows how to run SMC, Metropolis-Hastings, and Variational Inference with very expressive proposal distributions, which may lack tractable marginal densities. The key idea is to approximate these proposal densities with an additional layer of Monte Carlo or variational inference. We apply RAVI to develop an improved version of Markov Chain Variational Inference, and a new algorithm for inference in Dirichlet Process mixture models that outperforms strong SMC baselines.
Alexander Lew, Monica Agrawal, David Sontag, Vikash Mansinghka
We present PClean, a probabilistic programming language for leveraging dataset-specific knowledge to automate Bayesian cleaning. PClean’s restricted problem domain enables new optimizations that significantly speed up inference. We show empirically that short (< 50-line) PClean programs can match state-of-the-art data-cleaning systems in terms of accuracy and runtime and scale to real-world datasets with millions of records.
Alexander Lew, Marco Cusumano-Towner, Benjamin Sherman, Michael Carbin, Vikash Mansinghka
We develop a type system for probabilistic programs that enables us to mechanically verify measure-theoretic correctness properties of inference algorithms. Using our type system and semantics, we design sound-by-construction versions of programmable MCMC, SMC, and variational inference.
Marco Cusumano-Towner, Feras Saad, Alexander Lew, Vikash Mansinghka
We introduce Gen, a new probabilistic programming system that outperforms state-of-the-art systems, sometimes by orders of magnitude, on diverse problems including object tracking, estimating 3D body pose from depth images, and inferring the structure of a time series.
Some of my research talks are available online with video recordings:
At MIT, I co-taught a January-term course on applied probabilistic programming, and served twice as a TA for 6.885: Probabilistic Programming & AI.
From 2015 to 2018, I taught computer science full-time at Commonwealth School.
In this hands-on introduction to computer science using Racket and Python, students create dozens of interactive programs while exploring core ideas in computation like data representation, abstraction, and recursion.
Students explore big ideas in computing, from machine learning to networking to cryptocurrencies, by coding up the relevant algorithms themselves.
We take a deep dive under the covers to see how lists, trees, and arrays really work. Then we practice algorithmic thinking and algorithm design.
This course is different each year depending on student interest.
From 2015 to 2019, I served as a TA at the Duke Machine Learning Summer School.
A slow and thorough introduction to TensorFlow from the ground up, designed for use at the Duke Machine Learning Summer School. Rather than jump straight into building a neural net, we focus first on the fundamentals: graphs, operations, tensors, placeholders, variables, and sessions.
A fun little word game powered by machine learning. With a hundred thousand words to choose from, can you and the robot converge to the same one?
Email me at alexlew AT mit DOT edu.