Scalable Machine Learning

This module will focus on technologies and algorithms that can be applied to data at a very large scale (e.g. population level). From a theoretical perspective it will focus on parallelisation of algorithms and algorithmic approaches such as stochastic gradient descent. There will also be a significant practical element to the module that will focus on approaches to deploying scalable ML in practice such as SPARK, programming languages such as Python/Scala and deployment on high performance computing platforms/clusters.

Instructor: Dr. Shuo Zhou and Dr. Robert Loftin

Term: Spring

Location: Broad Lane Block, Lecture Theatre 03 (Lecture), and Diamond, Computer Room 06 (Labs)

Time: Mondays, 11:00 AM-12:00 PM (Lecture), and Tuesdays, 11:00 AM-1:00 PM (Labs)

Course Overview

By the end of the unit, a student will be able to:

  • understand the theoretical, including mathematical, principles and wider context underpinning scalable machine learning;
  • understand practical parallelization of algorithms and algorithmic approaches using such techniques as stochastic gradient descent;
  • deploy a practical implementation of ML at scale, using SPARK, and programming languages such as Python/Scala;
  • undertake deployment onto high performance computing platforms/clusters.

Textbooks

  • “Probabilistic Machine Learning: A Probabilistic Perspective” by Kevin P. Murphy

Grading

  • Assignments: 40%
  • Exam: 60%

Schedule

Week Date Topic Materials
1 Feb 8 Intro to Spark and HPC
2 Feb 15 Spark RDD, DataFrame, ML pipeline, and parallelisation
3 Feb 22 Scalable Logistic Regression
4 Mar 1 Scalable Generalized Linear Models