Topic outline

  • Announcements

  • Lecture Notes & ML Booklet

    • Below you can find the lecture notes taken in class.

      Additionally, you can find the booklet, written by Prof. Martin Benning, covers the main topics from "ML with Python" (MTH786) and "Advanced ML" (MTH793). 

      The exact topic selection, as well as the some of the approaches and notations, could be different than what will be covered in class. Therefore, this booklet should be considered as an additional useful resource to this module, but not as a replacement to the lectures.


  • Week 1: Introduction & semi-supervised binary classification with graphs

  • Week 2: Unsupervised Binary Classification With Graphs & Clustering

  • Week 3: K-means Clustering & Gaussian Mixture Models

  • Module Description

    • This module mainly focuses on unsupervised learning.

      We will cover a range of models and methods useful in practical applications.

      We will explore both the mathematical foundations and the use of these methods in practice (in Python).

  • Week 4: Spectral Clustering

  • Week 5: Evaluating Clustering Methods & Intro to Matrix factorisation

  • Week 6: SVD & PCA

  • Week 7: PCA & Robust PCA

  • Week 8: Robust PCA

  • Week 9: Review

  • Week 10: Matrix Completion & Neural Networks

  • Easter

  • Syllabus

    • Module Syllabus

      Lecture 1: Introduction, Semi-supervised binary classification with graphs;

      Lecture 2: Unsupervised binary classification with graphs, introduction to clustering;

      Lecture 3: K-means clustering, Gaussian mixture models;

      Lecture 4: Spectral clustering;

      Lecture 5: Evaluating clustering methods, introduction to matrix factorisation;

      Lecture 6: Singular value decomposition (SVD), principal component analysis (PCA);

      Lecture 7: principal component analysis (PCA);

      Lecture 8: Robust PCA;

      Lecture 9: Matrix Completion, review of neural networks;

      Lecture 10: Autoencoders, introduction to PyTorch;

      Lecture 11: Revision class.




  • Module aims and learning outcomes

    • The  main intended outcomes for this module are to:

      1. Understand the main concepts in unsupervised learning.

      2. Explore fundamental models and methods, and the underlying mathematical framework.

      3. Gain experience implementing and using unsupervised learning algorithms, on synthetic and real data

  • Assessment information

    • Assessment Pattern -  40% mid-term exam, 60% final project.


      Format and dates for the in-term assessments - On campus, 2 hour written exam, date:  Friday 22/3/24,  14:00 (week 9).

      The exam will focus on the theoretical aspects of the first 8 weeks of the module, and will be based on the theoretical exercises in the coursework as well as questions addressed in the lectures. Many students might be surprised by the theoretical focus of the midterm exam. Do not fall for this trap! Passing the course requires acquiring both a theoretical and a practical understanding of the material and the former will be examined in this midterm exam. 

      Link to past papers - past exams repository (note that these are final exams, and not all topics will be covered in the midterm. If you're not sure about a specific problem or topic, ask me).

      Format of final assessment - practical coding project, to be submitted via QM+ by Friday 31/5/24, 17:00Upload instructions will be provided in advance. It involves the practical solution of multiple problems with Python, along with written explanations. More details will provided after the first assessment.

      Anyone who fails the module will resit the individual test(s) they have failed.


  • Teaching team

      • Lecturer: Dr. Omer Bobrowski
      • Email: o.bobrowski@qmul.ac.uk
      • Office: SMS building, room MB-B11
      • Office hours: Wednesdays 12:00-13:00 (or by appointment)

  • Coursework

    • Coursework will be posted nearly every week.
      Some of the assignments will be written ones, and contains problems in a similar spirit to the mid-term exam.
      Other assignments will involve Python coding (via Jupyter notebook).
      You do not have to submit the assignments, and they will not be marked.
      However, if you have any questions about them, you are encouraged to ask.
      We will review parts of the assignments during the tutorials.
  • Mid-term exam

    The mid-term exam will take place on week 7,  Date: --- TBD ---

    Check the official timetable of the module for information about the location of the exam.

    The exam will be 2 hours long, and closed books. 

    A repository of past exams is available below.


  • Week 12: Autoencoders & PyTorch

  • Q-Review

  • Early feedback questionnaire

  • Final project

  • Online Reading List