## Introduction to Machine Learning

### Module aims

This module aims to provide students with a fundamental understanding of core machine learning ideas and concepts. It introduces different machine learning problems and basic algorithms used to address these problems. The module will cover fundamental machine learning knowledge required to tackle more advanced, specialised modules.

### Learning outcomes

By 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 machine learning algorithms.
- Implement algorithms to solve machine learning 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) Machine Learning Concepts:
Definition and taxonomies, Supervised learning pipeline (classification/regression), Feature encoding, Model learning, Bias-variance tradeoff.
2) Instance Based Learning and Inductive Learning:
K-nearest neighbours, Locally weighted regression, 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, Activation and error functions, Overfitting, Data normalization, Hyper-parameter tuning.
5) Unsupervised Learning:
Clustering algorithms (K-means), Models for density estimation (Kernel Density, Gaussian and Gaussian Mixture Models).
6) Evolutionary Algorithms:
Genetic algorithms, Evolutionary strategies, Novelty search, Quality-Diversity optimisation.

### Teaching methods

The module is taught through lectures, practical exercises and quizzes to reinforce what has been taught in lectures, and computer-based coursework exercises done during lab sessions. The coursework exercises are in the form of mini-projects in which students will apply the methodology seen in class to solve machine learning problems.

### Assessments

There will be 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 provide feedback. There will be detailed feedback on the coursework exercises which will include written feedback on submissions and class-wide feedback explaining common pitfalls and suggestions for improvement.