- Assignment 1 (A1) - Introduction to PPL (10 points): This will be your first hands-on experience with probabilistic programming.
- Assignment 2 (A2) - Minimal PPL + Likelihood Weighting (10 points): You learn how to implement the core of a PPL in Python and write your first inference algorithm.
- Assignment 3 (A3) - Metropolis Hastings (10 points): You implement the general-purpose Metropolis Hastings inference algorithm
- Assignment 4 (A4) - HMC and ADVI (10 points): You implement the state-of-the-art inference algorithms HMC and ADVI
Team
- Professor
- Jürgen Cito
- University Assistant
- Markus Böck
Registration
Important! Please register on TISS until Wednesday, 07.10.2024 23:55 (strict deadline!) to be able to participate in this course.
All students registered in TISS until the deadline will have access to the course.
To officially register, you have to complete Assignment 1 (A1), which will be available on TUWEL.
You will be able to deregister until 16.10.2024 23:55, which is also the deadline for A1.
If you have submitted A1 and you are not on the waiting list, you will receive a certificate (Zeugnis).
If you are on the waiting list, you still may want to complete A1. Typically, some students will drop out before A1 and you may get their spot.
Prerequisities
We expect that you have working knowledge of Python and are familiar with Jupyter Notebooks.
We also require basic knowledge of probability theory and statistics.
This course will feature a lot of mathematics for expository reasons, altough we do not require you to do any mathematical manipulations in the exercises.
Timetable/Lectures
The following timetable lists all important dates for the course (lectures, assignment discussion sessions, deadlines, office hours) together with accompanying material (recommended reading, slides as PDFs).
If a deadline is listed on a certain date, assume it due at 23:55 that day unless specified otherwise.
All lecture dates are cum tempore (c.t.) - they will begin at quarter past.
Date | Content | Recommended Reading |
---|---|---|
02.10. 10:00-12:00 FAV Hörsaal 2 |
Kick-Off & Lecture 1:
|
|
02.10. | Release Assignment 1 (A1) | |
07.10. | TISS Registration Deadline | |
09.10. 10:00-12:00 FAV Hörsaal 2 |
Lecture 2:
|
|
09.10. | Release Assignment 2 (A2) | Inspiration for models: |
16.10. | A1 Deadline | |
16.10. | Deregistration deadline | |
24.10. 12:00-14:00 Seminarraum FAV 01 C |
Lecture 3:
|
|
25.10. | Release Assignment 3 (A3) | |
30.10. | A2 Deadline | |
13.11. 13:00-15:00 |
Assignment Discussion Session A1 & A2 Online, Zoom link in TUWEL Attendance is mandatory! |
|
14.11. 13:00-15:00 FAV Hörsaal 2 |
Lecture 4:
|
|
15.11. | A3 Deadline | |
15.11. | Release Assignment 4 (A4) | |
21.11. 13:00-15:00 FAV Hörsaal 2 |
Lecture 5:
|
|
28.11. 12:00-14:00 Seminarraum FAV 01 C |
Lecture 6:
|
|
29.11. | A4 Deadline | |
04.12. 13:00-15:00 |
Assignment Discussion Session A3 & A4 Online, Zoom link in TUWEL Attendance is mandatory! |
|
05.12. 13:00-15:00 FAV Hörsaal 2 |
Lecture 7:
|
|
06.12. | Project Proposal Deadline | |
11.12. 13:00-15:00 FAV Hörsaal 2 |
Lecture 8:
|
|
08.01. | Final Project Milestone |
|
28.01 13:00-17:00 FAV Hörsaal 2 |
Final Project Presentations 1 Attendance is mandatory! |
|
29.01. 13:00-17:00 FAV Hörsaal 2 |
Final Project Presentations 2 Attendance is mandatory! |
Lecture Mode
The seven to eight lectures will be held in-person in FAV Hörsaal 2 (attendance not mandatory).There are four assignments which you have to complete on JupyterHub.
The assignment discussion session are online via Zoom and attendance is required. You will be asked to share your solution to an assignment problem.
The final project presentations will be in-person. There are two dates. You have to attend at least one presentation session and present your group project.
Assignments
Group Project
Projects may be anything related to probabilistic programming.
For instance,
- Applying probabilistic programming to a non-trivial problem.
- Implementing an advanced inference algorithm in our minimal PPL.
- Implementing a PPL following a different design principle.
Example Projects.
Reproducing research papers in a simplified form.
Take inspiration from the Bayesian inference examples given in the first lecture or look for publications that you find interesting. For instance, we don't expect you to do object tracking based on videos, but you can think of implementing a simplified simulator in which object tracking is more feasable. Or, try to break captchas with less noise, fewer letters, etc. For such problems getting the inference to work may be the most challenging part.Answering questions for real-world data sets with Bayesian Inference.
You may find a real-world data set and pose interesting questions about it. For such problems the modelling aspect will be the most important. Try out several models, argue about your modelling decisions and see how they affect the result. Carefully interpret the results.Implementing and testing an inference algorithm.
In the course we will implement a minimal PPL with some standard inference algorithms. These algorithms may not work for more complex models. You may try to implement a more sophistaced inference algorithm for the minimal PPL (or your own implementation of a PPL) to make inference work on a set of selected models. Academic papers provide descrpitoins for such algorithms.Scope
If you pick a hard problem, then all of your effort will probably go towards finding one model and implementing one sophistaced inference algorithm that solves it. For such problems, document and share the process of finding a model / inference algorithm combination that made it work.If you have a "data-science" type of project, then inference maybe won't be too hard. Focus on the modelling aspect and how it affects the result. Document and share the process of modelling the data to answer your questions. Discuss your modelling decisions, carefully interpret the results and present your insights in a convincing manner.
Project Proposals
If your project is about applying probabilistic programming, then the proposal should include at least one paragraph for each of the following questions:- What is the objective of your project?
- How does your data look like? What dataset do you use?
- How do you intend to model the data? What could be the latent variables? What are the observed variables? ...
- How do you solve the problem? Which inference algorithm? ...
- What is your first milestone?
- How do you plan to split up the work?
- What is the objective of your project?
- How do you achieve your objective? Explain your methodology and be as specific as possible. What do you implement? Which technologies do you use? ...
- When do you consider your project a success? How do you test your implementation?
- What is your first milestone?
- How do you plan to split up the work?
You may also ask for feedback on your ideas prior to the proposal deadline.
Also let me you know your preferred prentation date: 28.01. or 29.01.
Grading
Your grade will be a combination of assignments scores and final project score.- 40% Assignments
- 60% Project
Grading Scale
The points of the theoretical and practical part sum to exactly 100 points. The points map to grades as follows:- S1: 88-100
- U2: 75-87.99
- B3: 63-74.99
- G4: 50-62.99
- N5: 0-49.99