Machine Learning

Information on the specialist area Machine Learning.

What will I learn from this specialist area?

Increasing amounts of data are being captured, stored and made available electronically. The aim of the Machine Learning specialist area is to train students in techniques to analyze, interpret and exploit such data, and to understand when particular methods are suitable and/or applicable. Machine learning techniques include probabilistic and statistical modelling, pattern recognition and neural networks, and exploratory analysis or data mining. The specialist area will prepare students for entry into PhD programmes or for employment in commercial environments and/or scientific/engineering research.

For more background, see a video introduction to the specialism (.mp4). The introduction was recorded in 2013 when the specialism was called “Learning from Data”. Some of the courses mentioned at the very end of the video have been replaced.

How can I best prepare for this specialist area?


Machine learning uses several university-level mathematical tools, in particular linear algebra, multivariate calculus, and probability theory. Without a reasonable level of fluency in these tools, it is not possible to understand advanced material or do research in the field (e.g., see papers at NIPS, PMLR, or JMLR).

The background section of the notes for Machine Learning and Pattern Recognition (MLPR) gives more detail, a self-assessment, and pointers to reading. It is in your interest to be honest with yourself: if the level of background is too great to prepare, then take alternative courses.

If you click on any of the course links below you may find a list of maths requirements in the "other requirements" box of the course descriptor.


You will need to be able to write programs that handle matrices and vectors, with an appropriate tool such as NumPy or Matlab. If you haven't programmed with a matrix-based language or library before, we recommend you practice with one as much as you can before you arrive. The background section of the notes for Machine Learning and Pattern Recognition (MLPR) gives possible starting points for Python and Matlab/Octave. Several courses in the school will use Python and NumPy in particular, such as Machine Learning Practical (MLP) and Introductory Applied Machine Learning (IAML). As long as you are already fluent in some programming language (such as Java or C++), you should be able to pick up what's required.

What courses should I take?

Students registered in this Specialist Area are recommended to select at least fifty credit points from the courses listed below, including a subset of the core courses as discussed below.

The notes below provide a rough guide to the background required for each course, but please click through to check the "other requirements" in the descriptor of each course to be sure it is suitable for you. You won't need to select your courses until after you arrive, and will be able to discuss your choices with your Personal Tutor.


Semester 1 Semester 2
Core Courses

Machine Learning and Pattern Recognition (20 credits)

OR Introductory Applied Machine Learning (20 credits, level 10)

Probabilistic Modelling and Reasoning (20 credits)

Machine Learning Practical (20 credits, full year)

Optional Courses

Bioinformatics 1

Extreme Computing

Social and Technological Networks

Text Technologies for Data Science (20 credits)

Advanced Vision

Bioinformatics 2

Computer Animation & Visualisation

Data Mining and Exploration

Decision Making in Robots and Autonomous Agents

Neural Information Processing

Randomness and Computation

Reinforcement Learning


Notes on core courses

Machine Learning and Pattern Recognition (MLPR) is a course on some of the core principles of machine learning. It is introductory in the sense that it does not assume any prior machine learning experience. However, there are enough materials to stretch most of those with some machine learning background. It is accessible to those with non-CS backgrounds as long as you have done some programming before. Those from physics, engineering, or maths backgrounds are usually fine. However, the course does assume you are comfortable using linear algebra, calculus, and probability theory, which will all be used in combination. MLPR course materials.

Introductory Applied Machine Learning (IAML) covers some of the same material as MLPR, but with more focus on practical application of existing methods, than the mathematical construction and principles of the methods. If you do not have the mathematical background for MLPR, please attend IAML instead where mathematical proficiency is less critical. We recommend you pick only one of IAML and MLPR, but you could attend both in the first week if unsure. IAML course materials.

Machine Learning Practical (MLP) is focussed on the implementation and evaluation of some particular machine learning methods — this year deep neural networks. Most students specialising in machine learning should take this course. If you don't have prior machine learning experience it moves quickly, and you should take IAML or MLPR as well. This course also assumes familiarity with the maths commonly used in machine learning, and assumes prior programming experience. MLP course materials.

Probabilistic Modelling and Reasoning (PMR) covers the foundations of probabilistic modelling in a machine learning context. PMR has similar mathematical requirements to MLPR, but can still be taken after either IAML or MLPR. You can re-evaluate at the beginning of Semester 2 whether you should take PMR. PMR course materials.

Remember the specialist areas are advisory. You do not have to take the core courses, and it is better to select more courses from another specialist area if you do not have the mathematical background.

Notes on optional Informatics courses

Data Mining and Exploration (DME) looks at practical issues in data science, more broadly than the Machine Learning Practical course. Recommended for those taking IAML/MLPR and PMR.

Reinforcement Learning (RL) is an area of machine learning that has become increasingly active over the past few years, e.g., with high-profile successes at Google DeepMind.

Randomness and Computation (RC) is a theory course (more mathematical derivations and proofs than MLPR and PMR), which could be useful background for those interested in the theoretical end of machine learning.

You can also consider taking courses in the databases specialism, as in your working life it will often help you to know the theory behind databases.

Extreme Computing (EXC) and Text Technologies (TTDS) courses are both especially popular and relevant. The Social and Technical Networks course is another course that is relevant to a lot of the types of modern applications used in machine learning.

Then fill out your programme with courses in other research areas that apply machine learning, such as natural language processing, speech processing, bioinformatics, computer vision, graphics, or robotics. See also the courses listed in related specialist areas.

Notes on optional external courses

You could consider the courses from the Statistics with Data Science MSc, especially if you are looking for additional theoretical background for (e.g.) PhD study. As this MSc is hosted in the School of Mathematics, these options are for those with a very strong mathematical background. You can also consider optional external courses in related specialisms.

Register as early as possible for external courses (in induction week). They can have limited numbers, earlier deadlines than Informatics, and course materials on Learn are only available after registering.


Related links

Informatics sortable course list

Informatics course timetable