Aims:

To give a detailed understanding of topics related to efficient implementation of large-scale machine learning with a focus on optimisation in both linear and non-linear machine learning models. Students will also gain experience in tackling real world problems through solving online machine learning challenges. A key aim is that students understand the challenges of optimisation and associated time and space complexities of various approaches.Learning outcomes:

On successful completion of the module, a student will be able to:

Understand practical issues arising in implementing machine learning in practice, including engineering challenges as well as the data ethics considerations.
	Become familiar with techniques used in practice to solve real world machine learning problems and will be able to apply these techniques.
Content:

Methods for solving Large Scale Linear Systems, including Conjugate Gradients.
	Classical methods for Regression and Classification including linear and logistic regression.
	Clustering Methods for Unsupervised Learning.
	Fast Nearest Neighbours.
	Matrix and Tensor Factorisation.
	Visualisation methods including tSNE.
	Ensembling, Gradient Boosting Machines.
	Data Ethics; Fairness in Machine Learning.
Requisites:

To be eligible to select this module as an optional or elective, a student must: (1) be registered on a programme and year of study for which it is formally available; (2) have an understanding of and abilities with Linear Algebra, Multivariate Calculus and Probability at mathematics FHEQ Level 4 or above; (3) have familiarity with coding a high-level language in order to complete assessments (strongly recommend that students are skilled in Python); and (4) have taken Introduction to Machine Learning (COMP0088) or Supervised Learning (COMP0078) in Term 1.

Note that it is also recommended to have taken Graphical Models (COMP0080) or Probabilistic and Unsupervised Learning (COMP0086) in Term 1. This module is not an introduction to machine learning.