phone icon Chiamaci 800.128.606
Home Freccia destra Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32 Freccia destra Apprendimento automatico e apprendimento profondo

Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32

Apprendimento automatico e apprendimento profondo

Settore scientifico disciplinare Numero crediti formativi (CFU) Docente
ING-INF/05 9 -- Nessun gestore --

Obiettivi Formativi

L’insegnamento si propone di fornire agli studenti una conoscenza approfondita delle principali tecniche di machine learning e deep learning per l'analisi di dati di natura eterogenea. In particolare, verranno presentati e approfonditi i principali algoritmi di classificazione di dati, di sequenze temporali di informazioni e di pattern complessi quali ad esempio le immagini, e le principali tecniche di apprendimento automatico sia di tipo supervisionato che non supervisionato. Inoltre, verranno illustrate le reti neurali e il loro funzionamento, presentate architetture neurali complesse per l’analisi di dati spaziali, temporali e modelli generativi e forniti i rudimenti dell’apprendimento con rinforzo. Verranno inoltre fornite competenze in merito alla spiegabilità degli algoritmi di machine learning. L’insegnamento contribuisce anche al potenziamento delle capacità trasversali Autonomia di giudizio, Abilità comunicative e Capacità di apprendimento degli studenti nell’ambito delle applicazioni dell’apprendimento automatico e dell’apprendimento profondo.

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione

Conoscenza e comprensione delle principali tecniche di pattern recognition e machine learning per l'analisi di dati di natura eterogenea.

Conoscenza degli operatori di Deep Learning delle tecniche di training non supervisionate, self-supervisionate e parzialmente supervisionate.

Conoscenza del linguaggio python, con particolare attenzione alle principali librerie utilizzate per il machine learning e per il deep learning.

Comprensione di tecnologie deep learning di frontiera basate su Graph Neural Networks, Transformers, Visual Transformers, Attention, etc.

Comprensione delle problematiche relative all’integrazione di dati eterogenei e delle metodologie per l’integrazione dei dati basate sulla statistica e il deep learning.

Comprensione dei meccanismi di spiegabilità degli algoritmi di machine learning e deep learning.

 

Capacità di applicare conoscenza e comprensione

Capacità di applicare i principali algoritmi di classificazione di dati, di sequenze temporali di informazioni e di pattern complessi come le immagini.

Capacità di applicare le principali tecniche di apprendimento automatico sia di tipo supervisionato che non supervisionato.

Capacità di implementare un workflow per un progetto di apprendimento automatico e/o di apprendimento profondo.

 

Abilità di giudizio

Il discente acquisirà la capacità di integrare le conoscenze e gestire la complessità delle applicazioni del machine learning e del deep learning, nonché di formulare giudizi sulla base di informazioni limitate o incomplete.

Lo studente sarà inoltre in grado di riflettere sulle responsabilità sociali ed etiche collegate all’applicazione delle tecniche di machine learning o deep learning a contesti e dati reali.

Abilità di comunicare

Capacità di motivare le scelte prendendo come riferimento studi scientifici che hanno contribuito in maniera evidente allo sviluppo delle applicazioni di apprendimento automatico e di apprendimento profondi. Capacità di descrivere e commentare le conoscenze acquisite, adeguando le forme comunicative sia ad interlocutori specialisti che non specialisti.

Capacità di apprendimento

Capacità di riportare casi di studio. Capacità di aggiornamento attraverso la consultazione di pubblicazioni scientifiche e di manuali tecnici.

Modalità di accertamento dei risultati di apprendimento acquisiti dallo studente

Per valutate le capacità acquisite nel governare le nozioni apprese, nel creare delle connessioni con altri insegnamenti del corso di studi in maniera autonoma lo studente sarà sottoposto a una prova scritta e/o orale  e alla valutazione di un progetto pratico da consegnare prima dell’esame. Attraverso il colloquio oppure la prova scritta sarà valutata la conoscenza degli elementi di carattere teorico mentre la valutazione del progetto valuterà la capacità di applicazione pratica delle nozioni acquisite.

Modalità di esame

Al termine del corso è previsto lo svolgimento di un esame di profitto composto da una parte progettuale e da una prova teorica. La valutazione della prova teorica andrà a fare media aritmetica con la valutazione del progetto pratico richiesto. Lo svolgimento del progetto è obbligatorio e il conseguimento di una votazione sufficiente (18/30) costituisce prerequisito per l’accesso alla prova teorica. Il progetto pratico è volto a dimostrare la capacità da parte dello studente di implementare un sistema di machine learning e/o deep learning. Lo studente dovrà sostenere una prova teorica volta a dimostrare la conoscenza degli argomenti trattati durante le lezioni ed in particolare dovrà dimostrare di aver acquisito le conoscenze teoriche relative all’implementazione di sistemi di machine learning e deep learning, alla loro valutazione e al loro utilizzo in ambiti reali. Sarà possibile svolgere l’esame teorico in due modalità: nelle sedi decentrate mediante lo svolgimento su supporto informatico (tablet appositamente dedicati) di un quiz a risposta multipla che prevede n°30 domande a risposta multipla più una 31esima domanda che verrà conteggiata solo in caso di risposte corrette a tutte le domande precedenti e che servirà per il conseguimento della lode; In presenza nelle sede di Roma in questo caso l’esame potrà essere in forma esclusivamente orale o composto da un test scritto e da un breve colloquio orale. 

Propedeuticità

Come da regolamento del corso di studi, non sono previste propedeuticità

Testi consigliati

Il docente consiglia l’integrazione del materiale fornito (videolezioni, dispense, slides, esercitazioni) con i seguenti testi, a cui il docente può fare riferimento durante le lezioni:

·       Gareth James ,Daniela Witten ,Trevor Hastie ,Robert Tibshirani ,Jonathan Taylor “An Introduction to Statistical Learning with application in python” (gratuitamente disponibile all’indirizzo https://www.statlearning.com/)

·       Ian Goodfellow and Yoshua Bengio and Aaron Courville “Deep Learning textbook” (gratuitamente disponibile all’indirizzo https://www.deeplearningbook.org/)

·       Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola “ Dive into Deep Learning” (gratuitamente disponibile all’indirizzo https://d2l.ai/)

Prerequisiti

Algebra lineare, Teoria e calcolo delle probabilità, Statistica,  Fondamenti di programmazione in python,   Intelligenza Artificiale 

ORGANIZZAZIONE DIDATTICA

Modalità di erogazione del corso:

Corso interamente erogato a distanza

 

Attività didattiche previste

Le attività di didattica, suddivise tra didattica erogativa (DE) e didattica interattiva (DI), saranno costituite da 7 ore per CFU e ripartite secondo una struttura di almeno 2,5 ore di DE (tenuta in considerazione la necessità di riascolto) e di 2 ore di DI per ciascun CFU.

 

Attività didattica erogativa (45 ore):

  • 45 lezioni frontali videoregistrate, della durata di circa 30 minuti ciascuna (tenuta in considerazione la necessità di riascolto) sempre disponibili in piattaforma.

 

Attività didattica interattiva (36 ore):

Le attività di didattica interattiva si svolgeranno mediante l’utilizzo di strumenti di videoconferenza sincrona secondo il calendario seguente:

·       Settembre 2025 2 lezioni da 2 ore:

1.    Introduzione all’utilizzo di python per il machine learning: 18 Settembre 2025

2.    Implementazione di algoritmi di classificazione in python

·       Ottobre 2025 3 lezioni da 2 ore

1.    Implementazione di algoritmi di regressione in python

2.    Implementazione di algoritmi di clustering in python

3.    Implementazione della PCA in python

·       Novembre 2025 2 lezioni da 2 ore 

1.    Introduzione all’utilizzo di python per il deep learning

2.    Implementazione di reti neurali in python

·       Dicembre 2025 2 lezioni da 2 ore

1.    Deep learning in python

2.    Cenni sull’implementazione dei transformer in python

·       Febbraio 2026 2 lezioni da 2 ore

1.    Introduzione all’utilizzo di python per il machine learning

2.    Implementazione di algoritmi di classificazione in python

·       Marzo 2026 3 lezioni da 2 ore

1.    Implementazione di algoritmi di regressione in python

2.    Implementazione di algoritmi di clustering in python

3.    Implementazione della PCA in python

·       Aprile 2026 2 lezioni da 2 ore 

1.    Introduzione all’utilizzo di python per il deep learning

2.    Implementazione di reti neurali in python

·       Maggio 2026 2 lezioni da 2 ore

1.    Deep learning in python

2.    Cenni sull’implementazione dei transformer in python

 

Attività di autoapprendimento:

Le ore di autoapprendimento previste sono dedicate allo studio dei materiali dei materiali forniti dal docente e alla realizzazione del progetto pratico.

Sono previsti dei test di autovalutazione a conclusione di ogni lezione, costituito da 5 domande (relative ai contenuti esposti nella lezione) a risposta multipla, con 4 risposte di cui una sola corretta.

L'articolazione tra DE e DI, per ciascuna unità didattica, sarà organizzata coerentemente con gli obiettivi formativi specifici dell’insegnamento.

 

Ricevimento studenti

Nella pagina dell’insegnamento, sezione “Ricevimento on line, vengono predisposti gli incontri con gli studenti in videoconferenza.

Gli studenti possono concordare un appuntamento effettuando una richiesta alla mail istituzionale del docente noemi.scarpato@uniroma5.it

Programma Del Corso

Lezione 0: Introduzione al corso

Modulo 1:  Concetti di base (1 CFU)

·       Lezione 1: Richiami di matematica per l’intelligenza artificiale

o   Algebra lineare: vettori, matrici, spazi vettoriali;

o   Statistica: correlazione, ipotesi e inferenza, p-values;

o   Probabilità: variabili dipendenti e indipendenti, probabilità condizionata, Teorema di Bayes, inferenza bayesiana;

o   Discesa del gradiente.

·       Lezione 2: Dati e Pattern

o   Tipi di dati : numerici, categorici, sequenze, immagini,

o   Pattern,

o   Acquisizione,

o   Preprocessing.

·       Lezione 3: Introduzione al Machine Learning e al Deep Learning

o   Un po’ di storia

o   Tipi di machine learning: supervisionato, non supervisionato, semi-supervisionato, Reinforcement learning

o   Neuroni biologici e Neuroni artificiali

o   Reti neurali artificiali, DNN

o   Applicazioni

·       Lezione 4: Metriche di valutazione

o    o   Valutazione dei modelli di machine learning e deep learning 

o   Confusion Matrix

o   Precision, Recall, F-Measure, Sensitivity , Specificity

o   Accuracy, ROC AUC

o   MSE, RMSE, MAE

o   Overfitting e Generalizzazione

Lezione 5: Gestione dei progetti di Apprendimento Automatico e Apprendimento Profondo

o   Partizionare i dati: Training , Test, Validation set

o   K-Fold cross validation

o   Random Search

o   Workflow dei progetti di Apprendimento Automatico e Apprendimento Profondo

Modulo 2: Fondamenti di  programmazione python per il machine learning (1 CFU)

·       Lezione 1: Configurare l’ambiente di sviluppo

o   Installare Anaconda

o   Creare Ambiente in anaconda

o   Strumenti per il coding python in anaconda: jupither notebook, spider, pycharm.

·       Lezione 2: Ambienti di sviluppo preconfigurati

o   Accedere a Google colab

o   Utilizzare le risorse avanzate di Google colab

o   Salvare e condividere un progetto su Google colab

·       Lezione 3: Lavorare con i dati in python

o   Numpy, pandas

o   Importare dati da excel,sql, csv

o   Importare dati da repository esterni

o   Strutture dati per il machine learning

o   Visualizzazione dei dati , Matplotlib e Seaborn

·       Lezione 4: Librerie per il machine learning e il deep learning

o   Shikit-learn

o   Tensor Flow

o   Pythorch

o   SciPy

·       Lezione 5: Gestire un progetto in python

o   Creazione di un progetto in pycharm

o   Utilizzo di github per la gestione collaborativa dei progetti

o   Utilizzo di google colab per la gestione collaborativa dei progetti

Modulo 3:  Apprendimento Automatico Classificazione (1 CFU)

·       Lezione 1: Naïve Bayes

o   Algoritmo di classificazione Bayesiano

o   Implementazione in python

o   Applicazioni e limiti

·       Lezione 2: Nearest Neighbor e KNN

o   Metriche di distanza (Euclidea, Manhattan, Coseno)

o   Algoritmo KNN e variant

o   Implementazione in python

o   Applicazioni

·       Lezione 3: Support Vector Machine

o   Margine massimo e iperpiani

o   Kernel

o   Implementazione in python classificazione binaria e multiclasse

o   Applicazioni

·       Lezione 4: Decision tree

o   Entropia e indice di Gini

o   Overfitting e pruning

o   Implementazione in python

o   Interpretabilità

·       Lezione 5: Random Forest

o   Ensemble di alberi e bagging

o   Importanza delle feature

o   Implementazione in python

o   Applicazioni

Modulo 4: Apprendimento Automatico Regressione (1 CFU)

·       Lezione 1: Regressione Lineare

o   Modello lineare semplice

o   Stima dei coefficienti

o   Implementazione in python

o   Valutazione del modello

·       Lezione 2: Regressione Lineare Multipla

o   Estensione a più variabili

o   Multicollinearità e VIF

o   Implementazione in python

o   Interpretazione dei coefficienti

·       Lezione 3: Logistic Regression

o   Funzione logistica

o   Classificazione binaria e multiclasse

o   Implementazione in python

o   Applicazioni

·       Lezione 4: Regressione Ridge e Lasso (Regolarizzazione)

o   Overfitting nei modelli lineari

o   Penalizzazione L1 e L2

o   Implementazione in python

o   Elastic Net

·       Lezione 5: Modelli Basati su alberi

o   Decision Tree Regressor

o   Random Forest Regressor

o   Gradient Boosting e XGBoost

o   Implementazione in pyhton

Modulo 5: Apprendimento Automatico non supervisionato (1 CFU)

·       Lezione 1: Clustering gerarchico

o   Metriche di similarità

o   Agglomerative vs divisive

o   Dendrogrammi

o   Implementazione in pyhton

·       Lezione 2: K-means

o   Algoritmo iterativo

o   Scelta del numero di cluster

o   Implementazione in pyhton

o   Vantaggi e limiti

·       Lezione 3: PCA

o   Riduzione della dimensionalità

o   Autovalori e autovettori

o   Visualizzazione dei dati

o   Implementazione in python

·       Lezione 4: DBSCAN

o   Principio di clustering basato sulla densità

o   Identificazione di cluster di forma arbitraria e gestione degli outlier

o   Parametri principali: epsilon (raggio) e minPts (numero minimo di punti)

o   Implementazione in pyhton

·       Lezione 5: t-SNE

o   Riduzione non lineare

o   Struttura locale dei dati

o   Visualizzazione in 2D/3D

o   Implementazione in pyhton

 

Modulo 6: Reti Neurali (1 CFU)

·       Lezione 1: Percettrone

o   Neurone artificiale

o   Regola di aggiornamento dei pesi

o   Limiti del percettrone

o   Implementazione in pyhton

·       Lezione 2: MLP

o   Architettura con hidden layer

o   Backpropagation

o   Funzioni di attivazione

o   Implementazione in pyhton

·       Lezione 3: CNN

o   Convoluzione e kernel

o   Pooling

o   Applicazioni in visione

o   Implementazione in pyhton

·       Lezione 4: RNN

o   Architettura sequenziale

o   Vanishing/exploding gradient

o   LSTM e GRU

o   Implementazione in pyhton

·       Lezione 5: Classificazione e Regressione con Reti Neurali

o   Output e funzioni di perdita per classificazione

o   Output e funzioni di perdita per regressione

o   Applicazioni pratiche

o   Implementazione in pyhton

Modulo 7: Apprendimento Profondo (1 CFU)

·       Lezione 1: Fondamenti del Deep Learning

o   Differenze tra Machine Learning e Deep Learning

o   Reti neurali profonde (DNN)

o   Vantaggi e limiti del deep learning

 

·       Lezione 2: Ottimizzazione nelle Reti Profonde

o   Discesa del gradiente stocastico e varianti (SGD, Adam)

o   Problemi di vanishing ed exploding gradient

o   Batch normalization e dropout

·       Lezione 3: Reti Convoluzionali Avanzate

o   Architetture classiche: AlexNet, VGG, ResNet

o   Residual connections e skip connections

o   Data augmentation e transfer learning

·       Lezione 4: Reti Ricorrenti Avanzate

o   LSTM e GRU

o   Sequence-to-sequence models

o   Applicazioni nel NLP e nel time series forecasting

o   Modelli multimodali

·       Lezione 5: Generative Deep Learning

o   Autoencoder e Variational Autoencoder (VAE)

o   Generative Adversarial Networks (GANs)

o   Applicazioni creative (immagini, testi, musica)

Modulo 8: Transformer (1 CFU)

·       Lezione 1: Introduzione ai Transformer

o   Limiti delle RNN nei dati sequenziali

o   Architettura encoder-decoder

o   Self-attention come concetto chiave

·       Lezione 2: Meccanismo di Attenzione

o   Scaled dot-product attention

o   Multi-head attention

o   Positional encoding

·       Lezione 3: Architetture di Riferimento

o   Transformer “puro” (Vaswani et al., 2017)

o   BERT: pre-training e fine-tuning

o   GPT e modelli autoregressivi

o   Vision Transformer

·       Lezione 4: Fine-Tuning e Prompt Engineering

o   Transfer learning

o   Fine-tuning per task specifici

o   Prompt engineering

·       Lezione 5: Applicazioni dei Transformer

o   NLP: traduzione, question answering, text generation

o   Vision Transformer (ViT) per le immagini

o   Multimodal transformer (testo + immagini)

o   Costi computazionali e scalabilità

o   Etica, bias e implicazioni sociali

Modulo 9: Spiegabilità (1 CFU)

·       Lezione 1: Introduzione alla Spiegabilità

o   Black-box vs white-box models

o   Importanza della spiegabilità in AI

o   Regolamentazione ed etica

·       Lezione 2: Metodi Post-hoc per Modelli Classici

o   Feature importance nei modelli ad albero

o   Partial Dependence Plots (PDP)

o   LIME e SHAP per modelli di ML

·       Lezione 3: Spiegabilità nel Deep Learning

o   Saliency maps e gradient-based methods

o   Class Activation Maps (CAM, Grad-CAM)

o   Perturbation-based explanations

·       Lezione 4: XAI per Transformer e NLP

o   Attention visualization e interpretazione

o   Analisi dei pesi nei layer di attenzione

o   Limitazioni delle spiegazioni attention-based

·       Lezione 5: Sfide e Prospettive della XAI

o   Trade-off tra accuratezza e interpretabilità

o   Robustezza delle spiegazioni

Futuro della spiegabilità e AI trasparente