Probabilistic Programming (Praktikum)
The world is full of randomness and uncertainty. Modeling random processes helps us make better decisions, but it is not always intuitive how to work with these models. Probabilistic programming languages enable us to describe complicated probability models and obtain properties relevant for decision making through the power of modern computers. In this module, we learn the basics of probabilistic programming using the language WebPPL.
Organization
We work with the book Probabilistic Models of Cognition. We meet every week. Each meeting is about a chapter of the book. All of you will have read that chapter and done the exercises. One of you will present the chapter and their solution to the exercises during the meeting. Active participation in the discussion is expected. Over the course of the semester we will decide upon an individual probabilistic programming project that you will have time to complete until the end of the semester. You will not have to present the project, only hand it in in the form of code and documentation. Your grade will be based on the presentation of the chapter and the project you handed in, weighted equally.
Entry in the Campus system: Link
Meetings
We meet every Monday at 14:15 in room A302 (Sand).
April 29
We learn about chapter 2 of the book: Generative Models. Please do exercises 1, 2, 3, 4, 5, 6, 7 and 8. Lucca Hellriegel will present this chapter. Slides
May 06
We learn about chapter 3 of the book: Conditioning. Please do exercises 1, 2, 3, 4, 5 and 6. Michael Schiller will present this chapter. Slides
May 13
We learn about chapter 4 of the book: Causal and statistical dependence. Please do exercise 1. Johannes Reisser will present this chapter.
May 20
We learn about chapter 5 of the book: Conditional dependence. Please do exercise 1. Harutun Minasyan will present this chapter.
May 27
We learn about chapter 6 of the book: Bayesian data analysis. Please do exercices 1 and 2. Nara Paul Mwanyongo will present this chapter.
June 03
We learn about chapter 7 of the book: Algorithms for inference. Please do either exercise 1 or exercise 2. Tobias Hille will present this chapter.
June 10
NO MEETING.
June 17
NO MEETING.
June 24
We learn about chapter 9 of the book: Learning as conditional inference. Please do exercise 1 and exercise 2. Serkan Muhcu will present this chapter.
July 01
We learn about chapter 12 of the book: Occam’s Razor. Please do exercise 1 and exercise 2. Kevin Döbler will present this chapter.
July 08
NO MEETING.
July 15
NO MEETING.
July 22
We learn about chapter 10 of the book: Learning with a language of thought. Please do exercise 1. Dennis Akdasli will present this chapter.
Project ideas
There are four main categories for possible projects, ordered from easy to hard. You are very welcome to invent your own project.
Generation
Art, content, levels, …
Inference
Demand prediction, Spaced repetition, parsing, autonomous agents, A/B tests, MNIST, …
Learning
Relational language of thought, grammar, JSON schema, …
Implementation
Black box variational inference, disintegration, lightweight embedding, …
Enrolling
To participate in this course, send an email containing your name, Matrikelnummer and Studiengang to Philipp Schuster.
Reading
If you want to get an impression of what probabilistic programming is you can check out Making Money Using Math by Erik Meijer.
People
Prerequisites
Knowledge in probability theory is helpful but not required.