Neural Networks and Deep Learning


IMPORTANT NOTICE: lectures are being given online according to the schedule.
People registered on the course will receive an Email with the instructions for connecting to each virtual classroom.

NEWS: The project list is now available.

This course (6 CFUs) includes two modules of 3 CFUs each: the first module focuses on the theoretical foundations of neural networks and deep learning, while the second module covers more practical and implementation issues.

Course Program


Course topics: theoretical part

  1. Introduction to neural computing
  2. Hopfield networks
  3. Unsupervised learning
  4. Reinforcement learning
  5. Supervised learning
  6. Remarks on backpropagation
  7. Towards Deep Neural Networks (DNNs)
  8. Deep Belief Networks and Autoencoders
  9. Convolutional Neural Networks
  10. DNNs for object classification
  11. DNNs for object detection
  12. Recurrent Neural Networks
  13. Deep Reinforcement learning
  14. Generative Adversarial Networks
  15. Sample applications and open issues

Course topics: practical part

  1. Coding neural networks from scratch in C
  2. Sample implementations of common neural networks
  3. Common frameworks for training and inference
  4. Examples of DNN implementations in Tensorflow and Caffe
  5. Simulation environments for control
  6. The OpenAI Gym framework
  7. The MuJoCo environment and related applications
  8. Genetic algorithms for reinforcement learning
  9. Accelerating DNNs on GPGPUs
  10. The NVIDIA TensorRT framework
  11. Real-time object detection from a video camera
  12. Accelerating deep networks on FPGA
  13. A sample implementation on the Zynq platform.

Slides on the practical part

  1. Implementing Hopfield networks in C (Giorgio Buttazzo)
  2. Implementing Kohonen networks in C (Giorgio Buttazzo)
  3. Implementing ASE-ACE networks in C (Giorgio Buttazzo)
  4. Implementing Backpropagation in C (Giorgio Buttazzo)
  5. Implementing convolutional networks in C (Giorgio Buttazzo)
  6. Frameworks for Deep Learning (Daniel Casini)
  7. Modeling Neural Networks with TensorFlow (Daniel Casini)
  8. Introduction on neural control (Federico Nesti)
  9. Reinforcement learning for control (Federico Nesti)
  10. Introduction to evolutionary algorithms (Federico Nesti)
  11. Implementing DNNs on embedded GPUs platforms (Alessandro Biondi)
  12. TensorRT (Alessandro Biondi)
  13. Accelerating DNNs on FPGA platforms (Marco Pagani)
  14. FPGA Frameworks for DNNs (Francesco Restuccia)
  15. The FINN Framework (Biruk Seyoum)
  16. A neural demo under FINN (Biruk Seyoum) - Download it to watch it

Projects