Seminar on Probabilistic Programming : Topics

Each student will choose one topic from the list below. There are more topics than students and hence not all will be covered. To guarantee sufficient coverage of the different aspects some topics are written in boldface -- all of these should be chosen by someone. The topics written in italics require knowledge of somewhat more specialized (and perhaps difficult) concepts, such as computability or probability theory -- you should only pick such a topic if you feel conformtable reading the papers and understand them well enough.

The topics are split into four categories. The first category is about fundamentals of probabilistic programming, the second covers individual languages and approaches, and the third category lists topics presented more from a statistical perspective instead of computer science. Finally, the fourth category covers applications of probabilistic programming.

Each topic lists one or two papers and is coupled with some keywords for quick screening of interesting topics. The papers linked here are good starting points for covering the topic, but typically the presentation will cover also other material. For some of the topics (for example, Church) there exists massive amount of material so selecting what to cover is important part of the seminar work.

 

Foundations

 
1. Semantics of probabilistic programming
Keywords: semantics, theory
 
2. Program analysis
Keywords: program analysis, importance sampling, inference efficiency
 
3. Automatic differentiation
Keywords: Automatic differentiation, gradient-based optimization
 
4. Computability of probabilistic programs
Keywords: measure theory, probability theory
 
5. Probabilistic logic
Papers: de Raedt and Kimmig: Probabilistic Programming Concepts
Keywords: logic, exact inference, model counting/SAT, MCMC
 

Languages

 
6. Probabilistic C
Keywords: C, POSIX, sequential Monte Carlo
 
7.  Church
Keywords: Scheme/Lisp
 
8. Venture
Keywords: Scheme/Lisp
 
9. BLOG
Keywords: first-order logic
 
10. Anglican
Keywords: Scheme, sequential Monte Carlo, Venture
 
11. Tabular
Papers: Gordon et al. Schema-driven probabilistic programming
Keywords: databases, graphical models, factor graphs
 
12. Picture
Keywords: graphics, rendering, MCMC
 
13. Figaro
Keywords: Scala, object-oriented programming, MCMC
 
14. FACTORIE
Keywords: Scala, undirected graphical models, MCMC
 
15. BayesDB
Keywords: SQL, Monte Carlo, universal models, CRP
 
16. QUERY
Keywords: Turing machine, inductive reasoning, cognitive science, probability theory
 

Statistics approaches

 
17. Statistical software for probabilistic programming
Keywords: HMC, generative models, statistics
 
18. Bayesian optimization
Keywords: Gaussian processes
 

Applications

 
19. Probabilistic program induction
Keywords: human learning, cognitive science
 
20. Gaussian process memoization
Keywords: Gaussian processes, Venture
 
21. Automatic statistician
Papers: Lloyd et al. Automatic Construction and Natural-Language Description of Nonparametric Regression Models; http://automaticstatistician.com/index/
Keywords: Data science, probabilistic modelling