Il corso si occupa dei principi teorici fondamentali della disciplina e delle esigenze ingegneristiche per le applicazioni specifiche. L’obiettivo è fornire agli studenti un’adeguata comprensione dei principi e degli aspetti pratici che è importante conoscere nell’ambito della progettazione di un’applicazione di queste tecniche a problemi di carattere scientifico e/o industriale.
Prerequisiti
Conoscenze matematiche fondamentali, algebra lineare, calcolo multivariabile, conoscenza pratica di almeno un linguaggio di programmazione, conoscenza base del linguaggio Python e della libreria Numpy.
Metodi didattici
Lezioni (ore/anno in aula): 25 Esercitazioni (ore/anno in aula): 20 Attività pratiche (ore/anno in aula): 0
Verifica Apprendimento
L'esame finale comprende la realizzazione di un progetto (da concordare preventivamente) che verrà discusso durante un esame orale. L’esame riguarderà anche la teoria e gli esercizi pratici mostrati a lezione.
Testi
La pagina web del corso (http://vision.unipv.it/DL) contiene le presentazioni delle lezioni e l’indicazione di ulteriori letture suggerite, con indicazioni di libri di testo per ulteriori approfondimenti. I link al software utilizzato per gli esercizi vengono resi disponibili tramite la piattaforma KIRO.
Contenuti
Approssimazione di una funzione target: dataset, rappresentazione, valutazione, ottimizzazione. Feed-Forward Neural Networks come funzioni parametriche non lineari, teorema dell’approssimazione universale. Predizione: valutazione in-sample e out-of-sample. Flow graphs, Wengert lists, derivazione automatica, derivazione componibile per strati. Studio delle reti profonde: motivazioni e difficoltà: medtodi di ottimizzazione del primo e secondo ordine, approssimazioni.
Deep Convolutional Neural Networks, cenni storici, componenti fondamentali e architetture diverse. Classificazione, segmentazione, riconoscimento di oggetti. Deep Recurrent Neural Networks, elaborazione delle serie temporali. Attention e transformers, principi e applicazioni al linguaggio naturale. Embedding. Generative Networks: Adversarial Networks, Variational Auto-Encoders, Diffusion Models. Reinforcement Learning, principi di base, integrazione delle reti profonde, architetture actor-critic. Monte Carlo Tree Search, integrazione di reti neurali, AlphaZero.