This module focuses on two Computational Intelligence paradigms, namely Artificial Neural Networks and Deep Learning. Within the Artificial Neural Networks paradigm, algorithmic models of neural learning will be studied, including supervised, unsupervised, and reinforcement learning. Aspects that influence the performance of artificial neural networks will be studied in depth. Within the Deep Learning paradigm, algorithmic models of deep neural networks will be studied, including autoencoders, convolutional neural networks, long-short term memory networks, generative models and attention mechanisms. Prior knowledge assumed includes good programming skills and an undergraduate module in calculus.
This module introduces the concepts of generic programming in order to generate code at compile-time.