You are now leaving the website that is under the control and management of DARPA. The appearance of hyperlinks does not constitute endorsement by DARPA of non-U.S. Government sites or the information, products, or services contained therein. Although DARPA may or may not use these sites as additional distribution channels for Department of Defense information, it does not exercise editorial control over all of the information that you may find at these locations. Such links are provided consistent with the stated purpose of this website.

After reading this message, click to continue immediately.

Go Back

/ Information Innovation Office (I2O)

Probabilistic Programming for Advancing Machine Learning (PPAML)

Machine learning - the ability of computers to understand data, manage results and infer insights from uncertain information - is the force behind many recent revolutions in computing. Email spam filters, smartphone personal assistants and self-driving vehicles are all based on research advances in machine learning. Unfortunately, even as the demand for these capabilities is accelerating, every new application requires a Herculean effort. Teams of hard-to-find experts must build expensive, custom tools that are often painfully slow and can perform unpredictably against large, complex data sets.

The Probabilistic Programming for Advancing Machine Learning (PPAML) program aims to address these challenges. Probabilistic programming is a new programming paradigm for managing uncertain information. Using probabilistic programming languages, PPAML seeks to greatly increase the number of people who can successfully build machine learning applications and make machine learning experts radically more effective. Moreover, the program seeks to create more economical, robust and powerful applications that need less data to produce more accurate results - features inconceivable with today's technology.

Program Manager: Dr. Suresh Jagannathan


The content below has been generated by organizations that are partially funded by DARPA; the views and conclusions contained therein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of DARPA or the U.S. Government.

Report a problem:

Last updated: November 13, 2015

Applied Communication Sciences DREtool 1.0 (DILEGENT team) Machine Learning Not Ready for Release Probability density ratio estimation tool. Given two samples of data, provides estimate of the density ratio between corresponding probability densities. To be used as the core module for other developed applications, such as conditional probability estimation. Mathworks Matlab
BAE Systems Prob Probabilistic Programming, Inference Engine Not Ready for Release Probabilistic programming language built within Racket system, featuring intentional contracts. TBD
BAE Systems CP MATLAB Probabilistic Programming, Inference Engine Not Ready for Release MATLAB solutions to first 3 TA1 challenge problems. TBD
BAE Systems CP Prob Probabilistic Programming, Inference Engine Not Ready for Release Prob solutions to first 3 TA1 challenge problems. TBD
Charles River Analytics (publications) Figaro Probabilistic Programming, Inference Engine Figaro PPS BSDv3
Charles River Analytics (publications) BLOG Probabilistic Programming, Inference Engine BLOG PPS TBD
Charles River Analytics (publications) APPRIL Probabilistic Programming, Inference Engine Not Ready for Release Performance Optimizer BSDv3
Charles River Analytics (publications) PRM++ Probabilistic Programming, Inference Engine Not Ready for Release PRM PPS BSDv3
Galois, Inc. PPAML Tracer Domain Experts PPAML Tracer is a lightweight tracing library designed for explicit instrumentation of generated code. BSDv3
Galois, Inc. PPAML Evaluation Tools Domain Experts The PPAML client tools are a set of libraries and scripts that allow PPAML TA2-4 teams to evaluate their own probabilistic programming systems in the same way that we will at Galois. BSDv3
Galois, Inc. PPAML VREP Automobile Plugin Domain Experts This package provides a data collection plugin for the V-REP robotics simulator The plugin is targeted at data collection following the model described at, but it may be useful for other projects as well. TBD
Gamelan Dimple: Java and Matlab libraries for probabilistic inference Probabilistic Programming, Inference Engine Dimple Source and Demos with small datasets. ALv2
Gamelan Chimple, a Probabilistic Programming Java API Probabilistic Programming, Inference Engine Chimple Source - a lightweight trace MH implementation in Java. ALv2
Gamelan Team Challenge Problem on Agile/Amortized Inference Probabilistic Programming, Inference Engine Not Ready for Release Agile/Amortized Inference Team Challenge Problem. TBD
Gamelan Phase transitions in BP Probabilistic Programming, Inference Engine Demonstrating phase transitions in belief propagation convergence in the stochastic block model. ALv2
Gamelan HMM implemented with multiple solvers Probabilistic Programming, Inference Engine HMM demos for dimple and chimple. ALv2
Gamelan Demos of Dimple with large datasets Probabilistic Programming, Inference Engine Dimple Demos (large datasets). ALv2
Gamelan Webchurch source Probabilistic Programming, Inference Engine A compiler for the Church programming language into JavaScript for in-browser execution. ALv2
Gamelan Probabilistic Models of Cognition Probabilistic Programming, Inference Engine Instructional Materials for Webchurch. ALv2
Gamelan Forest: a repository for generative models Probabilistic Programming, Inference Engine Demo examples for WebChurch. ALv2
Gamelan Elastic Beanstalk monitor for mixing and convergence streaming data Probabilistic Programming, Inference Engine Not Ready for Release Mixing and Convergence Feedback visualization infrastructure. TBD
Gamelan Docker container for Java JDK and Flask-Sockets Probabilistic Programming, Inference Engine Not Ready for Release Cloud Infrastructure for visualization. TBD
Indiana University (publications) Sample visualizer Probabilistic Programming, Inference Engine Not Ready for Release An HTTP server that communicates with any Web browser and any sampler to plot inference progress using histograms, correlation matrices, and other pluggable widgets. BSD
Indiana University (publications) MCMC library Probabilistic Programming, Inference Engine Not Ready for Release A library of combinators in Haskell for building Markov Chain Monte Carlo samplers from reusable proposal distributions and transition kernels. BSD
Indiana University (publications) Density calculator Probabilistic Programming, Inference Engine Not Ready for Release A program that computes the probability density of a probabilistic program, combining the accuracy of Bhat et al's exact algorithm and the generality of Pfeffer's approximate algorithm. BSD
Indiana University (publications) Tagless interpreters Probabilistic Programming, Inference Engine Not Ready for Release Interpreters of the lambda calculus with a measure monad and conditioning, by importance sampling and by Markov Chain Monte Carlo, without expression dispatch overhead. BSD
MIT (publications) Venture Probabilistic Programming, Inference Engine A general-purpose, higher-order probabilistic programming platform with programmable inference. GPLv3
MIT (publications) BayesDB Probabilistic Programming, Inference Engine A Bayesian database for querying the probable implications of data tables. ALv2
SRI Lifted Inference Library Machine Learning A Probabilistic Reasoning As Symbolic Evaluation (PRAiSE) library that provides capabilities in lifted first-order probabilistic belief propagation and support for defining first-order probabilistic models. BSDv3
SRI Alchemy 2.0 Machine Learning Learning and Inference engine for Markov Logic Networks. MIT
Stanford University Optimal Experiment Design Inference Engine Not Ready for Release Optimal experiment design for probabilistic models. TBD
Stanford University STOKE Inference Engine Not Ready for Release Stochastic Optimizer for x86_64 binaries. ALv2
Stanford University shred Inference Engine Not Ready for Release Tracing MH, Church->SMT, FAUST, etc. (on top of Vicare Scheme). TBD
Stanford University shred-js Inference Engine Not Ready for Release (but in public github repo) Javascript tracing primitives (built on top of webchurch). TBD
University of California - Riverside (publications) CTBN-RLE Machine Learning Continuous-time reasoning and learning library. GPLv3
Charles River Analytics Hierarchical Reasoning with Probabilistic Programming
Indiana University Designing a MCMC Library for Probabilistic Programming
MIT Approximate Bayesian Image Interpretation using Generative Probabilistic Graphics Programs
MIT A New Approach to Probabilistic Programming Inference
MIT Building Fast Bayesian Computing Machines out of Intentionally Stochastic, Digital Parts
MIT Venture: a Higher-order Probabilistic Programming Platform with Programmable Inference
Princeton University Bayesian Nonparametric Poisson Factorization for Recommendation Systems
Princeton University Black box variational inference
Princeton University Build, Compute, Critique, Repeat: Data Analysis with Latent Variable Models
Princeton University The Inverse Regression Topic Model
University of Texas - Dallas Lifted MAP Inference for Markov Logic Networks
University of Texas - Dallas Loopy Belief Propagation in the Presence of Determinism
University of California - Irvine Marginal Structured SVM with Hidden Variables
University of California - Berkeley Unifying Logic and Probability: Recent Developments
University of California - Riverside Deterministic Anytime Inference for Stochastic Continuous-Time Markov Processes