Machine Learning 4f13 Lent 2010

Keywords: Machine learning, probabilistic modelling, graphical models, approximate inference, Bayesian statistics

Taught By: Zoubin Ghahramani and Carl Edward Rasmussen

Code and Term: 4F13 Lent term

Year: 4th year (part IIB) Engineering, also open to MPhil and PhD students in any Department.

Structure & Assessment:14 lectures, 2 coursework revisions, 4 pieces of course work. The evaluation is by coursework only, all four pieces of course work carry an equal weight. There is no final exam.

Time: 10:00 - 11:00 Wednesdays and 10:00 - 11:00 Thursdays.

Location: Lecture Room 12 (LR12), Engineering Building, Trumpington Street, Cambridge

Prerequisites: A good background in statistics, calculus, linear algebra, and computer science. 3F3 Signal and Pattern Processing and 4F10 Statistical Pattern Processing would both be useful. You should thoroughly review the maths in the following cribsheet [pdf] [ps] before the start of the course. The following Matrix Cookbook is also a useful resource. If you want to do the optional coursework you need to know Matlab or Octave, or be willing to learn it on your own. Any student or researcher at Cambridge meeting these requirements is welcome to attend the lectures. Students wishing to take it for credit should consult with the course lecturers.

Textbook: There is no required textbook. However, the material covered is treated in:

Christopher M. Bishop (2006) Pattern Recognition and Machine Learning. Springer

and we will provide references to sections in this book. Another excellent textbook is:
David J.C. MacKay (2003) Information Theory, Inference, and Learning Algorithms, Cambridge University Press, available freely on the web.

For a summary of the topics covered in this module you can read the following chapter:
Ghahramani (2004) Unsupervised Learning. In Bousquet, O., Rätsch, G. and von Luxburg, U. (eds)
Advanced Lectures on Machine Learning LNAI 3176. Springer-Verlag.
NOTE: If you want to see lecture slides from a similar but not identical course taught last year click on the Lent 2009 course website, but be warned that the slides will change this year.



Jan 14     Introduction to Machine Learning(1L): review of probabilistic models, relation to coding terminology: Bayes rule, supervised, unsupervised and reinforcement learning Lecture 1 slides
Jan 20, 21 Unsupervised learning (2L): factor analysis, PCA, the EM algorithm Lecture 2 and 3 slides
Jan 27, 28, Feb 3, 4 Graphical Models (4L): conditional independence, Belief Propagation Lecture 4: Graphical Models
Lecture 5: Inference in Graphical Models
Lecture 6: Learning in Graphical Models
Feb 10, 11 Monte Carlo Methods (2L): simple Monte Carlo, rejection sampling, importance sampling, Metropolis, Gibbs sampling and Hybrid Monte Carlo.

Good introductions to Monte Carlo methods are contained in MacKay's book, chapter 29 or Bishop's book, chapter 11.

Download a few demo matlab scripts showing different sampling methods.
Lecture 7 and 8 slides
Feb 17, 18 Variational approximations (2L): KL divergences, mean field, expectation propagation Lecture 10 and 11 slides
Feb 24, 25 Model comparison (1L): Bayes factors, Occam's razor, BIC, Laplace approximations. Lecture 12 and 13 slides
Mar 3, 4 and 10 Reinforcement Learning, Decision Making and MDPs (3L): value functions, value iteration, policy iteration, Bellman equations, Q-learning, Bayesian decision theory Lectures 14, 15 and 16 slides


Course work is to be handed in to Rachel Fogg in Baker BNO-37 no later than 4pm on the date due. Each of the four pieces of course work carry an equal weight in the evaluation.

Assignment 1 on Message Passing in Factor Graphs was originally due on Feb 4th, but has been extended to Feb 10th 2010.

Assignment 2 on Gibbs Sampling is due on Feb 18th 2010.

You will need the following files images.jpg, Mstep.m, genimages.m and parameters.mat.

Assignment 3 on Variational Approximations is due on Feb 25th 2010.

Assignment 4 on Reinforcement Learning is due on March 10th 2010. You will need the follwing functions: rl.m, initGridworld.m, s2rc.m, rc2s.m and plotVP.m.