At the end of the course students will be able to understand and discuss the principles of machine learning. They will be able to analyze a problem, and to design and implement a solution. They will be familiar with the most important techniques in the field and will be able to use them to build machine learning systems by using the Python programming language.
Prerequisiti
Students are expected to have a basic knowledge of linear algebra, vector calculus, probability and statistics. They are also expected to be able to design and write simple computer programs.
Metodi didattici
About two thirds of the course will be delivered in the form of lectures in which machine learning principles and techniques will be illustrated, also through the presentation of case studies. A third of the course will take place in a laboratory, where students will learn how to solve machine learning problems using the Python programming language.
Verifica Apprendimento
The exam consists of an interview in which the student will discuss the topics of the course. To assess their capabilities in solving small-scale machine learning problems, students are also required to provide their own solution to a short programming assignment.
Testi
The course is based on a set of notes prepared by the teacher.
Contenuti
After a general introduction to machine learning, the first lectures will focus on the main techniques used to tackle the problem of classification by supervised learning. More in detail the following topics will be presented: - logistic regression; - generalization and regularization; - the perceptron algorithm; - linear and non-linear Support Vector Machines; - cross validation and model selection; - feature selection and normalization; - generative models and naive Bayes. Artificial neural networks will be the main topic of the second part of the course. The lectures will cover: - the biological inspiration; - feed forward networks; - the backpropagation algorithm; - introduction to deep learning; - convolutional neural networks; - recurrent networks; - sequence-to-sequence models; - attention mechanisms and transformers. The last part of the course will present some application domains in which machine learning models are widely used: - document classification; - image recognition; - language models.