Probabilistic Machine Learning (PML)

Course content

Uncertainty is a central concept in many areas of Science and Society, yet it is often neglected in Machine Learning. This course demonstrates how the probabilistic framework gives us a powerful language to describe uncertainties about both models and predictions. We will cover a range of different probabilistic modelling techniques, and demonstrate the impact of uncertainty quantification on real-world data. Finally, we will demonstrate how model design and inference can be cleanly separated using modern probabilistic programming languages, making it possible to express complex models in a modular and concise form.

This is an advanced topics course, and the exact list of topics will therefore change from year to year, depending on current trends in the literature. Examples of topics include:


  • Fundamental concepts. What is a probability? Frequentist vs Bayesian perspectives.
  • Inference techniques: Markov chain Monte Carlo, Variational Inference, and advanced methods
  • Uncertainty quantification and probability calibration
  • Latent variable models: Mixtures, Deep latent variable models
  • Graphical models
  • Gaussian Processes, Bayesian optimization
  • Flow models
  • Bayesian decision theory
  • Probabilistic Programming fundamentals
  • Probabilistic Programming Language design


If you have not taken DIKU's Machine Learning master course, please, carefully check the "Recommended Academic Qualifications" box below and the self-preparation assignment at
 Machine Learning courses given at other places do not necessarily prepare you well for this course. It is not advised to take the course if you do not meet the academic qualifications.


Learning outcome

After completing the course, the student will have:

Knowledge of

  • fundamental concepts in probabilistic machine learning
  • the trade-offs between different inference techniques
  • common probabilistic models
  • fundamental concepts in probabilistic programming

Skills in

  • implementing different probabilistic models, with and without the use of a probabilistic programming language.
  • quantifying and calibrating uncertanties
  • assessing model quality (including convergence criteria and appropriateness of variational distributions)

Competences in

  • analyzing problems and formulating appropriate probabilistic models
  • identifying strengths and weaknesses of different models and modelling approaches
  • solving modelling projects in collaboration with others

Lectures and exercises

See Absalon when the course is set up.



The course requires a strong mathematical background. It is suitable for computer science master students, as well as students from mathematics (statistics, actuarial math, math-economics, etc) and physics study programmes. Students from other study programmes can verify if they have sufficient math and programming skills by solving the self-preparation assignment (below) and if in doubt contact the course organiser.

It is assumed that the students have successfully passed Machine Learning A (MLA) (or the Machine Learning (ML) course from previous years offered by the Department of Computer Science (DIKU). In case you have not taken the “Machine Learning” course at DIKU, please, go through the self-preparation material and solve the self-preparation assignment provided at https:/​/​​​machine-learning-courses/​pml
before the course starts. (For students with a strong mathematical background and some background in machine learning it should be possible to do the self-preparation within a couple of weeks.) It is strongly advised not to take the course if you do not meet the prerequisites.

The working language of the course is Python. All our examples and help are provided in Python and it is recommended to be familiar with Python before starting the course.

Continuous feedback during the course of the semester
7,5 ECTS
Type of assessment
Written assignment, 20 h during course
Type of assessment details
A group project (written assignment), corresponding at 20 hours, developed during the course and documented with a report wherein the individual contributions are stated.
All aids allowed
Marking scale
7-point grading scale
Censorship form
No external censorship
Several internal examiners.
Criteria for exam assessment

See Learning Outcome.

Single subject courses (day)

  • Category
  • Hours
  • Lectures
  • 28
  • Preparation
  • 137
  • Theory exercises
  • 21
  • Exam
  • 20
  • English
  • 206


Course number
7,5 ECTS
Programme level
Full Degree Master

1 block

Block 2
No limit
The number of seats may be reduced in the late registration period
Study Board of Mathematics and Computer Science
Contracting department
  • Department of Computer Science
Contracting faculty
  • Faculty of Science
Course Coordinator
  • Wouter Boomsma   (2-7c6745696e33707a336970)
Saved on the 28-02-2023

Are you BA- or KA-student?

Are you bachelor- or kandidat-student, then find the course in the course catalog for students:

Courseinformation of students