This course covers the fundamentals of a Bayesian (i.e., probabilistic) approach to machine learning and information processing systems. The Bayesian approach allows for a unified and consistent treatment of many model-based machine learning techniques. We focus on Linear Gaussian systems and will discuss many useful models and applications, including common regression and classification methods, Gaussian mixture models, hidden Markov models and Kalman filters. We will discuss important algorithms for parameter estimation in these models including the Expectation-Maximization (EM) algorithm and Variational Bayes (VB). The Bayesian method also provides tools for comparing the performance of different information processing systems by means of estimating the ``Bayesian evidence’’ for each model. We will discuss several methods for approximating Bayesian evidence. Next, we will discuss intelligent agents that learn purposeful behavior from interactions with their environment. These agents are used for applications such as self-driving cars or interactive design of virtual and augmented realities. Indeed, in this course we relate synthetic Bayesian intelligent agents to natural intelligent agents such as the brain. You will be challenged to code Bayesian machine learning algorithms yourself and apply them to practical information processing problems.
- (Wed 01-Apr). Solutions to assignments in the Probabilistic Programming notebooks have been made available. They’re in the exercises subfolder.
- (Sun 29-Mar). We will have oral exams in April. Please follow further announcements at Canvas.
- (Fri 13-Mar). In response to COVID-19, the TU/e is switching to online education.
- Go to https://canvas.tue.nl/courses/13638 for digital lectures!
- (Wed 4-Mar). We have made an Installation Guide to help you run the notebooks on your own machine.
- (Fri 28-Feb). A PDF booklet of lessons 0 through 12 is now available for download.
- (Sat 22-Feb). Exercises without and with solutions for the fundamentals block are up! Next week no classes (carnaval). See you on Monday 2-March!
In principle, you can download all needed materials from this site.
Please download the following books/resources:
- Christopher M. Bishop (2006), Pattern Recognition and Machine Learning. You can also buy a hardcopy, e.g. at bol.com.
- Ariel Caticha (2012), Entropic Inference and the Foundations of Physics
The Fundamentals and Advanced Materials lectures (see below) are taught by Bert de Vries. The Probabilistic Programming minicourse is taught by Wouter Kouw and the What is Life? lecture is presented by Magnus Koudahl.
The source files for the lecture notes are accessible at github. For help with installing Julia and Jupyter, see this pdf.
Here is a PDF bundle of the lecture notes of lessons 0 through 12. The lecture notes may change a bit during the course, e.g., to process comments by students. A final PDF version will be posted after the last lecture.
You can view the lecture notes online through the links below:
- 0 - Course Outline and Administrative Issues
- 1 - Machine Learning Overview
- 2 - Probability Theory Review
- 3 - Bayesian Machine Learning
- 4 - Continuous Data and the Gaussian Distribution
- 5 - Discrete Data and the Multinomial Distribution
- 6 - Regression
- 7 - Generative Classification
- 8 - Discriminative Classification
- 9 - Latent Variable Models and Variational Bayes
- 10- Factor Graphs
- 11- Dynamic Models
- 12- Intelligent Agents and Active Inference
Minicourse Probabilistic Programming
- 13- Linear Regression & Classification
- 14- Gaussian Mixture Model
- 15- Hidden Markov Model
- 16- Kalman Filtering
Each year there will be two written exam opportunities. Check the official TUE course site for exam dates.
In preparation for the exam, we recommend that you work through the following exercises:
Please feel free to consult the following matrix and Gaussian cheat sheets (by Sam Roweis) when making exercises.
Note however that you cannot bring notes or books to the exam. All needed formulas are supplied at the exam sheet.
Prerequisites for this course: Mathematical maturity equivalent to undergraduate engineering program. Scientific programming skills (e.g. in Python, MATLAB or Julia) are helpful.
You’re advised to bring the lecture notes (either in soft- or hardcopy) with you to class in order to add your personal comments.
Here you can find a guide to help you install Julia and Jupyter, so that you can open and run the course notebooks on your own machine.