Neural Networks and Deep Learning
IMPORTANT NOTICE:
This course will start on January 9, 2024, at 9:00.
Lectures will be opened to everybody and will be given online on the following
channel.
Please, connect 10 minutes before 9:00 to avoid disturbing the lecture.
IMPORTANT NOTICE:
The lectures scheduled on April 17 and 18 have been postponed to April 18 and 19 at the same time.
Registration
To attend the lectures and receive notifications about any change on course lectures,
please register in this file by December 30th.
This course includes three modules of 3 CFUs each: the first module focuses on the theoretical foundations
of neural networks and deep learning; the second module covers more advanced topics and recent research trends;
the third module covers practical and implementation issues.
Course Program
Part I: Theoretical Foundations
- Introduction to neural computing
- Hopfield networks
- Unsupervised learning: PCA
- Unsupervised learning: Self-Organizing Maps
- Clustering algorithms
- Reinforcement learning - part 1
- Reinforcement learning - part 2
- Supervised learning: backpropagation
- Supervised learning: important remarks
- Supervised learning: performance metrics
- Radial Basis Function Networks
- Towards Deep Neural Networks (DNNs)
- Autoencoders
- Convolutional Neural Networks
- CNNs for object classification
- CNNs for object detection
- CNNs for image segmentation
- Recurrent Neural Networks
- Word embeddings and attention mechanism
- Transformers
Part II: Advanced Topics
- Deep reinforcement learning - part 1
- Deep reinforcement learning - part 2
- Model compression
- Semi-supervised learning
- Contrastive learning
- Towards trustworthy AI
- Generative Adversarial Networks (GANs)
- Diffusion models (Dall-E)
- Adversarial attacks and defenses
- Certifiable adversarial robustness
- Real-world adversarial examples
- Explainable and interpretable AI
- Anomaly detection and out-of-distribution generalization
- Domain generalization and domain adaptation
- Attention mechanisms in computer vision
- Transformers for computer vision
Part III: Implementation Issues
- Implementing neural networks in C
- Implementing Reinforcement Learning in C
- Implementing Backpropagation in C
- Implementing Convolutional Networks in C
- Frameworks for deep learning
Examples
- Modeling DNNs in Tensorflow and PyTorch
Examples
- DNN optimization for embedded platforms
- The NVIDIA TensorRT framework
- Accelerating deep networks on GPGPUs - Part 1
- Accelerating deep networks on GPGPUs - Part 2
- Neural networks for real-time tracking
- Simulation environments for neural control
- Neural tracking with drones
- Functional components in autonomous driving
- The Apollo framework for Autonomous Driving
- Accelerating deep networks on FPGA platforms
Projects
Videos
- Hopfield network demo
- Kohonen network demo 1: 2D input space
- Kohonen network demo 2: image mapping
- Kohonen network demo 3: optimization
- K-means online demo
- Gaussian mix demo
- Reinforcement Learning: ASE-ACE demo
- Q-learning: The amoeba
- Q-learning: grid world demo
- Q-learning: shooting targets
- Q-learning: car driving demo
- Q-learning: car driving demo
- Supervised learning: function approximator
- Supervised learning: overfitting example
- Supervised learning: simple classifier
Suggested readings
Books
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning, MIT Press, 2017.
- François Chollet. Deep Learning with Python, Manning, 2017.
- Richard S. Sutton and Andrew G. Barto. Reinforcement Learning: An Introduction, Second edition, The MIT Press, 2018.
Introductory readings
For those who like to look into the future