This exam is present in the following Optional Group

Objectives

General objectives:
The course will present to students advanced and most recent concepts of machine learning and their application in computer vision via deep neural network (DNN) models. It will include theory and practical coding, as well as a final hands-on project. Towards the coding assignments and the final project, the students will work in teams and present their ideas and project outcome to the class.

Specific objectives
The first part of the course includes delving into state-of-the-art DNN models for classification and regression applied to detection (where the objects are in the image), pose estimation (whether people stand, sit or crunch) and re-identification (estimating a unique vector representation for each person). The course further discusses DNNs for multi-task objectives (joint detection, pose estimation, re-identification, segmentation, depth estimation etc). This first part would include DNNs which apply to video sequences, by leveraging memory (e.g. LSTMs) or attention (Transformers).
The second part of the course delves into models, training techniques and data manipulation for generalization, domain adaptation and meta-learning. Further to transfer learning (how pre-trained models may be deployed for other tasks), it discusses multi-modal (with different sensor modalities such as depth or thermal cameras) and self-supervision (e.g. training the DNN model by solving jigsaw puzzles) to auto-annotate large amounts of data. Finally, it presents domain adaptation (e.g. apply daytime-detectors for night vision) and meta-learning, a most recent framework to learn how to learn a task, e.g. online or from little available data.

Knowledge and understanding:
At the end of the course students will be familiar with state-of-the-art DNN models for multiple tasks and multi-task objectives, as well as generalization and the effective use of labelled and unlabelled data for learning, self-supervision and meta-learning.

Apply knowledge and understanding:
At the end of the course students will have become familiar with the most recent advances in machine learning across a variety of tasks, their adaptation to novel domains and the continual self-learning of algorithms. They will be able to explain the algorithms and choose the most appropriate techniques for a given problem. They will be able to experiment with existing implementations and design and write programs for new solutions for a given task or problem in the two fields.

Critical and judgment skills:
Students will be able to analyse a problem or task and identify the most suitable methodologies and techniques to apply in terms of the effective resolution of the problem (accuracy) and its feasibility, including the efficiency, the required amount of data and annotation. Further to class discussions, critical and judgemental skills would be the result of assignments, a course project and a final project report.

Communication skills:
Students will acquire the ability to expose their knowledge in a clear and organized way, which will be verified through a final project presentation and its discussion.
Students will be able to express their solutions rigorously and to explain the structure of the code they have written.

Learning ability:
The acquired knowledge will enable students to face the study of other problems in machine learning and computer vision. Learning ability would result from the chosen lecture topics, covering most broad areas in advanced machine learning, as well as from the final project, for which students would deep dive into a new topic, beyond the thought material.


Channels

FABIO GALASSO FABIO GALASSO   Teacher profile

Programme

The course would present advanced concepts of machine learning and their application in computer vision via deep neural network (DNN) models. It would include theory and practical coding, as well as a final hands-on project.

In a first part of the course, I would introduce state-of-the-art DNN models for classification, showing how to estimate which objects are within an image. I would then showcase regression, as applied to detection (where the objects are in the image), pose estimation (whether people stand, sit or crunch) and re-identification (estimating a unique vector representation for each person). I would further discuss DNNs for multi-task objectives (joint detection, pose estimation, re-identification, segmentation, depth estimation etc). This first part would include DNNs which apply to video sequences, by leveraging memory (e.g. LSTMs) or attention (Transformers).

In a second part of the course, I would discuss generalization and the effective use of labelled and unlabelled data for learning. Further to transfer learning (how pre-trained models may be deployed for other tasks), I would discuss multi-modal (with different sensor modalities such as depth or thermal cameras) and self-supervision (e.g. training the DNN model by solving jigsaw puzzles) to auto-annotate large amounts of data.
Finally, I would present domain adaptation (e.g. apply daytime-detectors for night vision) and meta-learning, a most recent framework to learn how to learn a task, e.g. online or from little available data.

Course website: https://sites.google.com/di.uniroma1.it/aml-19-20

Course Google group: https://groups.google.com/a/di.uniroma1.it/forum/#!forum/aml_19_20

Adopted texts

Slides and coding scripts would be distributed after lectures, as well as references to online material including papers and blogs.

Reference books:
- for Machine Learning:
- Christopher Bishop, 2006. Pattern Recognition and Machine Learning.
- for Deep learning:
- Ian Goofellow, Yoshua Bengio, Aaron Courville, 2017. Deep Learning.
- Andrew Ng, 2019. Machine Learning Yearning
- for Computer Vision:
- Richard Szeliski, 2010. Computer Vision: Algorithms and Applications

Reference book for Python:
- Allen B. Downey, 2015. Think Python: How to Think Like a Computer Scientist

Online tutorials for Python: https://docs.python.org/3/tutorial/
Online tutorials for Pytorch: https://pytorch.org/tutorials/

Prerequisites

- Proficiency in Python, some high-level familiarity with C/C++ - All class assignments will be in Python (and use Numpy), but some of the deep learning libraries may be in C++ - Calculus and Linear Algebra - taking derivatives, understanding matrix vector operations and notation - Basic Probability and Statistics - basics of probabilities, gaussian distributions, mean, standard deviation, etc - Basic Machine Learning - cost functions, derivatives and optimization with gradient descent

Exam modes

Evaluation of the course assignments, a final course project and a written exam about the course theory.

More details on the course website: https://sites.google.com/di.uniroma1.it/aml-19-20

Exam reservation date start Exam reservation date end Exam date
08/06/2020 10/06/2020 11/06/2020
13/05/2020 18/06/2020 24/06/2020
13/05/2020 09/07/2020 15/07/2020
14/07/2020 02/09/2020 08/09/2020
19/12/2020 13/01/2021 19/01/2021
Course sheet
  • Academic year: 2019/2020
  • Curriculum: Curriculum unico
  • Year: Second year
  • Semester: Second semester
  • SSD: INF/01
  • CFU: 6
Activities
  • Attività formative caratterizzanti
  • Ambito disciplinare: Tecnologie dell'informatica
  • Exercise (Hours): 36
  • Lecture (Hours): 24
  • CFU: 6.00
  • SSD: INF/01