Neural Networks and Deep Learning


IMPORTANT NOTICE:
This course will start on January 7, 2025, 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.

Registration

To access the channel of the lectures and receive notifications about any change on course lectures, please register here by December 15th.


Certification of attendance

If you need a certification of attendance, be aware that the number of hours that will be certified are those recorded by Teams.


Course Program and Lectures Schedule

This course includes four modules:
  1. The first module (20 hours) focuses on the theoretical foundations of neural networks.
  2. The second module (20 hours) focuses on deep neural networks.
  3. The third module (20 hours) covers more advanced topics and recent research trends.
  4. The fourth module (30 hours) covers practical and implementation issues.


Part I: Theoretical Foundations

  1. Introduction to neural computing
  2. Hopfield networks
  3. Unsupervised learning: PCA
  4. Unsupervised learning: Self-Organizing Maps
  5. Clustering algorithms
  6. Reinforcement learning
  7. Supervised learning: backpropagation
  8. Supervised learning: important remarks
  9. Supervised learning: performance metrics
  10. Radial Basis Function Networks

Part II: Deep Learning

  1. Towards Deep Neural Networks (DNNs)
  2. Autoencoders
  3. Convolutional Neural Networks
  4. CNNs for object classification
  5. CNNs for object detection
  6. CNNs for image segmentation
  7. Deep reinforcement learning - part 1
  8. Deep reinforcement learning - part 2
  9. Recurrent Neural Networks
  10. Word embeddings and attention mechanism
  11. Generative Adversarial Networks (GANs)
  12. Transformers

Part III: Advanced Topics

  1. Model compression
  2. Semi-supervised learning
  3. Contrastive learning
  4. Neural networks for real-time tracking
  5. Towards trustworthy AI
  6. Adversarial attacks and defenses
  7. Real-world adversarial attacks
  8. Explainable and interpretable AI
  9. Anomaly detection and out-of-distribution generalization
  10. Domain generalization and domain adaptation
  11. Attention mechanisms in computer vision

Part IV: Implementation Issues

  1. Implementing neural networks in C
  2. Programming frameworks for deep learning
  3. Modeling DNNs in Tensorflow and PyTorch
  4. Functional components in autonomous driving
  5. The Apollo framework for autonomous driving
  6. Simulators for autonomous driving
  7. GPU programming in CUDA
  8. Accelerating deep networks on GPGPUs
  9. DNN optimization for embedded platforms
  10. The NVIDIA TensorRT framework
  11. Accelerating deep networks on FPGA
  12. The Xilinx Deep Processing Unit

Exam

The exam (for those that need to take it) consists in a project development. The project is one, independently on the number of modules attended, but the number of hours that will be certified are those recorded by Teams. The completion of the exam requires the project discussion and the delivery of the project code, including a report describing the work done. Please, read carefully the project rules in the link below.

Suggested readings

Books Introductory readings For those who like to look into the future