The goal of this course is to understand the foundation of Machine Learning as a field, providing the basis to master its many branches and applications. After an introduction about how machines learn, the focus will be on a short selection of key algorithms for supervised, unsupervised and reinforcement learning. The students will learn how parametrized function approximators can be used to take decisions, how to update their parametrization to modify their behavior, and how to leverage data and interactions in real-world applications.

The course is composed of theoretical lectures, explaining the inner working and intuitions behind the methods, interleaved with practical sessions to gain hands-on experience. The students will be introduced to both re-implementing (and customizing) some of the basic algorithms, and to applying the current standard libraries on practical applications.
The theoretical requirements include a basic understanding of linear algebra, calculus and statistic, as far as appropriate to understand the algorithms' inner workings. The practical sessions require a degree of familiarity with the Python programming language, and a working installation for the exercises. All lectures and material will be in English.

Students must be registered to the course to be enrolled, send us an email if you have any issues, thanks!