Salta al contenuto principale
CODICE 114752
ANNO ACCADEMICO 2026/2027
CFU
SETTORE SCIENTIFICO DISCIPLINARE IINF-01/A
LINGUA Inglese
SEDE
  • GENOVA
PERIODO Annuale
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

L’insegnamento introduce i fondamenti teorici e pratici dell’apprendimento automatico (machine learning), mostrando come sviluppare sistemi capaci di apprendere dai dati per svolgere compiti di previsione, classificazione e analisi. Il percorso comprende i principali modelli di apprendimento supervisionato e non supervisionato, le reti neurali profonde e le tecniche per elaborare immagini, sequenze e serie temporali. Particolare attenzione è dedicata all’ottimizzazione e all’esecuzione dei modelli su dispositivi embedded, considerando i vincoli di memoria, capacità di calcolo ed energia.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L'insegnamento fornisce le basi teoriche e pratiche dei paradigmi di apprendimento automatico: modelli lineari, alberi decisionali, foreste casuali e reti neurali profonde. Gli studenti imparano a selezionare le soluzioni più adatte, considerando le risorse di memoria e potenza computazionale del sistema elettronico su cui il modello verrà eseguito. Ciò li prepara a progettare soluzioni per problemi reali, come l'elaborazione dati in prossimità dei sensori.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Al termine dell’insegnamento, lo studente sarà in grado di:

  • formulare un problema di apprendimento automatico, individuando obiettivi, dati, variabili di ingresso e risultati attesi;
  • preparare ed esplorare i dati, gestendo variabili categoriche, normalizzazione, costruzione delle caratteristiche e suddivisione in insiemi di addestramento, validazione e test;
  • selezionare e applicare modelli per regressione, classificazione, clustering e riduzione della dimensionalità;
  • spiegare il funzionamento dei principali algoritmi e delle architetture neurali affrontati, discutendone ipotesi, vantaggi e limiti;
  • implementare e addestrare modelli in Python utilizzando le principali librerie per l’elaborazione dei dati, il machine learning e il deep learning;
  • valutare le prestazioni mediante metriche e procedure appropriate, riconoscendo fenomeni di overfitting e underfitting e adottando tecniche di regolarizzazione e selezione degli iperparametri;
  • applicare reti neurali all’elaborazione di immagini, sequenze e serie temporali, comprendendo il ruolo dei meccanismi di attenzione e delle architetture Transformer;
  • analizzare i requisiti di memoria e calcolo dei modelli e applicare tecniche di compressione e ottimizzazione per l’esecuzione su dispositivi embedded;
  • confrontare soluzioni alternative, motivando i compromessi tra prestazioni predittive, complessità, memoria, latenza e consumo energetico;
  • documentare il lavoro svolto e comunicare con chiarezza metodi, scelte implementative e risultati sperimentali.

PREREQUISITI

Sono richieste conoscenze di base nei seguenti ambiti:

  • Algebra lineare: vettori, matrici e tensori; norme e prodotti; trasformazioni lineari; inversione di matrici; autovalori e autovettori.
  • Calcolo differenziale e ottimizzazione: derivate, derivate parziali, gradiente, Jacobiano e Hessiano; minimizzazione di funzioni e discesa del gradiente.
  • Statistica e probabilità: concetti e strumenti fondamentali per descrivere i dati e interpretare i risultati.
  • Programmazione in Python: strutture del linguaggio e sviluppo di semplici programmi.
  • Calcolo scientifico e gestione dei dati: utilizzo di NumPy per array, operazioni matriciali e vettorizzazione; Pandas per serie e tabelle; Matplotlib per la rappresentazione grafica.

MODALITA' DIDATTICHE

L’insegnamento alterna lezioni frontali ed esercitazioni pratiche al calcolatore. Durante le lezioni, i docenti presentano i concetti teorici e ne illustrano l’applicazione mediante esempi di codice eseguiti in Jupyter Notebook. Gli studenti potranno utilizzare il proprio computer per svolgere le attività proposte. Le esercitazioni prevedono la preparazione dei dati, l’implementazione e l’addestramento dei modelli, la valutazione dei risultati e l’ottimizzazione per le piattaforme di destinazione. Il confronto tra soluzioni alternative e la discussione delle difficoltà incontrate favoriranno la comprensione dei metodi e la capacità di motivare le scelte. Gli studenti saranno inoltre guidati nell’interpretazione dei risultati e nella presentazione del lavoro svolto.

Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA), per disabilità o altri bisogni educativi sono invitati a contattare il docente e il referente di Scuola per la disabilità all’inizio dell’insegnamento per concordare eventuali modalità didattiche che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali. I contatti del referente di Scuola per la disabilità sono disponibili al seguente link: Comitato di Ateneo per l’inclusione delle studentesse e degli studenti con disabilità o con DSA | UniGe | Università di Genova

PROGRAMMA/CONTENUTO

Parte 1 – Fondamenti e apprendimento supervisionato

  • Introduzione al machine learning: apprendimento dagli esempi, modelli, parametri e iperparametri; addestramento e inferenza; approcci basati su modelli e su istanze.
  • Dati e capacità di generalizzazione: quantità, qualità e rappresentatività dei dati; rumore, overfitting, underfitting e teorema del no free lunch.
  • Preparazione dei dati: esplorazione statistica, correlazioni, campionamento, suddivisione dei dataset, codifica delle variabili categoriche, normalizzazione e costruzione delle caratteristiche.
  • Regressione e classificazione: formulazione dei problemi e metriche di valutazione; errore quadratico medio, accuratezza, precisione, richiamo, F1 e matrice di confusione; classificazione binaria, multiclasse, multilabel e multioutput.
  • Selezione dei modelli: validazione incrociata, ricerca degli iperparametri e interpretazione delle curve di apprendimento.
  • Modelli lineari: regressione lineare e polinomiale, equazione normale, discesa del gradiente batch, stocastica e mini-batch; regressione logistica e softmax; funzione di costo cross-entropy.
  • Generalizzazione e regolarizzazione: compromesso tra bias e varianza, penalizzazioni ed early stopping.
  • Alberi decisionali ed ensemble learning: entropia e algoritmo ID3; interpretabilità e overfitting; voting, random forest, boosting e stacking.

Parte 2 – Reti neurali e modelli avanzati

  • Fondamenti delle reti neurali: percettrone, reti multistrato, funzioni di attivazione, propagazione in avanti e backpropagation.
  • Addestramento delle reti profonde: inizializzazione dei pesi, gradienti evanescenti ed esplosivi, gradient clipping, batch normalization, ottimizzatori e strategie di variazione del learning rate.
  • Regolarizzazione e riutilizzo dei modelli: penalizzazioni, dropout, vincoli max-norm, early stopping e transfer learning.
  • Reti convoluzionali: convoluzioni, filtri, campo ricettivo, stride, padding e pooling; analisi dei requisiti computazionali e di memoria.
  • Visione artificiale: principali architetture convoluzionali, data augmentation, rilevamento di oggetti e segmentazione; reti encoder–decoder, convoluzioni trasposte e skip connections.
  • Neural Architecture Search: principi della ricerca automatica delle architetture ed esempi di approcci evolutivi.
  • Serie temporali e reti ricorrenti: previsione a uno o più passi, reti ricorrenti, LSTM, GRU e reti convoluzionali monodimensionali.
  • Attenzione e Transformer: reti bidirezionali, meccanismi di attenzione, codifica posizionale, multi-head attention e introduzione ai modelli linguistici di grandi dimensioni.
  • Riduzione della dimensionalità: dimensionalità elevata, approcci basati su proiezione e varietà, PCA e LLE.
  • Clustering e rilevamento di anomalie: K-means e varianti, scelta del numero di cluster, DBSCAN e miscele gaussiane; applicazioni alla segmentazione e all’apprendimento semi-supervisionato.
  • Autoencoder e modelli generativi: autoencoder profondi, convoluzionali, ricorrenti, denoising, sparsi e variazionali; introduzione alle reti generative avversarie (GAN).

Parte 3 – Ottimizzazione e implementazione su dispositivi embedded

  • Edge AI e TinyML: elaborazione in prossimità dei sensori e vincoli delle piattaforme di destinazione.
  • Quantizzazione: quantizzazione successiva all’addestramento e quantization-aware training.
  • Reti binarie: principi, addestramento e implicazioni per l’implementazione hardware.
  • Pruning: rimozione di pesi e strutture della rete; approcci strutturati e non strutturati.
  • Knowledge distillation: trasferimento delle conoscenze da un modello teacher a un modello student.
  • Strumenti per l’inferenza embedded: TensorFlow Lite e TensorFlow Lite for Microcontrollers.
  • Implementazione su FPGA: introduzione al flusso di sviluppo con Brevitas e FINN.
  • Deployment su piattaforme embedded: esercitazioni su NVIDIA Jetson Nano e Arduino Nano BLE Sense.
  • Modelli visione-linguaggio: esempio di esecuzione su Raspberry Pi 5.

Le esercitazioni utilizzano Python, Jupyter Notebook e librerie quali NumPy, Pandas, Matplotlib, scikit-learn, TensorFlow/Keras e PyTorch.

TESTI/BIBLIOGRAFIA

I materiali e gli esempi di codice utilizzati durante le lezioni costituiscono il riferimento per lo studio e lo svolgimento delle esercitazioni.

Per approfondimenti si consigliano:

  • Aurélien Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, O’Reilly Media.
  • Trevor Hastie, Robert Tibshirani, Jerome Friedman, The Elements of Statistical Learning, Springer.

Ulteriori risorse comprendono i materiali di Neural Networks for Machine Learning, articoli scientifici e documentazione delle librerie utilizzate, secondo le indicazioni dei docenti.

DOCENTI E COMMISSIONI

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L’esame consiste in una prova orale che comprende domande sugli argomenti teorici e la discussione delle esercitazioni svolte durante l’insegnamento. Gli studenti possono sostenere l’esame in un’unica prova oppure suddividerlo in due prove orali, dedicate rispettivamente agli argomenti e alle esercitazioni del primo e del secondo semestre. La prima prova può essere sostenuta già al termine del primo semestre. Lo studente dovrà dimostrare di comprendere i principi di funzionamento dei modelli di machine learning e di saperli applicare alla soluzione di problemi concreti, con particolare attenzione all’ottimizzazione e all’implementazione su dispositivi embedded. La discussione delle esercitazioni riguarderà la preparazione dei dati, la scelta e l’addestramento dei modelli, la valutazione delle prestazioni e le soluzioni adottate per rispettare i vincoli della piattaforma di destinazione.

Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA), per disabilità o altri bisogni educativi possono richiedere misure compensative e/o dispensative per l’esame. Le modalità saranno definite caso per caso, nel rispetto del Regolamento di Ateneo, d’intesa con il docente e con il referente della Scuola per la disabilità e i DSA.

MODALITA' DI ACCERTAMENTO

La prova orale valuta la comprensione dei contenuti e la capacità di applicarli alla progettazione, valutazione e implementazione di sistemi di apprendimento automatico.

Lo studente dovrà:

  • spiegare i concetti e gli algoritmi affrontati, descrivendone il funzionamento, le condizioni di applicazione, i vantaggi e i limiti;
  • motivare la scelta dei dati, delle procedure di preparazione, dei modelli e delle metriche di valutazione;
  • interpretare i risultati sperimentali, riconoscendo problemi di generalizzazione e possibili criticità dell’addestramento;
  • confrontare soluzioni alternative in relazione alle prestazioni predittive e ai requisiti computazionali;
  • illustrare le tecniche di ottimizzazione e le scelte adottate per l’esecuzione su dispositivi embedded;
  • presentare il lavoro con chiarezza e proprietà di linguaggio tecnico.

La valutazione terrà conto della correttezza e completezza delle risposte, della capacità di collegare teoria e pratica, dell’autonomia di giudizio e della chiarezza della comunicazione tecnica.

ALTRE INFORMAZIONI

Rivolgersi al docente per ulteriori informazioni non comprese nella scheda insegnamento.