# MACHINE LEARNING

**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

## 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

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

## Course Planning

Subjects | Text References | |
---|---|---|

1 | Basic Concepts | 1, 2, 3, 4, 5, 6 |

2 | Linear Models for Regression | 2, 3, 4 |

3 | Linear Models for Classification | 2, 3, 4 |

4 | Softmax | 3,4 |

5 | Computational Graphs and Backpropagation | 5 |

6 | Neural Networks | 1, 2, 3, 4, 5 |

7 | Deep Learning | 4 |

8 | Advanced Deep Learning | 4, Dispense fornite dal docente e risorse in rete |

9 | Python programming and Libraries for Machine Learning | Dispense 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