BLACKBOARD PAGE | UNIT INFO |

COMS30035 - Machine Learning


News

Unit Information

This unit seeks to acquaint students with machine learning algorithms which are important in many modern data and computer science applications. We cover topics such as kernel machines, probabilistic inference, neural networks, PCA/ICA, HMMs and emsemble models.


Staff

James Cussens (JC)
Edwin Simpson (ES)

Note: For any questions please ask in the appropriate Teams channels or directly to us using Teams chat.


Teaching Assistants

Will Greedy, Amarpal Sahota, Zhijin Guo, James Ward, Henry Bourne, Henry Addison, Carla Rosario


Unit Materials

Weeks Tuesday lecture, 1500-1600, Queens 1.15 Thursday lab, 0900-1200, MVB 2.11 Friday lecture, 0900-1000, Queens 1.15
1 Introduction
[stream]Machine learning concepts
[stream]
L1: Revision of Jupyter Notebook, ML libraries and regression. [answers] Revisiting regression [stream],
Classification and neural networks [stream]
2 Kernel machines L2: Classification, nnets and SVMs. [answers] Introduction to graphical models
3 Bayesian ML using graphical models L3: Probabilistic graphical models [answers] k-means and mixtures of Gaussians
4 The EM algorithm L4: k-means and EM [answers] PCA
5 ICA L5: PCA and ICA [ answers] Seqential data
6 Reading week
7 Sequential data L6: Hidden Markov Models Sequential data
  • [Linear Dynamical Systems, stream]
  • [Quick Visual example of an LDS, stream]
  • Combining models
    8 Combining models L7: Trees and Ensemble methods Combining models Crowdsourcing and Datasets
    9-11 Coursework weeks
    12 Review week

    Assessment Details


    Lab Work

    The labs are formative assessements which we strongly encourage you to complete. Note that these were designed to help your understanding of ML methods.

    Using the machines in MVB 2.11

    Most (not all) of the software we use in this unit is supplied as Python packages bundled with the Anaconda Python package manager. If you are using the machines in MVB 2.11 to do the lab exercises (as opposed to using your own machine) you need to do the following to start using Anaconda.

    1. Make sure the machine you are using is running Linux (reboot if necessary).
    2. Open up a Terminal window so you have access to the Linux command line.
    3. Enter the following at the command line: module load anaconda
    4. Enter the following at the command line: conda init
    5. The conda init command alters the .bashrc file in your home directory to ensure that you are using the version of Python provided by Anaconda (have a look at that file if you want). To get the changes in .bashrc to take effect the easiest option is just to kill your terminal window and start up a new one; so do that.
    6. Once you have a new terminal you should notice that your prompt has changed to include the text (base) that indicates which Anaconda environment is currently active.

    Using your own machine

    If you want to do lab exercises on your own machine then you should install Anaconda on it. If you run into installation problems then feel free to ask the Teaching Staff on the unit for help, but we can't guarantee to solve them.

    Text books

    1. Bishop, C. M., Pattern recognition and machine learning (2006). This is one of the best ML textbooks and will be our main textbook. The book is freely available here.
    2. Murphy, K., Probabilistic Machine Learning: An Introduction (2022) and Murphy, K., Probabilistic Machine Learning: Advanced Topics (2023). We will also use this book series for some topics. These are more recent textbooks and provide a particularly good coverage of probabilistic methods. The books are freely available via here.

    Github

    All technical resources will be posted on the COMS30035 Github organisation. If you find any issues, please kindly raise an issue in the respective repository.