DEEP LEARNING AND APPLIED ARTIFICIAL INTELLIGENCE Canale unico
Docente coordinatore e verbalizzante: EMANUELE RODOLA'
Docenti
Obiettivi formativi
Obiettivi generali
Acquisire familiarità con tecniche avanzate di machine learning supervisionato e non supervisionato; acquisire competenze di modellazione di problemi complessi attraverso tecniche di deep learning, e saperle applicare a contesti applicativi diversi.
Obiettivi specifici
Gli argomenti includono: reti neurali profonde, il loro addestramento e l'interpretazione dei risultati; reti convoluzionali e architetture prominenti; teoria del deep learning con particolare riferimento a questioni di convergenza; utilizzo di framework esistenti per l'implementazione di tecniche avanzate di machine learning; autoencoders; attacchi avversari.
Conoscenza e comprensione:
Conoscenza sul funzionamento delle reti neurali e loro interpretazione matematica come approssimatori universali. Comprensione dei limiti e delle potenzialità di modelli avanzati di machine learning.
Applicazione di conoscenza e comprensione
Progettazione, implementazione, messa in esercizio e analisi di architetture di deep learning per risolvere problemi complessi in disparati ambiti applicativi.
Autonomia di giudizio
Essere in grado di valutare le prestazioni di diverse architetture, e di valutare la capacità di generalizzazione delle stesse.
Abilità comunicative
Essere in grado di comunicare con chiarezza la formulazione di un problema di apprendimento avanzato e la sua implementazione, la sua applicabilità in contesti realistici, nonchè di motivare le scelte architetturali e di regolarizzazione.
Capacità di apprendimento successivo:
Essere in grado di apprendere tecniche alternative e più complesse quali i modelli generativi basati su traporto ottimo, le trasformate di scattering e lo studio del probilo energetico delle reti neurali. Essere in grado di implementare tecniche esistenti in maniera efficiente, robusta e affidabile.
Risultati di apprendimento attesi
Obiettivi generali
Acquisire familiarità con tecniche avanzate di machine learning supervisionato e non supervisionato; acquisire competenze di modellazione di problemi complessi attraverso tecniche di deep learning, e saperle applicare a contesti applicativi diversi.
Obiettivi specifici
Gli argomenti includono: reti neurali profonde, il loro addestramento e l'interpretazione dei risultati; reti convoluzionali e architetture prominenti; teoria del deep learning con particolare riferimento a questioni di convergenza; utilizzo di framework esistenti per l'implementazione di tecniche avanzate di machine learning; autoencoders; attacchi avversari.
Conoscenza e comprensione
Conoscenza sul funzionamento delle reti neurali e loro interpretazione matematica come approssimatori universali. Comprensione dei limiti e delle potenzialità di modelli avanzati di machine learning.
Applicazione di conoscenza e comprensione
Progettazione, implementazione, messa in esercizio e analisi di architetture di deep learning per risolvere problemi complessi in disparati ambiti applicativi.
Autonomia di giudizio
Essere in grado di valutare le prestazioni di diverse architetture, e di valutare la capacità di generalizzazione delle stesse.
Abilità comunicative
Essere in grado di comunicare con chiarezza la formulazione di un problema di apprendimento avanzato e la sua implementazione, la sua applicabilità in contesti realistici, nonché di motivare le scelte architetturali e di regolarizzazione.
Capacità di apprendimento successivo
Essere in grado di apprendere tecniche alternative e più complesse quali i modelli generativi basati su traporto ottimo, le trasformate di scattering e lo studio del profilo energetico delle reti neurali. Essere in grado di implementare tecniche esistenti in maniera efficiente, robusta e affidabile.
Prerequisiti
Importante: Calcolo; Algebra Lineare; Basi di machine learning.
Indispensabile: Fondamenti di programmazione (linguaggio Python).
Il corso coprirà comunque le basi di calcolo, algebra lineare e machine learning necessarie alla comprensione completa delle lezioni.
Programma dell’insegnamento
- Data, features, and embeddings
- Data awareness
- Modeling prior knowledge
- The curse of dimensionality
- Task-driven features and invariances
- Recap of linear algebra
- Vector spaces, bases
- Linear maps
- Matrix notation and matrix algebra
- Tensors and tensor operations
- Parametric models and regression
- Linear and polynomial regression
- Convexity and Lp norms
- Underfitting and overfitting
- Cross validation
- Logistic regression
- Optimization
- Gradient descent
- Stochastic gradient descent
- Learning rate, decay, momentum, batch size
- Forward and reverse-mode automatic differentiation
- Deep neural networks
- Multi layer perceptron
- Backpropagation
- Universal approximation theorems
- Autograd and modules
- Invariance, equivariance, compositionality
- Convolutional neural networks
- Pooling
- Double descent
- Regularization: weight penalty, early stopping, dropout, batchnorm
- Generative models
- PCA
- Manifolds and the manifold hypothesis
- Representation learning
- Autoencoders: variational, contractive, denoising
- Generative adversarial networks
- Adversarial learning
- Decision boundaries
- Black-box and white-box attacks
- Adversarial perturbations: universal and one-pixel
- Adversarial training
- Geometric deep learning
- Learning on graphs and point clouds
- Learning on surfaces
- Generative models of structured data
- Adversarial surfaces
Testi di riferimento
Data la natura altamente dinamica dell'area coperta da questo corso avanzato, non è previsto un testo unico di riferimento. Durante il corso verranno indicate e fornite di volta in volta le fonti sotto forma di articoli scientifici e capitoli di libri.
Come riferimento generale, i seguenti libri possono rivelarsi utili:
Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
MIT Press, 2016
Deep Learning with PyTorch
Vishnu Subramanian
Packt, 2018
Bibliografia
Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
MIT Press, 2016
Deep Learning with PyTorch
Vishnu Subramanian
Packt, 2018
Modalità di svolgimento
Il corso si svolge completamente in aula in modalità tradizionale.
Sono previste lezioni frontali che coprono sia gli aspetti teorici che quelli più tecnici. Circa il 40% del corso consiste in lezioni speciali di tipo tutorial, vale a dire dimostrazioni pratiche svolte direttamente in aula usando il framework di deep learning PyTorch. Agli studenti viene richiesto di utilizzare il proprio computer per seguire queste lezioni pratiche dal vivo e di svolgere i tutorial che vengono proposti di volta in volta.
Frequenza
In presenza, ma senza obbligo di frequenza.
Modalità di esame
Le modalità di verifica consistono nei seguenti passi:
1. Una prova intermedia scritta di autovalutazione, che non concorre al calcolo finale del voto.
2. Lo svolgimento di un progetto, potenzialmente in gruppi.
3. Un esame orale opzionale.
L'esame orale, opzionale, può apportare fino a 3 punti (sia in positivo che in negativo) al voto complessivo.
Tutte queste fasi sono volte a valutare le competenze tecniche e la comprensione teorica sviluppate nel corso dell'insegnamento, così come la capacità di lavorare in gruppo, la conoscenza della letteratura, la capacità di formulare correttamente un problema di deep learning e la messa a punto di un impianto sperimentale (software).
Esempi di domande
- Che cos'è la manifold hypothesis e come si collega al funzionamento degli autoencoder?
- Che cosa si intende quando diciamo che la self-attention è equivariante a permutazioni?
- Scrivere un esempio di attacco avversario a un classificatore visuale, dove la perturbazione avversaria è sparsa.
Programmazione delle attività didattiche
- Introduzione al deep learning
- Dati, feature, ed embedding
- Regressione lineare, convessità e gradienti
- Tensori e operazioni su tensori
- Overfitting e modelli nonlineari
- Modelli lineari e PyTorch Dataset
- Stochastic gradient descent
- Regressione logistica e ottimizzazione
- Multi-layer perceptron e back-propagation
- Autograd e Module
- Convolutional neural networks
- Regolarizzazione, batchnorm e dropout
- Incertezza, regolarizzazione e il deep learning toolset
- PCA e VAE
- VQ-VAE
- Strumenti del mestiere
- Adversarial learning & Geometric deep learning
- Diffusion models
- Self-attention e transformers
Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030
- Anno accademico2026/2027
- Corso di studio a cui afferisce l’insegnamentoComputer Science - Informatica
- Codice insegnamento10593236
- Anno e semestre1º anno - 2º semestre
- TipologiaAttività formative affini ed integrative
- AmbitoAttività formative affini o integrative
- SSDINF/01
- Presenza obbligatoriaNo
- Linguaeng
- CFU6 CFU
- Durata complessiva60 ore
- Distribuzione delle ore36 classroom hours, 24 training hours