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 |