Introduction to Machine Learning

Anno accademico 2025/2026
Docente Fosca Giannotti, Roberto Pellungrini

Modalità d'esame

<p> Progetto pratico, relazione scritta e presentazione orale.</p>

Note modalità di esame

<p>La verifica avverrà sia durante le lezioni mediante momenti di interazione guidata dal docente, che mediante la valutazione del progetto assegnato e della sua presentazione.</p>

Prerequisiti

Il corso è rivolto a studenti del secondo o terzo anno di laurea magistrale, in discipline scientifiche. Il corso prevede un laboratorio aperto per supportare gli studenti nell'esecuzione dei progetti (Didattica Integrativa (12 ore)).

Programma insegnamento

Il corso introdurrà le basi dell'apprendimento automatico dai dati e del processo di disegno di un sistema . Un'attenzione particolare è dedicata alle moderne architetture di Reti Neurali Profonde.

Il corso è organizzato in 5 moduli: 3 moduli sono dedicati alla formalizzazione dei diversi task di apprendimento da dati, le tecniche ed algoritmi di riferimento, nonchè la loro esemplificazione pratica su semplici casi utilizzando le librerie python attualmente più usate.

Il primo ed il quinto modulo sono invece finalizzati all'introduzione di metodologie di buon disegno di un sistema di AI basato su apprendimento automatico.


1) Introduzione: il processo di Knowledge Discovery.

  • Processo KDD: tutti i passaggi in sintesi.
  • Comprensione dei dati ed esplorazione dei dati.
  • Esercitazioni: esercitazioni pratiche su semplici casi di studio utilizzando librerie Python
  • Introduzione a NumPy, Pandas e Seaborn (supporto extra in laboratorio)

2) Metodi di apprendimento non supervisionato: : metodi ed esercitazioni pratiche

  • Mining dei pattern e Regole di associazione: concetti di base e algoritmo a-priori
  • Esercitazioni: esercitazioni pratiche su semplici studi di caso utilizzando librerie Python

3) Apprendimento supervisionato: metodi ed esercitazioni pratiche

  • Classificazione: introduzione, valutazione delle prestazioni. Un primo classificatore semplice:Decision tree
  • Esercitazioni: esercitazioni pratiche su semplici studi di caso utilizzando librerie Python
  • Panoramica sui metodi avanzati: Random Forest, Support Vector Machine
  • Introduzione alle Reti Neurali, descrizione del progetto e assegnazione del progetto
  • Esercitazioni: esercitazioni pratiche su metodi di classificazione avanzati e Reti Neurali conPyTorch

4) Introduzione alle architetture di Deep Learning: metodi ed esercitazioni pratiche

  • Reti Neurali Convoluzionali, teoria e pratica con PyTorch
  • Reti Neurali Ricorrenti
  • Reti Generative Adversariali
  • Transformers
  • Graph Neural Networks

5) Principi di progettazione e questioni di affidabilità nei sistemi basati su IA:

  • Linee guida di design, scoperta di bias e spiegabilità

Riferimenti bibliografici

1)    “Introduction to Data Mining”, 2nd Edition by Tan, Steinbach, Karpatne, Kumar

2)    Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning. MIT Press, 2016. https://www.deeplearningbook.org/

1)    Python a machine Learning, Bellini & Guidi Mc Graw Hill

2)    Intelligent Data Analysis: An Introduction, Berthold &Hand, Springe