Insegnamento a.a. 2024-2025

30412 - MACHINE LEARNING

Department of Computing Sciences

Course taught in English

Student consultation hours
BEMACS (6 credits - II sem. - OB  |  INF/01)
Course Director:
ANDREA CELLI

Classi: 25 (I/II sem.)
Docenti responsabili delle classi:
Classe 25: ANDREA CELLI


Conoscenze pregresse consigliate

For an effective learning experience, it is recommended a basic knowledge of Python programming, elementary calculus and linear algebra, probability and statistics.

Mission e Programma sintetico

MISSION

Machine learning is an exciting and fast-moving field of computer science with many applications such as computer vision, speech recognition, biology and medicine (e.g., predicting protein-protein interactions, predicting proteins’ 3D structure), finance, and many consumer applications such as recommending music and movies, and drive autonomous cars. This course provides an introduction to the theoretical foundations and practical algorithms of modern machine learning.

PROGRAMMA SINTETICO

  • Basics of optimization
  • Supervised learning: linear regression, logistic regression, kernel methods, SVM, decision trees, ensemble methods
  • Neural Networks and backpropagation
  • Bias-variance tradeoff, model selection
  • Unsupervised learning: Principal Component Analysis, hierarchical clustering, k-means
  • Basics of Reinforcement learning
  • Implementing Machine Learning Pipelines with sklearn

Risultati di Apprendimento Attesi (RAA)

CONOSCENZA E COMPRENSIONE

Al termine dell'insegnamento, lo studente sarà in grado di...
  • State and use the basic results of statistical inference for data analysis.
  • Distinguish and characterize the following basic machine learning problems: regression, classification, clustering, dimensionality reduction.
  • Describe the basic conceptual ideas, strengths, and limitations of the different learning algorithms for the settings above.
  • Evaluate the main trade-offs such as overfitting, and computational cost vs accuracy.

CAPACITA' DI APPLICARE CONOSCENZA E COMPRENSIONE

Al termine dell'insegnamento, lo studente sarà in grado di...
  • Implement end-to-end machine learning pipelines and rigorously evaluate their performance.
  • Demonstrate the ability to cope with real-world data analysis and problem solving (managing, preprocessing and analyze real datasets).

Modalità didattiche

  • Lezioni frontali
  • Esercitazioni (esercizi, banche dati, software etc.)
  • Lavori/Assignment individuali
  • Lavori/Assignment di gruppo

DETTAGLI

  • Face-to-face lectures focus on the theoretical, methodological, and computational aspects of the topics covered by the course.
  • In hands-on exercise sessions students will work on their laptops to implement solutions to relevant case studies. Students will use Python and common libraries such as scikit-learn.
  • Individual/group assignments: each student is required to solve a machine learning problem and provide a written report and the related code.

Metodi di valutazione dell'apprendimento

  Accertamento in itinere Prove parziali Prova generale
  • Prova individuale scritta (tradizionale/online)
    x
  • Assignment individuale (relazione, esercizio, dimostrazione, progetto etc.)
    x

STUDENTI FREQUENTANTI E NON FREQUENTANTI

The exam consists of a theory part and a hands-on project.

 

There are two options to pass the exam:

  1. Option 1: final exam for the whole 31 points. It will consist of questions (closed & open answer) and exercises to be answered on paper. The final exam is closed-book.
  2. Option 2: final exam (same rules as above) + ML project

 

  • The theory part consists in exercises and questions to be answered on paper. This contributes to 50% of the final grade.
  • The project consists in programming code to solve a real ML problem, to be developed individually or in small groups and described through a written report, which is evaluated by the instructors. This contributes to 50% of the final grade.
  • In order to pass the exam with Option 2, students must achieve a passing grade in both the theory and the project part (that is, at least 18 points out of 31 in each part). If the student is sufficient in both parts, then the grade is computed as 0.5 X + 0.5 Y, where X and Y are the score obtained in the final written exam and in the project, respectively
  • The written exam is the same regardless of whether or not you participate in the challenge
  • There is going to be one ML project for each edition of the course. If you participate in the project and obtain a passing grade, you can keep such grade and cumulate it with a final exam done in later sessions (it can be used up to the September session of the same year in which you did the project)

 

The written exam is used to asses the "knowledge and understanding" learning objectives. The project is used to asses the "applying knowledge and understanding" learning objectives.


Materiali didattici


STUDENTI FREQUENTANTI E NON FREQUENTANTI

The course mostly relies on the following two books (both available online for free): 

 

  • Lindholm, A., Wahlström, N., Lindsten, F., & Schön, T. B. (2022). Machine learning: a first course for engineers and scientists
  • James, G., Witten, D., Hastie, T., Tibshirani, R., & Taylor, J. (2023). An introduction to statistical learning: With applications in Python.

 

Other useful references:

 

  • C.M. BISHOP (2006). Pattern Recognition and Machine Learning.
  • T. HASTIE, R. TIBSHIRANI, J. FRIEDMAN (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction.

 

 

Slides and/or notes summarizing the contents presented in class are provided.

Modificato il // :