Artificial Neural Networks and Deep Learning

From Chrome
Revision as of 09:48, 9 September 2022 by Matteo (Talk | contribs) (Detailed course schedule)

Jump to: navigation, search

The following are last-minute news you should be aware of ;-)

07/08/2022: Grades for the 06/07/2022 call are available here!
06/03/2021: Grades for the 2021/2021 homeworks are available here!
24/11/2021: Lecture on 09/12/2021 moved to 16/12/2021
24/11/2021: Change of classroom on the 15/12 from T2.1 to B4.3
12/11/2021: Here is the link to the First Homework!!! (read the registration rules, they have been updated)
12/11/2021: First homework is coming out! Register to submit your solutions!
07/11/2021: We have restructured the notebooks from the labs, please check the new organization and material
13/10/2021: Final grade for 2020/2021 year are here
30/09/2021: Video and slides updated + notebooks published
24/09/2021: Removed last year practicals, this year they will be different!!! Python crash course moved at the end of the material
22/09/2021: Added colab crash course on Python 3 in the material session
18/09/2021: We skip exercising on 22/09 and added exercising on 15/12 I updated the schedule!
16/09/2021: Updated material on the first lectures + added reference to python tutorials in the material section
15/09/2021: Lectures start today!
14/09/2021: Website under maintenance ... come back later

Course Aim & Organization

Neural networks are mature, flexible, and powerful non-linear data-driven models that have successfully been applied to solve complex tasks in science and engineering. The advent of the deep learning paradigm, i.e., the use of (neural) network to simultaneously learn an optimal data representation and the corresponding model, has further boosted neural networks and the data-driven paradigm.

Nowadays, deep neural network can outperform traditional hand-crafted algorithms, achieving human performance in solving many complex tasks, such as natural language processing, text modeling, gene expression modeling, and image recognition. The course provides a broad introduction to neural networks (NN), starting from the traditional feedforward (FFNN) and recurrent (RNN) neural networks, till the most successful deep-learning models such as convolutional neural networks (CNN) and long short-term memories (LSTM).

The course major goal is to provide students with the theoretical background and the practical skills to understand and use NN, and at the same time become familiar and with Deep Learning for solving complex engineering problems.


The course is composed of a blending of lectures and exercises by the course teachers and a teaching assistant.

Course Program and Syllabus

This goal is pursued in the course by:

  • Presenting major theoretical results underpinning NN (e.g., universal approx, vanishing/exploding gradient, etc.)
  • Describing the most important algorithms for NN training (e.g., backpropagation, adaptive gradient algorithms, etc.)
  • Illustrating the best practices on how to successfully train and use these models (e.g., dropout, data augmentation, etc.)
  • Providing an overview of the most successful Deep Learning architectures (e.g., CNNs, sparse and dense autoencoder, LSTMs for sequence to sequence learning, etc.)
  • Providing an overview of the most successful applications with particular emphasis on models for solving visual recognition tasks.

We have compiled a detailed syllabus of the course student can use to double check their preparation against before the exam.

  • [2020/2021] Course Syllabus: a detailed list of topics covered by the course and which students are expected to know when approaching the exam

Detailed course schedule

A detailed schedule of the course can be found here; topics are just indicative while days and teachers are correct up to some last minute change (I will notify you by email). Please note that not all days we have lectures!!

Note: Lecture timetable interpretation
* On Wednesday, in T.2.1, Team 1, starts at 15:15, ends at 17:00
* On Wednesday, in T.2.1, Team 2, starts at 17:30, ends at 19:15
* On Thursday, in teacher webex room, starts at 16:30, ends at 19:15
Note: Teams division is based on your Codice Persona (and should minimize overlap)
* Team 1: odd Codice Persona
* Team 2: even Codice Persona

Course Evaluation

Course evaluation is composed of two parts:

  • A written examination covering the whole program graded up to 20/30
  • 2 home projects in the form of a "Kaggle style" challenge practicing the topics of the course graded up to 5/30 each

The final score will sum the grade of the written exam and the grade of the home projects. Home projects are not compulsory and they are issued only once a year.

Teaching Material (the textbook)

Lectures will be based on material from different sources, teachers will provide their slides to students as soon they are available. As a general reference you can check the following text, but keep in mind that teachers will not follow it strictly

  • Deep Learning. Ian Goodfellow, Yoshua Bengio, and Aaron Courville, MIT Press, 2016.

Regarding the python programming language, we will provide you the basics about numpy and python scripting in case you want some introductory material you can check here

  • Python tutorials: these are the official python tutorials, we suggest 3.An Informal Introduction to Python (Numbers, Strings, Lists), 4.More Control Flow Tools (if, for, range, functions), 5.Data Structures (More on lists, Dictionaries), 9.Classes.

Course Slides

Slides from the lectures by Matteo Matteucci

Slides from the lectures by Giacomo Boracchi are available in his webpage; for your convenience I am giving pointers to the slide here for you (in case you note discrepancies please notify me)

Slides from the practicals by Francesco Lattari and Eugenio Lomurno

External Sources