# 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 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 - 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, 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 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** Introductory 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 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:**

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.

Introductory Applied Machine Learning (IAML) (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 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.

**Semester 2:**

Probabilistic Modelling and Reason (PMR) (not delivered in 2020/21)

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.

Data Mining and Exploration (DME) (10 credits):

DME looks at practical issues in data science, more broadly than the Machine Learning Practical course. Recommended for those taking IAML or MLPR .

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

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