DEEP LEARNING Canale unico
Docente coordinatore e verbalizzante: INDRO SPINELLI
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
Il corso introduce gli studenti al deep learning, sia supervisionato che non-supervisionato, alla modellazione di problemi complessi utilizzando tecniche di deep learning e alla loro applicazione a diverse ambiti.
Obiettivi specifici
Il corso persegue l'obiettivo di rendere gli studenti competenti in deep neural networks, nella loro formulazione e nell'interpretazione dei risultati, in reti convoluzionali e architetture prominenti, sulla teoria del deep learning con particolare riferimento a questioni di convergenza, su reti neurali ricorrenti e reti di transformer networks, framework di programmazione, approcci generativi come auto-encoder e reti generative avversarie.
Conoscenza e comprensione:
Gli studenti impareranno il funzionamento delle reti neurali e la loro interpretazione matematica come approssimatori universali. Comprenderanno i limiti e le potenzialità di modelli avanzati di machine learning e deep learning.
Applicazione di conoscenza e comprensione
Gli studenti saranno in grado di progettare, implementare, metter in servizio e analizzare in modo appropriato architetture di deep learning che affrontano problemi complessi in diverse aree applicative. Saranno in grado di sfruttare il portafoglio di tecniche e i diversi approcci mostrati nel corso per la soluzione di nuovi problemi e spiegare la logica alla base delle scelte di modellazione.
Autonomia di giudizio
Gli studenti saranno in grado di valutare le prestazioni di diverse architetture, valutare la capacità di generalizzazione delle stesse, e di proporre nuovi modelli basati su deep learning.
Abilità comunicative
Gli studenti acquisiranno la capacità di esporre le proprie conoscenze in modo chiaro e organizzato per proporre soluzioni basate su deep learning, formalizzare i problemi contestati e discutere efficacemente le proprie idee con esperti del settore.
Capacità di apprendimento successivo:
Le competenze acquisite consentiranno agli studenti di approfondire e ampliare autonomamente la propria gamma di conoscenze e capacità, dotandosi degli strumenti interpretativi necessari per leggere autonomamente i lavori pubblicati nella letteratura scientifica su deep learning.
Prerequisiti
Si richiede conoscenza di: 1) Programmazione in Python e basi di programmazione in Pytorch 2) Tecniche per il progetto di algoritmi e strutture dati 3) Matematica generale, algebra, teoria degli insiemi.
Programma dell’insegnamento
Introduzione al deep learning, la relazione tra deep learning e machine learning, e applicazioni alla computer vision e natural language processing.
Introduzione all'elaborazione delle immagini digitali e le convoluzioni, introduzione all'elaborazione di input di testo e parlato.
Revisione della regressione logistica multinomiale per la classificazione multi-classe, classificatori lineari, ottimizzazione con gradient descent e regolarizzazione.
Introduzione al grafico computazionale e alla backpropagation.
Reti neurali convoluzionali e moderne architetture convoluzionali.
Training di ConvNet: funzioni di attivazione, pre-elaborazione dei dati, inizializzazione dei pesi, batch-normalization, DropOut e data augmentation, ottimizzazione degli iperparametri, transfer learning.
Reti neurali convoluzionali per serie temporali.
Reti neurali ricorrenti RNN e LSTMS
Transformer Networks, attenzione e auto-attenzione, codifica posizionale, le moderne architetture di Transformer Networks e BERT.
Generative Deep Learning: generazione auto-regressiva, auto-encoder (AE), reti avversarie generative (GAN)
Etica del deep learning
Testi di riferimento
Testi adottati
Slides and coding scripts will be distributed after lectures, as well as references to online material, including papers and blogs.
Reference books Machine Learning:
Deisenroth, Faisal, Ong, 2020. Mathematics for Machine Learning (available at: https://mml-book.github.io/)
Christopher M. Bishop, 2006. Pattern Recognition and Machine Learning
Reference books for Deep Learning:
Aston Zhang, Zachary Lipton, Alexander J. Smola, Mu Li, 2023. Dive Into Deep Learning (available at: https://d2l.ai/)
Francois Fleuret, 2024. The Little Book of Deep Learning. (available at: https://fleuret.org/dlc/)
Michael M. Bronstein, Joan Bruna, Taco Cohen, Petar Veličković, 2024. Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges (available at: https://geometricdeeplearning.com/book/)
Ian Goofellow, Yoshua Bengio, Aaron Courville, 2017. Deep Learning (available at: https://www.deeplearningbook.org/)
Andrew Ng, 2019. Machine Learning Yearning (available at: https://www.deeplearning.ai/machine-learning-yearning/)
Zhang Lipton Li Smola Book, 2019 Dive into Deep Learning (interactive book and code at: http://d2l.ai/index.html)
Reference books for Computer Vision:
Antonio Torralba, Phillip Isola and William T. Freeman, 2024. Foundations of Computer Vision (https://mitpress.mit.edu/9780262048972/foundations-of-computer-vision/)
Richard Szeliski, 2010. Computer Vision: Algorithms and Applications
(available at: http://szeliski.org/Book)
Reference books for Robotics:
Frank Dellaert, 2024, Robotics. (available at: https://www.roboticsbook.org/)
Reference book for Python and Pytorch:
Aston Zhang, Zachary Lipton, Alexander J. Smola, Mu Li, 2023. Dive Into Deep Learning (available at https://d2l.ai/ , select Notebooks/Pytorch)
Jake VanderPlas, 2016. Python Data Science Handbook: Tools and Techniques for Developers: Essential Tools for working with Data (Book and notebooks available at: https://github.com/jakevdp/PythonDataScienceHandbook)
Online tutorials for Python: https://docs.python.org/3/tutorial/
Online tutorials for Pytorch: https://pytorch.org/tutorials/
Bibliografia
Bibliografia
Christopher M. Bishop, 2006. Pattern Recognition and Machine Learning
Michael M. Bronstein, Joan Bruna, Taco Cohen, Petar Veličković, 2024. Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges (available at: https://geometricdeeplearning.com/book/)
Frank Dellaert, 2024, Robotics. (available at: https://www.roboticsbook.org/)
Deisenroth, Faisal, Ong, 2020. Mathematics for Machine Learning (available at: https://mml-book.github.io/)
Francois Fleuret, 2024. The Little Book of Deep Learning. (available at: https://fleuret.org/dlc/)
Ian Goofellow, Yoshua Bengio, Aaron Courville, 2017. Deep Learning (available at: https://www.deeplearningbook.org/)
Zhang Lipton Li Smola Book, 2019 Dive into Deep Learning (interactive book and code at: http://d2l.ai/index.html)
Andrew Ng, 2019. Machine Learning Yearning (available at: https://www.deeplearning.ai/machine-learning-yearning/)
Antonio Torralba, Phillip Isola and William T. Freeman, 2024. Foundations of Computer Vision (https://mitpress.mit.edu/9780262048972/foundations-of-computer-vision/)
Aston Zhang, Zachary Lipton, Alexander J. Smola, Mu Li, 2023. Dive Into Deep Learning (available at: https://d2l.ai/)
Richard Szeliski, 2010. Computer Vision: Algorithms and Applications
(available at: http://szeliski.org/Book)
Jake VanderPlas, 2016. Python Data Science Handbook: Tools and Techniques for Developers: Essential Tools for working with Data (Book and notebooks available at: https://github.com/jakevdp/PythonDataScienceHandbook)
Modalità di svolgimento
Viene adottato un approccio classico in stile lezione frontale per presentare le nozioni fondamentali e le applicazioni delle stesse. Inoltre, gli studenti risolvono esercizi pratici in classe e come compito a casa.
Frequenza
Sebbene non obbligatoria, la frequenza è consigliata per poter acquisire le conoscenze di pari passo con lo svolgimento delle lezioni e poter essere preparati al meglio per la prova scritta d’esame.
Modalità di esame
L'esame consiste in una prova scritta con domande a risposta multipla su teoria e su esercizi che vertono sull’intero programma del corso.
Esempi di domande
Gli esami scritti si basano su domande a risposta multipla, che testano la conoscenza della teoria sui contenuti del corso. Alcune domande consistono in piccoli esercizi. Un esempio di esercizio è il calcolo del gradiente via backpropagation in un deep neural network.
Durante il corso verranno fornite alcune domande campione.
Programmazione delle attività didattiche
- Deep Learning
Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030
- Anno accademico2026/2027
- Corso di studio a cui afferisce l’insegnamentoApplied Computer Science and Artificial Intelligence – Informatica Applicata e Intelligenza Artificiale
- Codice insegnamento10595531
- Anno e semestre3º anno - 1º semestre
- TipologiaAttività formative caratterizzanti
- AmbitoDiscipline Informatiche
- SSDINF/01
- Presenza obbligatoriaNo
- Linguaeng
- CFU6 CFU
- Durata complessiva60 ore
- Distribuzione delle ore24 classroom hours, 36 seminars hours