Computing

Neural Networks

Module code: G5015
Level 6
15 credits in spring semester
Teaching method: Lecture, Laboratory
Assessment modes: Coursework

Neural networks (NNs) are behind many of the most sophisticated and powerful artificial intelligence and machine learning tools used today.

This module covers fundamental principles of NNs, different types of NN, methods to improve their performance and their applications. Specific topics we’ll cover include:

  • loss functions for regression and classification
  • support vector machines
  • NNs as universal function approximators
  • multi-layer perceptrons
  • Convolutional NNs (CNNs)
  • recurrent NNs, including long-short-term-memory (LSTM)
  • advanced architectures and attention mechanisms
  • gradient descent, back-propagation, optimisers
  • regularisation, generalisation, gradient flow
  • encoding and feature learning
  • generative adversarial networks
  • deep reinforcement learning
  • graph neural networks.

Pre-requisite

The course assumes an ability to write software in one appropriate programming language (e.g. Java, C, Python, Matlab). Basic knowledge of formal computational skills is also assumed.

Module learning outcomes

  • refer to relevant mathematical concepts to describe how modern, deep neural networks can be used as universal function approximators.
  • describe and critique the principles and applications of different neural network architectures.
  • describe and critique the principles underlying different design considerations and techniques used to optimise the performance of neural networks.
  • apply their knowledge of neural networks by building, optimising, and analysing a neural network for a real-world problem.