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 analyse, 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.
I don't want to specialise, but I feel I need to learn something about machine learning. What should I do?
Machine learning is a very popular area right now and can be useful in other areas of Informatics, but you shouldn't feel you must do it just because others are. If you do want to learn a bit about it, we recommend one of two options:
1. Take Introductory Applied Machine Learning, which provides a general background and introduction to the common tools and methods. Please check that you satisfy the mathematical and programming requirements first.
OR
2. Take one or more of the courses listed under "Applications and related areas" below. Although they don't have "machine learning" in the title, most of these courses will introduce you to some basic machine learning methods and how they apply to a particular domain.
How can I best prepare for this specialist area?
Maths
Machine learning uses several universitylevel 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 selfassessment, 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.
Machine Learning and Pattern Recognition (MLPR)
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.
Programming
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 matrixbased 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.
Machine Learning and Pattern Recognition (MLPR)
Machine Learning Practical (MLP)
Introductory Applied Machine Learning (IAML)
What courses should I take?
For this specialist area, we recommend taking at least 50 credit points from the courses listed below. At least 30 credits should be from the "Foundations and methods" list. In addition, we recommend taking at least 20 credits from either "Applications and related areas" or "Algorithms and infrastructure". These courses will broaden your knowledge of how machine learning relates to other areas, and may also help you by providing more flexibility when it comes to choosing a dissertation topic.
Foundations and methods
We recommend taking at least two of these courses, including either Introductory Applied Machine Learning or Machine Learning and Pattern Recognition. Guidance on how to choose between these courses is provided in the notes at the bottom of this page, but please click on the course links 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 

Introductory Applied Machine Learning (20 credits) OR Machine Learning and Pattern Recognition (20 credits) 
Probabilistic Modelling and Reasoning (20 credits)

Machine Learning Practical (20 credits, full year) 
Applications and related areas
These courses provide examples of domains where machine learning concepts and methods are applied. Many of these courses discuss specific machine learning models relevant to that domain. Some courses are more engineeringfocused while others explore ways to apply machine learning and related computational models to scientific questions.
We recommend taking at least 20 credits from this list or the Algorithms list below, and students interested in applied machine learning or data science may do more. Note that several application areas have twocourse sequences. In most cases it is recommended, but not required, that you take the first course in the sequence if you want to take the second one. In some cases the first course is strictly required as a prerequisite. Click on the course links to check the "prerequisites" and "other requirements" sections of the course descriptors for details. You can also find more information about some of these course in their specialist area pages.
Area  Semester 1  Semester 2 

biological data  Bioinformatics 1  Bioinformatics 2 
computer vision  Image and Vision Computing  Advanced Vision 
natural language processing 
Accelerated Natural Language Processing (20 credits)
Text Technologies for Data Science (20 credits, full year) 
Foundations of Natural Language Processing (level 9) Natural Language Understanding, Generation, and Machine Translation (20 credits)

mind and brain 
Computational Cognitive Science (level 10) 

robotics  Robotics: Science and Systems (20 credits) 
Robot Learning and Sensorimotor Control (20 credits) 
other  Social and Technological Networks 
Artificial Intelligence, Present and Future 
Algorithms and infrastructure
These courses cover intermediatelevel knowledge of algorithms and data structures, as well as more advanced methods for optimisation and dealing with big data, all of which can potentially be useful for the research and practice of machine learning. Click on the course links to check the "other requirements" in the descriptor of each course to be sure you have the appropriate background for these courses.
Semester 1  Semester 2 

Algorithms and Data Structures (level 10) 
Further optional courses
You could also 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.
Statistics with Data Science MSc
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.
Notes on "foundations and methods" 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 nonCS 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.
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.
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. But please note that it is not a standalone introduction to machine learning, and also assumes familiarity with the maths commonly used in machine learning as well as prior programming experience. If you don't have prior machine learning experience or have little programming background it will move very quickly and be very timeconsuming. You might do better to plan on taking an alternative applications course that includes considerable material on neural networks starting in semester 2 (e.g., NLU+ or ASR).
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 reevaluate at the beginning of Semester 2 whether you should take PMR.
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 highprofile successes at Google DeepMind.
Remember the specialist areas are advisory. You do not have to take any of these courses, and it is better to select more courses from the application areas list or from another specialist area if you do not have the mathematical background.
Related links
Informatics sortable course list
Informatics course timetable