CODICE 114752 ANNO ACCADEMICO 2026/2027 CFU 8 cfu anno 1 ELECTRONIC ENGINEERING 11970 (LM-29) - GENOVA 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 LUCA LAZZARONI Ricevimento: Su appuntamento. Contattare il docente via Teams (preferibile) o e-mail. RICCARDO BERTA Ricevimento: Ricevimento su appuntamento. Gli studenti possono contattare il docente tramite e-mail o Microsoft Teams per concordare il ricevimento. EDOARDO RAGUSA Ricevimento: ricevimento su appuntamento email: edoardo.ragusa@unige.it LEZIONI INIZIO LEZIONI https://corsi.unige.it/en/corsi/11970/students-timetable 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.