- Foundations of Deep Learning
- Summary
Course Syllabus
Obiettivi
Lo scopo di questo corso è di fornire le basi teoriche di matematica e statistica per Deep Learning compresa l'algebra lineare, l'ottimizzazione, la regolarizzazione e la riduzione della dimensionalità. Le più importanti architetture di reti neurali profonde saranno studiate. Grazie ad una parte pratica del corso, lo studente sarà in grado di gestire i principali strumenti di Deep Learning e sarà in grado di progettare e ottimizzare una rete neurale profonda
Contenuti sintetici
Il corso consiste in una parte teorica e una parte pratica di laboratory. La parte teorica mira ad esplorare la matematica applicata, le basi dell'apprendimento automatico e le reti neurali profonde. La parte pratica consiste in esercizi di base e avanzati utilizzando framework di deep learning.
Programma esteso
- Introduzione al Deep Learning: Panoramica della disciplina, del suo impatto e dei concetti chiave.
- Algebra lineare: strumenti matematici di base per il deep learning, tra cui vettori, matrici e algebra lineare.
- Fondamenti di Machine Learning: Fondamenti del Machine Learning, tipi di apprendimento e introduzione ai principali algoritmi.
- Apprendimento basato sui gradienti e backpropagation: Comprendere il meccanismo di addestramento delle reti neurali attraverso i gradienti e la retropropagazione.
- Reti Feed Forward: Reti di percettori multistrato, funzioni di attivazione.
- Reti neurali convoluzionali (CNN): Esplorazione delle CNN e delle loro applicazioni nell'elaborazione dei dati visivi.
- Regolarizzazione per l'apprendimento profondo: Tecniche per migliorare la generalizzazione della rete e prevenire l'overfitting.
- Reti neurali ricorrenti (RNN): Studio dettagliato delle reti progettate per elaborare dati sequenziali, come le RNN e le LSTM.
- Deep Transformers: Esplorazione dei modelli di Transformers, con particolare attenzione ad architetture come GPT e BERT in uso nel NLP.
- Tecniche di riduzione della dimensionalità: Metodi come PCA e t-SNE per ridurre la complessità dei dati preservandone i modelli essenziali.
- Autoencoder: Studio degli autoencoder per l'apprendimento non supervisionato e l'estrazione di features.
- Metodologia pratica: Le migliori pratiche nell'applicazione del deep learning, tra cui la preelaborazione dei dati, la selezione del modello, le strategie di addestramento e la valutazione.
Risultati di apprendimento:
Al termine di questo corso, gli studenti saranno in grado di:
- Comprendere e applicare la matematica di base per il deep learning.
- Progettare e implementare vari tipi di reti neurali.
- Valutare e migliorare i modelli di deep learning utilizzando tecniche avanzate.
- Applicare il deep learning a problemi pratici in diversi ambiti.
Prerequisiti
Agli studenti che si iscrivono a questo corso è consigliata una conoscenza di base di matematica, della statistica e della programmazione.
Modalità didattica
L’insegnamento prevede una parte di lezioni teoriche che si terranno in aula, e una parte di laboratorio che si terranno in laboratorio e/o in aula e che richiederanno l’uso del proprio PC. Entrambe le parti saranno basate sia su didattica erogativa che interattiva.
Materiale didattico
Libri di testo principali:
- Goodfellow, I., Bengio, Y., Courville, A., & Bengio, Y. (2016). Deep learning (Vol. 1, No. 2). Cambridge: MIT press
https://www.deeplearningbook.org/ https://github.com/janishar/mit-deep-learning-book-pdf - Simon J.D. Prince (2023) Understanding Deep Learning Published by MIT Press Dec 5th 2023. https://udlbook.github.io/udlbook/
Risorse aggiuntive
- Neural Networks and Deep Learning by By Michael Nielsen (2016) – online book http://neuralnetworksanddeeplearning.com/
Dal docente
- Scientific articles suggested by the teacher (readings) Teachers' slides (http://elearning.unimib.it/)
Periodo di erogazione dell'insegnamento
Secondo Semestre
Modalità di verifica del profitto e valutazione
L'esame consiste in due parti:
- La prima è un test individuale. Riguarda la comprensione del codice su problemi di apprendimento automatico di base e alcune domande teoriche sulla prima parte del corso (questa prima parte dell'esame può essere sostenuta ad aprile, e in ogni appello a partire da giugno).
- La seconda parte dell'esame consiste nell'ideazione e nella realizzazione di un progetto assegnato dal docente su classificazione o riconoscimento o regressione di deep learning. Il progetto può essere sviluppato individualmente o in collaborazione con un collega. Il progetto sarà discusso sotto forma di presentazione orale e i docenti potranno fare domande sulla seconda parte teorica e pratica del corso (questa parte dell'esame può essere sostenuta a partire da giugno).
Orario di ricevimento
Su appuntamento,
Paolo Napoletano, Lunedi dalle 14 alle 16
Marco Buzzelli, Lunedi dalle 14 alle 16
Aims
The aim of this course is to provide the theoretical foundations of mathematics and statistics for deep learning including linear algebra, optimization, regularization, and dimensionality reduction. The most important deep neural network architectures will be covered in this course. Thanks to a practical part of the course, the student will be able to handle the main tools for deep learning and then design and optimize a deep neural network.
Contents
The course consists of a theoretical part and a practical part of laboratory. The theoretical part aims at exploring applied math, machine learning basics and deep neural networks. The practical part consists in basic and advanced exercises using deep learning frameworks.
Detailed program
- Introduction to Deep Learning: Overview of the field, its impact, and key concepts.
- Linear Algebra: Basic mathematical tools for deep learning including vectors, matrices, and linear algebra.
- Machine Learning Basics: Foundations of machine learning, types of learning, and introduction to the main algorithms.
- Gradient-Based Learning and Backpropagation: Understanding the mechanism of training neural networks through gradients and backpropagation.
- Feed Forward Networks: Multilayer Perceptron Networks, Activation functions.
- Convolutional Neural Networks (CNNs): Exploring relevant CNNs and their applications in processing visual data.
- Regularization for Deep Learning: Techniques to improve network generalization and prevent overfitting.
- Recurrent Neural Networks (RNNs): Detailed study of networks designed to process sequential data such as RNNs and LSTMs.
- Deep Transformers: Exploration of transformer models, focusing on architectures like GPT and BERT that transform the NLP landscape.
- Dimensionality Reduction Techniques: Methods like PCA and t-SNE for reducing the complexity of data while preserving its essential patterns.
- Autoencoders: Study of autoencoders for unsupervised learning and feature extraction.
- Practical Methodology: Best practices in applying deep learning including data preprocessing, model selection, training strategies, and evaluation.
Learning Outcomes:
By the end of this course, students will be able to:
- Understand and apply foundational mathematics for deep learning.
- Design and implement various types of neural networks.
- Evaluate and improve deep learning models using advanced techniques.
- Apply deep learning to practical problems across different domains.
Prerequisites
A basic understanding of calculus, statistics, and programming is recommended for students enrolling in this course.
Teaching form
The teaching includes a part of theoretical lectures that will be held in the classroom, and a part of laboratory that will be held in the laboratory and/or classroom and will require the use of one's own PC. The two parts will be based both on delivery mode and interactive mode.
Textbook and teaching resource
Main textbook:
- Goodfellow, I., Bengio, Y., Courville, A., & Bengio, Y. (2016). Deep learning (Vol. 1, No. 2). Cambridge: MIT press
https://www.deeplearningbook.org/ https://github.com/janishar/mit-deep-learning-book-pdf - Simon J.D. Prince (2023) Understanding Deep Learning Published by MIT Press Dec 5th 2023. https://udlbook.github.io/udlbook/
Additional Resources
- Neural Networks and Deep Learning by By Michael Nielsen (2016) – online book http://neuralnetworksanddeeplearning.com/
From the teacher
- Scientific articles suggested by the teacher (readings) Teachers' slides (http://elearning.unimib.it/)
Semester
Second Semester
Assessment method
The exam consists in two parts:
- The first one is an individual test. It is about code comprehension on basic machine learning problems and some theoretical questions on the first part of the course (this first part of the exam can be taken in April, and in every exam starting from June).
- The second part of the exam is the design and realization of a project assigned by the teacher about deep learning classification or recognition or regression. The project can be developed individually or in collaboration with one colleague. The project will be discussed as oral presentation and the teachers can ask questions about the second theoretical and practical parts of the course (this part of the exam can be taken starting from June).
Office hours
Upon appointment,
Paolo Napoletano, Monday from 14 to 16
Marco Buzzelli, Monday from 14 to 16
Key information
Staff
-
Marco Buzzelli
-
Paolo Napoletano