Bayesian Machine Learning:
Graphical Models and Approximate Inference
Summer Semester 2009

Lecturer

Matthias Seeger

Registration and Grading

Course graded with six credit points. Requirements are here.

Time and Place

Please see detailed list below for deviations from these rules.

ATTENTION: Date change of lecture: Friday 8:30am-10am now (8:30am strict), to avoid overlap with Prof. Weickert's lecture.

Teamwork is OK for solving the exercises, as long as there is only two persons per group, and each of you thought about each of the exercises (it is not OK to just halve the work). If you do this, please hand in one solution, not two copies.

Motivation

Graphical models, and associated information propagation algorithms, have had an enormous impact in a wide range of applications and fields of algorithmic development. A certainly incomplete list: Amazingly, most of these approaches can be understood from the same underlying umbrella framework, and a rather limited number of computational primitives appear over and over again (if you know how to spot them). This basis, and many connections between seemingly unrelated methods, are well understood today, and will be the subject of this course.

The relevance of probabilistic or Bayesian Machine Learning is likely to grow in the future, with more and more problems being approached the way humans do it. Apart from the general good press of artificial intelligence, adaptive, intelligent, predictive approaches will simply be demanded by way of growing pressures for simplification and cost reduction. At their heart, adaptive techniques have to reason about and calculate with uncertainty. In this course, we will explore one of the most far-reaching uncertainty calculi (Bayesian Statistics), its rules, mechanics, basic models and algorithms, and obtain insight in several of its key applications today.

Goals

In this course, we will cover basics of Bayesian Machine Learning. In Bayesian Statistics, uncertainty is managed as probability distributions, which are manipulated by rules of probability. For problems of Machine Learning interest, this calculus can seldomly be executed exactly, but a range of approximation techniques are available today. I will introduce graphical models, a graphical description language for probabilistic dependencies, and motivate how these models lead to computational savings for inference via dynamic programming. I will also discuss a number of inference approximation techniques, foremost variational relaxations, for models used in computer vision, imaging, speech recognition, bio-informatics, information transmission, or probabilistic expert systems.

The course will not be comprehensive, but will provide a solid overview. I aim to show up connections between ideas, and to convey basic understanding, pointing out further literature as I go. A major goal will be to show how ideas and algorithms are grounded on traditional computational disciplines, such as graph theory, convex optimization, numerical optimization, and classical estimation theory.

Background

While the course will be somewhat self-contained, you should have a good grasp of linear algebra and continuous mathematics (calculus). Prior exposure to probability theory and numerical optimization is helpful. The main prerequisite is motivation, not just to play around with data using some black boxes, but to try to understand, as far as possible, what is going on inside.

There will be some practical exercises in Matlab. If you did not work with Matlab before, there are helpful tutorials on the web, for example here.

Organisatorial Details

Course email address bayesml09lecture ADDD googlemail DDOT com (just speak it without the stutter)
Course mailbox Box of Matthias Seeger, MPI E 1.4, Room 202

There will be lectures and tutorials. After most lectures, assignments will be made available, for electronic download here. Briefly, you will be awarded exercise points for handing in correct solutions to these assignment. You are allowed to take part in the final course examination, if you attain 60 percent or more of the total exercise points, otherwise you are not. In order to gain credit points (different from exercise points), you have to take part in the final examination and pass it. Since there will be no script, and I will use the blackboard, attendance at the lectures is strongly recommended. The final examination will be oral or written, depending on the number of participants. The type of final examination will be disclosed no earlier than after lecture 8, and no later than two weeks before the end of semester. For more details, read on.

Teamwork: You may form teams of two people for doing the exercises, if that does not mean that you simply split up the work. Each of you should have thought about each of the exercises. In fact, if you did solve them together (two people, no more), then do not hand in two different sheets, but just one.

Each assignment has a due date, typically the subsequent lecture, sometimes you have more time. There are pencil/paper exercises and programming exercises. For the former (there will be more of these), you can hand in written pages (to me before lecture, or to course mailbox; legible please), or you can send pdf or ps files to the course email address. Whatever you do, always mark everything (every page) with your name and matriculation number.
For the programming exercises, you will have to use Matlab. The course will not include any Matlab tutorial. Solutions to programming exercises have to be sent to the course email address. Instructions about format will be given with the first programming exercise. But in general, make sure that every mail contains your name and matriculation number in the subject header.

Exercise sheets will be marked, and returned in general in the first tutorial session after the due date (unless otherwise said). In these sessions, we will work out correct solutions for pencil/paper exercises together. I will not distribute or upload written solutions, so please come to these sessions. The tutorial sessions will also be used to reiterate the corresponding lecture material. Programming exercises will not be discussed in the tutorials, except you asking me questions. Your solutions will be tested by applying them to data, using a protocol that will be explained in detail together with the first programming exercise.

I will be strict regarding a few points (for fairness):

Lectures

Date/time Location Slides. Assignments Additional material (optional)
24/4, 8:30am-10am s.t. MPII 024 Introduction. Basic Probability and Bayes
Slides. Assignment (due 05/5)
05/5, 4pm-6pm c.t. MPII 023 Graphical Models. Belief Propagation
Slides. Assignment (due 15/5).
Programming assignment (due 29/5).
Test tree networks
08/5, 8:30am-10am s.t. MPII 024 Gaussian Distributions
Slides. No assignment
15/5, 8:30am-10am s.t. MPII 024 Essential Numerical Mathematics. Vector Calculus
Slides. Assignment (due 22/5).
Handout CG Algorithm
22/5, 8:30am-10am s.t. MPII 024 Basic Latent Variable Models
Slides. Assignment (due 29/5)
29/5, 8:30am-10am s.t. MPII 024 Learning and Inference. EM Algorithm
Slides. Assignment (due 05/6)
05/6, 8:30am-10am s.t. MPII 024 Dynamic State Space Models
Slides. Assignment (due 12/6)
12/6, 8:30am-10am s.t. MPII 024 Information Theory. First Variational Approximation
Slides. Assignment (due 26/6)
22/6, 2pm-4pm c.t. E 1.3, SR 016 Variational Inference Relaxations
Slides. No assignment
26/6, 8:30am-10am s.t. E 1.3, SR 015 (not MPII 024!) Loopy Belief Propagation
Slides. Assignment (due 03/7).
Handout LBP and Bethe free energy
03/7, 8:30am-10am s.t. MPII 024 Convex Inference Relaxations. LP Relaxations
Slides. Assignment (due 10/7)
10/7, 8:30am-10am s.t. MPII 024 Continuous-Variable Models
Slides. Assignment (due 17/7)
17/7, 8:30am-10am s.t. MPII 024 Super-Gaussian Bounding. Expectation Propagation
Slides. Assignment (due 24/7).
Handout: Fixed Points of EP
24/7, 8:30am-10am s.t. MPII 024 Large Scale Algorithms. Sampling Optimization for Image Reconstruction
Slides. No assignment

Tutorials

12/5, 4pm-6pm c.t. MPII 023 Solution Assignment 24/4
19/5, 4pm-6pm c.t. MPII 023 Solution Assignment 05/5
26/5, 4pm-6pm c.t. MPII 023 Solution Assignment 15/5
02/6, 4pm-6pm c.t. MPII 023 Solution Assignment 22/5
09/6, 4pm-6pm c.t. MPII 023 Solution Assignment 29/5
23/6, 4pm-6pm c.t. MPII 023 Solution Assignment 05/6
30/6, 4pm-6pm c.t. MPII 023 Solution Assignment 12/6
07/7, 4pm-6pm c.t. MPII 023 Solution Assignment 26/6
14/7, 4pm-6pm c.t. MPII 023 Solution Assignment 03/7
21/7, 4pm-6pm c.t. MPII 023 Solution Assignment 10/7
28/7, 4pm-6pm c.t. MPII 023 Solution Assignment 17/7

Literature

There is no single book to cover the range of topics discussed in this lecture. I will give references as I go. Some useful books are:
Some papers that may be helpful:
Links to software and tutorials for software:
Here are some sites with further information, links, and references: