Neural Networks for Data Science Applications (2020/2021)

Master Degree in Data Science (6 credits)
This course is the recipient of a Google Faculty Award to Support Machine Learning Courses, Diversity, and Inclusion.

NOTE: For the year 2019/2020, please refer to this page.

Important Info

A Google Group is active to receive all info on the course:
https://groups.google.com/a/uniroma1.it/forum/#!forum/neural-networks-for-data-science-applications-20202021

+ Homework: deadline for submitting the final homework is 19/01/2021 for the January session (21/01/2021). Otherwise, the homework can be submitted afterwards for the following sessions.

+ Timetable (updated): Wednesday 9-11 AM, Thursday 8-11 AM. Lectures will begin on October 5 (official notice).

+ In-person attendance: Via Ariosto 25, Room A4 (Wednesday), Room B2 (Thursday). Read here for information on how to attend in-person.

+ Remote attendance (Zoom): 863 3832 0837 (Wednesday), 829 0383 9086 (Thursday). Passcodes will be provided on the Google Group only.


General overview

The course will introduce neural networks in the context of data science applications. After an overview on supervised learning and numerical optimization, we will describe recent techniques and algorithms (going under the broad name of “deep learning” or differentiable programming), that allows to successfully apply neural networks to a wide range of problems, e.g., in computer vision and natural language processing.

Students will be introduced to convolutional networks (e.g., for image analysis), to recurrent neural networks (for sequential problems), and to recent attention-based models. We will also introduce problems of robustness, fairness, and interpretability. Optional topics include graph-based model and generative architectures.

Theory will be supplemented by practical laboratories where all concepts will be developed on realistic use cases through the use of the TensorFlow 2.x library.


Slides and notebooks

#DateContentMaterial
107/10/2020About the courseSlides (PDF)
Video
208/10/2020Introduction (key concepts, history, ...)Slides (PDF)
Video
Lab 114-15/10/2020Lab: preliminaries (linear algebra, probability, gradients)Chapter 2 from the book
Video (Part 1)
Video (Part 2, until 1h30m)
315/10/2020Linear regression and classificationSlides (PDF)
Video (Part 1, from 1h45m)
Video (Part 2)
Video (Part 3)
Lab 222/10/2020Lab: linear regression from scratchNotebook (Google Colab)
Video
428-29/10/2020Feedforward neural networksSlides (PDF)
Video (Part 1)
Video (Part 2)
Lab 304-05/11/2020Lab: feedforward neural networks & tf.kerasNotebook (Google Colab)
Video (Part 1)
Video (Part 2)
512/11/2020Convolutional neural networksSlides
Video (Part 1)
Video (Part 2)
Lab 412-18-19/11/2020Lab: steering a car with convolutional networksNotebook (Google Colab)
Video (Part 1)
Video (Part 2)
Video (Part 3)
Homework 112/11/2020Implementing a custom activation function.
Deadline: 26/11/2020 (03/12/2020 - postponed)
Template
Solution
Evaluation
619-25-26/11/2020Building deeper convolutional networksSlides
Video (Part 1)
Video (Part 2)
Video (Part 3)
Lab 526/11/2020-02/12/2020Implementing a deep CNN from scratchNotebook (Google Colab)
Video (Part 1)
Video (Part 2)
703-10/12/2020Going beyond image classificationSlides
Video (Part 1)
Video (Part 2)
Video (Part 3)
Lab 603/12/2020Lab: audio classification and hyperparameter tuningNotebook (Google Colab)
Video (Part 1)
Video (Part 2)
Extra10/12/2020Notebook on handling word embeddings with TensorFlowNotebook (Google Colab)
816/12/2020Fairness, robustness, and interpretabilitySlides
Video (Part 1)
Video (Part 2)
Homework 217/11/2020Putting it all together
Deadline: 19/01/2021 (only for the January session, see above)
Template
Video (Explanation)
9TBDRecurrent neural networks and seq2seq modelsSlides
Video

Environment setup

Students are invited to bring their own laptop for the lab sessions. In order to have a working Python installation with all prerequisites, you can install the Anaconda distribution.

We will use TensorFlow 2.x in the course, that you can install following the instructions from the website.

Alternatively, you can run all notebooks freely using the Google