This module will follow on from the ideas and skills developed in Foundations of Machine Learning (INST0060), looking more deeply into a number of machine learning approaches. Each week students will be given guided material to introduce a particular topic but will then be expected to investigate topics further, by reading around the topic and experimenting with ideas and code from external sources. Students will have a certain freedom to explore some topics more than others, depending on their interest, and are expected to bring their findings back to rest of the class. This freedom is intended to help students develop skills to assist with independent research in the field of machine learning.

Topics covered by guided materials may change depending on the interests of the cohort, but will include some of the following:

Gaussian processes
	Probabilistic modelling
	Direct approximation for probabilistic models
	Sampling methods for probabilistic models
	Feedforward neural networks
	Regularisation in neural networks
	Optimisation of neural networks
	Convolutional neural networks
	Recurrent neural networks
On successful completion of the module students will be able to:

Comprehend a broad range of recent approaches in machine learning.
	Analyse assumptions and limitations of the introduced approaches and critically evaluate the suitability of data and domains for given approaches.
	Implement methods and create test frameworks within a programming language, apply this to data and evaluate and interpret the findings.
	Combine knowledge from different domains and synthesize into a broader conceptualisation of machine learning.
	Verbally present machine learning ideas effectively with the use of visual aids.
	Write clearly about a machine learning method not covered by the guided material and accompany this with illustrative code examples demonstrating application of the method to data.
Completion of Foundations of Machine Learning (INST0060) is a prerequisite for this module.