This module introduces you to several state-of-the-art methodologies for machine learning with neural networks (NNs). After discussing the basic theory of constructing and calibrating NNs, we consider various types of NN suitable for different purposes, such as recurrent NNs, autoencoders, and transformers. This module includes a wide range of practical applications; you will implement each type of network using Python (and PyTorch) for your weekly coursework assignments and calibrate these networks to real datasets.