DEEP LEARNING AND APPLIED ARTIFICIAL INTELLIGENCE Canale unico

Docente coordinatore e verbalizzante: EMANUELE RODOLA'

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
    • Testi di riferimento: Slide e note

  • Dati, feature, ed embedding
    • Testi di riferimento: Slide e note

  • Regressione lineare, convessità e gradienti
    • Testi di riferimento: Slide e note

  • Tensori e operazioni su tensori
    • Testi di riferimento: Slide e note

  • Overfitting e modelli nonlineari
    • Testi di riferimento: Slide e note

  • Modelli lineari e PyTorch Dataset
    • Testi di riferimento: Slide e note

  • Stochastic gradient descent
    • Testi di riferimento: Slide e note

  • Regressione logistica e ottimizzazione
    • Testi di riferimento: Slide e note

  • Multi-layer perceptron e back-propagation
    • Testi di riferimento: Slide e note

  • Autograd e Module
    • Testi di riferimento: Slide e note

  • Convolutional neural networks
    • Testi di riferimento: Slide e note

  • Regolarizzazione, batchnorm e dropout
    • Testi di riferimento: Slide e note

  • Incertezza, regolarizzazione e il deep learning toolset
    • Testi di riferimento: Slide e note

  • PCA e VAE
    • Testi di riferimento: Slide e note

  • VQ-VAE
    • Testi di riferimento: Slide e note

  • Strumenti del mestiere
    • Testi di riferimento: Slide e note

  • Adversarial learning & Geometric deep learning
    • Testi di riferimento: Slide e note

  • Diffusion models
    • Testi di riferimento: Slide e note

  • Self-attention e transformers
    • Testi di riferimento: Slide e note

Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030

  • Goal9
  • 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