Academic Year 2023/2024 - Teacher: GIOVANNI MARIA FARINELLA

Expected Learning Outcomes

The aim of the course is to provide an in-depth introduction to the main techniques of Machine Learning. To this purpose, the fundamental models and the state-of-the-art techniques for classification and regression will be formally presented, with particular emphasis on methodologies based on neural networks. The modern approach of machine learning will be introduced using techniques based on neural and convolutional networks. Application cases will be discussed considering different contexts with relevance on both research and  industrial field (e.g. object detector, image and video understanding). We will discuss the methodologies for creating and optimizing machine learning algorithms, and those useful for evaluating the performance of Machine Learning systems. The presentation of the topics is developed through theoretical and laboratory lessons in which the students will implement and use the algorithms presented in the course exploiting the Python language and other open source software libraries (eg PyTorch). Algorithms will be adapted to address specific problems through a project developed by students.

The course aims to train students to:

  • provide key concepts underlying Machine Learning techniques;
  • know a wide range of learning algorithms to solve classic Machine Learning problems (classification and regression);
  • understand how to design and tune algorithms in order to apply them to new datasets;
  • evaluate machine learning algorithms so that the best model can be selected;
  • develop new Machine Learning algorithms in Python or to adapt existing algorithms to new use cases

Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.

Learning assessment may also be carried out on line, should the conditions require it.

Course Structure

Frontal Lessons and Laboratory (in Python)

Required Prerequisites


Attendance of Lessons

Attendance to the lessons is strongly recommended

Detailed Course Content

  • Basic Concepts: Machine Learning, Probability Theory, Supervised Learning, Unsupervised Learning, Classificazione, Regressione, Training/Validation/Test Set, Performance Evaluation, Data Normalization, Overfitting and Regularization, XOR Problem, Perceptron
  • Linear Models for Regression: Linear Regression, Gradient descent algorithm, Learning Rate and Debugging, Polynomial Regression, Overfitting e Regularization for Linear Regression, Regressione Lineare in Pytorch, API ad oggetti di Pytorch, Monitoring del training con Tensorboard, Linear Regression Evaluation, Learning Algorithms Design
  • Linear Models for Classification: Logistic Regression, Logistic Regression with Pytorch, Regularization for Logistic Regression,  Stochastic Gradient Descent, Momentum for Gradient Descent, Multi-Class Classification, Classifiers Evaluation
  • Softmax Classifier and python implementation
  • Computational Graphs and Backpropagation
  • Neural Networks and python implementation
  • Deep Learning: Convolutional Neural Network and python implementation, Transfer Learning
  • Object Detection: One-Stage vs. Two-Stage, Evaluation Measures
  • Python programming and Python Libraries for Machine Learning

Textbook Information

  1. R. O. Duda, P. E. Hart, D. G. Stork, "Pattern Classification", Wiley, 2000
  2. C. Bishop, “Pattern Recognition and Machine Learning", Springer, 2006
  3. E. Alpaydin, “Introduction to Machine Learning”, MIT Press, 2014
  4. I. Goodfellow, Y. Bengio and A. Courville, "Deep Learning", MIT Press, 2016
  5. Raul Rojas, Neural Networks - A Systematic Introduction, Springer, 1996
  6. M. P. Deisenroth, A A. Faisal, and C. Soon On, Mathematics for Machine Learning, MIT Press, 2019

Course Planning

 SubjectsText References
1Basic Concepts1, 2, 3, 4, 5, 6
2Linear Models for Regression2, 3, 4
3Linear Models for Classification2, 3, 4
5Computational Graphs and Backpropagation5
6Neural Networks1, 2, 3, 4, 5
7Deep Learning4
8Advanced Deep Learning4, Dispense fornite dal docente e risorse in rete
9Python programming and Libraries for Machine LearningDispense fornite dal docente e risorse in rete

Learning Assessment

Learning Assessment Procedures

The final exam consists of two parts:

  • Written Examination
  • Project

The grading is expressed in thirtieths according to the following scheme:

Grade 29-30 with honors

The students have an in-depth knowledge of the fundamental concepts and of the main Machine Learning. They are able to formalize Machine learning problems  by identifying the most suitable algorithms and techniques for solving the considered problems independently and critically. They have excellent communication skills and language proficiency.

Grade 26-28

The students have a good understanding of fundamental concepts and major Machine Learning. They are able to formalize Machine learning problems identifying appropriate algorithms and techniques for the considered problems. They have good communication skills and language proficiency.

Grade 22-25

The students have a fair understanding of fundamental concepts and of the main Machine Learning. They are able to formalize Machine learning problems, although not always exhaustively, identifying suitable algorithms and techniques for the considered problems. They have moderate communication skills and language proficiency.

Grade 18-21

The students have minimal knowledge of fundamental concepts and of the main Machine Learning. They have modest ability to formalize Machine learning problems and to identify suitable algorithms and techniques for the considered problems. They have sufficient communication skills, although not always appropriate language proficiency.

Failed Exam

The students lack of the minimum required knowledge of the main course contents. Their ability to formalize Machine learning problems is very poor or nonexistent, and they are unable to apply the acquired knowledge independently.

Examples of frequently asked questions and / or exercises

- Discuss the Backpropagation algorithm 

- Discuss about the overfitting problem and its possible solutions

- Discuss the Softmax classifier