Aims:

This module aims to equip students with an understanding of deep learning methodology and to obtain hands-on experience in deep learning applications with modern development tools.

Learning outcomes:

On successful completion of the module, a student will be able to:

Understand key concepts and methodologies in deep learning
	Obtain an overview of deep learning techniques that are applied in real-world applications
	Communicate relevant concepts and discuss with correct use of technical and scientific terms
	Develop basic neural networks for computer vision and natural language processing applications
	Obtain knowledge of the development, validation and deployment of deep neural networks for multiple real-world applications
	Identify the difference between deep learning research and those that have been applied, and the practical challenges in the latter
	Be aware of recent deep learning research development and directions
Content:

A systematic overview of deep neural network architectures and their training strategies.
	Introduction of detailed methodologies used in designing convolutional neural networks and recurrent neural networks.
	Introduction of detailed methodologies in developing, regularising and evaluating neural network-based applications.
	Hands-on coding tutorials on basic computer vision tasks, including image classification, segmentation and detection
	Hands-on coding tutorials on basic natural language processing, including text and speech processing and analysis
Requisites:

To be eligible to select this module as an optional or elective, a student: (1) must have basic knowledge in undergraduate mathematics, including calculus, linear algebra and probability theory; (2) must have strong competence in programming; (3) should have experience using Python with TensorFlow and PyTorch; and (4) must have taken Introduction to Machine Learning (COMP0088) or Supervised Learning (COMP0078) or be able to demonstrate equivalent experience.

This module includes an introduction to deep learning, therefore does not require previous exposure to deep learning. However, prior knowledge in more theoretical and mathematical aspects of deep learning will be complementary to the applied aspects in this module, such as practical methodology and coding practice.