# Machine Learning

Course options and guidance for the Machine Learning topic area

## What will I learn from courses in this topic?

Increasing amounts of data are being captured, stored and made available electronically. Courses in this topic and the related topics listed below will 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.

## 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 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 - see 'Maths' section below.

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 courses in this topic?

### Maths

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.

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.

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. Most of the machine learning and AI courses in the School use Python, and array-based libraries such as NumPy or PyTorch. 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. 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 are available and how do I choose?

If you want to specialize in machine learning, we recommend taking at least 30 credits from the "Foundations and methods" list below. In addition, we recommend taking at least 20 credits from one of the lists of Related Topics (either "Applications" 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** Applied Machine Learning **or** Machine Learning and Pattern Recognition.

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 can select your courses before you arrive, and will be able to discuss your choices with your Student Adviser/Cohort Lead.

**Semester 1:**

- Machine Learning and Pattern Recognition (MLPR)(20 credits):

This 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.

- Applied Machine Learning (AML)(20 credits):

This course 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 AML instead where mathematical proficiency is less critical. You can **only take one** of AML or MLPR, not both. However, you could attend both in the first week to help you make your decision

**Semester 2:**

- Machine Learning Theory (MLT) (10 credits)

This course theoretically analyses fundamental properties of learning (e.g., accuracy, complexity) and socially relevant aspects of learning algorithms (privacy and fairness). As a theory course, it assumes a strong mathematical background.

- Methods for Casual Inference (MCI) (10 credits)

This course explores causal inference techniques that allow us to move away from merely associational statements and instead towards cause-effect statements. This is a relatively advanced course and students are expected to be familiar with foundations of probability, statistics, and calculus. Students that have been comfortable with the level of maths in MLPR in semester one will be fine with this course as well. PMR is a recommenced co-requisite.

- Probabilistic Modelling and Reasoning (PMR)(20 credits):

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 AML or MLPR. You can re-evaluate at the beginning of Semester 2 whether you should take PMR.

- Reinforcement Learning (RL)(10 credits):

This 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.

**Full year:**

- Machine Learning Practical (20 credits):

This course focusses on the implementation and evaluation of deep learning methods. Most students specialising in machine learning should take this course. But please note that it is not a stand-alone 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 time-consuming. 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 in the Natural Language Processing topic area).

## Related topics and courses: algorithms and infrastructure

These courses cover intermediate-level 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.

Databases and Data Management courses

Additional related courses:

- Natural Computing (10 credits, Semester 1)
- Algorithmic Game Theory and its Applications (10 credits, Semester 2)

## Related topics: machine learning applications

The following topics provide examples of domains where machine learning concepts and methods are applied, and courses in these topics discuss specific machine learning models relevant to that domain. Some courses are more engineering-focused while others explore ways to apply machine learning and related computational models to scientific questions.

Even if your main interest is core machine learning, we recommend taking at least 20 credits from this list or the Algorithms list above, and students interested in applied machine learning or data science may do more of these application courses. Note that several application areas have two-course 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. The topic pages below provide more details.

Cognitive Science and Neuroinformatics

Vision, Robotics, and Autonomous Agents

In addition, the following course discusses applications of AI more generally:

Case Studies in AI Ethics (CSAI) (10 credits, Semester 2)

### Additional options (maths and statistics)

You can also consider 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 stronger mathematical background.

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.