Introduction to Machine Learning

Module aims

Machine learning aims to automatically create prediction models and make decisions by leveraging data. The current applications of machine learning range from speech recognition to autonomous cars. New applications continue to appear every day. This Introduction to Machine Learning module aims to provide an overview of the different types of problems that exist in machine learning and the basic algorithms used to address them. In particular, this module covers the fundamental knowledge required to comprehend the advanced methods needed for specialised modules.

Learning outcomes

At the end of the module you will be able to:
- Evaluate the strengths and weaknesses of machine learning algorithms.
- Appraise the suitability of a machine learning algorithm to solve a given problem.
- Formulate appropriate methodologies to evaluate the accuracy and robustness of machine learning algorithms.
- Implement machine learning algorithms to solve classification and regression problems.
- Develop predictive models with machine learning algorithms.
- Design unsupervised clustering programs based on machine learning algorithms.

Module syllabus

This module covers the following topics:

1) Instance Based Learning:
K-nearest neighbours, Locally weighted regression.

2) Inductive Learning:
Decision trees.

3) Model Evaluation and Comparison:
Training/validation/test data splits, Cross-validation, Evaluation metrics, Confidence intervals, Statistical significance.

4) Neural Networks:
Perceptron, Multilayer perceptron, Back-propagation, Stochastic gradient descent/Mini-batch, Activation and error functions, Overfitting (regularization, data augmentation), Data normalization, Hyper-parameter tuning.

5) Unsupervised Learning:
Clustering algorithms (K-means), Parametric models for Density Estimation (Gaussian and Gaussian Mixture Models).

6) Genetic Algorithms:
Genotype/phenotype/behavior definitions, Selection and Elitism, Crossover, Mutation, Neuro-evolution, Evolutionary strategies.

Teaching methods

The objective of this module is to provide the fundamental tools needed to address traditional problems in machine learning, such as classification, regression and unsupervised clustering. The material is taught through lectures and computer-based coursework exercises done during lab sessions. These coursework exercises are in the form of mini-projects in which students will apply the methodology seen in class. This module will cover the machine learning algorithms and evaluation methodology required to harness more advanced approaches. 


There will be two computer-based coursework exercises that contribute 30% of the marks for the module. In these coursework exercises, students will implement machine learning algorithms to solve practical problems. There will be a final written exam, which counts for the remaining 70% of the marks.        

During the weekly lab sessions, teaching assistants and lecturers will be available to answer questions and give feedback. There will be detailed feedback on the two coursework exercises which will include written feedback on submissions and class-wide feedback explaining common pitfalls and suggestions for improvement.               

Reading list

Core reading

Supplementary reading

Module leaders

Dr Marek Rei
Dr Josiah Wang
Dr Antoine Cully