INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICAIngegneria informaticaAnno accademico 2024/2025
9797581 - DEEP LEARNING A - Z
Docente: CONCETTO SPAMPINATO
Risultati di apprendimento attesi
Conoscenza e Capacità di Comprensione
Questo corso fornisce conoscenze sulle tecniche e gli algoritmi di Machine Learning e Deep Learning, con un'attenzione particolare ai modelli di regressione, alla classificazione e all'apprendimento non supervisionato. Gli studenti apprenderanno come valutare le prestazioni dei modelli attraverso metriche di errore e tecniche di validazione, affrontando questioni come l'overfitting e il trade-off bias-varianza. Il corso esplora anche metodi di regolarizzazione, algoritmi di ensemble come bagging e boosting, focalizzandosi poi su reti neurali e reti neurali convoluzionali (CNN). Brevi panoramiche sui Transformers e sugli approcci alla explainability e interpretabilità offrono approfondimenti sulle tecnologie più avanzate.
Conoscenze Applicate e Capacità di Comprensione
Il corso include esempi pratici ed esercizi che permetteranno agli studenti di applicare i metodi di Deep Learning a problemi del mondo reale, utilizzando strumenti software comunemente usati nell'industria come scikit-learn e PyTorch. Gli studenti impareranno a progettare e addestrare modelli di Deep Learning, gestire il caricamento e la preprocessazione dei dati, e validare le loro prestazioni utilizzando metriche standard.
Autonomia di Giudizio
Gli studenti svilupperanno la capacità di valutare le prestazioni dei modelli di Deep Learning, identificare e mitigare problemi di overfitting e bias, e scegliere tra diversi modelli e tecniche di ottimizzazione in base al contesto del problema.
Abilità Comunicative
Gli studenti acquisiranno la capacità di comunicare in modo efficace i risultati delle loro analisi e modellazioni, sia in forma scritta che orale. Saranno in grado di presentare i risultati delle loro ricerche e progetti a un pubblico tecnico e non tecnico, utilizzando un linguaggio appropriato e supportando le loro argomentazioni con dati e visualizzazioni pertinenti.
Capacità di Apprendimento
Il corso incoraggerà gli studenti a sviluppare un approccio critico e autonomo all'apprendimento, stimolando la curiosità verso le nuove tecnologie e tendenze nel campo del Machine Learning e Deep Learning. Gli studenti saranno in grado di continuare ad apprendere in modo indipendente, utilizzando risorse accademiche e professionali per aggiornarsi sulle ultime innovazioni e tecniche nel settore.
Modalità di svolgimento dell'insegnamento
- Lectures to provide theoretical and methodological knowledge of the subject;
- Practical exercises to develop problem-solving skills and apply the design methodology;
- Workshops to learn and test the use of related tools.
If the course is delivered in a blended or remote format, it may be necessary to introduce changes to the above.
Prerequisiti richiesti
È richiesta una conoscenza preliminare di programmazione e i fondamenti di algebra lineare e analisi matematica.
Frequenza lezioni
Contenuti del corso
1. Concetti di base1.1. Ipotesi e modelli1.2. Bias-variance trade-off1.3. Modalità di apprendimento1.4. Applicazioni del Machine Learning2. Regressione Lineare e Ottimizzazione2.1. Concetti base della regressione lineare2.2. Metodo dei minimi quadrati2.3. Ottimizzazione analitica e discesa del gradiente3. Valutazione delle Prestazioni3.1. Metriche di valutazione: accuratezza, precision, recall, F1-score3.2. Curva ROC e AUC3.3. Cross-validation4. Regolarizzazione4.1. Principi di regolarizzazione4.2. Ridge regression4.3. LASSO5. Classificatori5.1. Regressione logistica5.2. Support Vector Machine (SVM)5.3. Kernel trick5.4. Modelli non parametrici: k-NN6. PCA6.1. Riduzione della dimensionalità6.2. PCA: teoria e applicazioni7. Apprendimento Non Supervisionato7.1. Clustering: K-means, gerarchico7.2. Gaussian Mixture Models7.3. Valutazione di algoritmi di clustering8. Alberi Decisionali e Bagging/Boosting8.1. Decision Trees8.2. Random Forests8.3. AdaBoost e Gradient Boosting9. Reti Neurali
9.1. Architettura delle reti neurali
9.2. Funzioni di attivazione
9.3. Backpropagation
9.4. Algoritmi di ottimizzazione: Mini-batch gradient descent, Gradient descent with momentum, learning rate decay
10. Reti Neurali Convoluzionali
10.1. Concetti base: padding, strided convolution, dilation, convoluzione 2D e 3D e pooling
10.2. Architettura base di una CNN e modelli stato dell’arte
10.3. Allenamento CNN: Regolarizzazione, Dropout, Batch normalization, Data Augmentation
10.4 Cenni di explainability e interpretability
11. Transformer
11.1. Architettura Transformer
11.2. Self-attention mechanism
11.3. Applicazioni
12. Python per machine learning
12.1 Linguaggio Python (sintassi, tipi di dati, funzioni e classi)
12.2 Numpy, SciPy, Pandas, Matplotlib
12.3 Scikit-learn (Classification, Regression, Clustering)
12.4 Pytorch (Reti Neurali, CNN)
Testi di riferimento
Materiale di studio fornito dai docenti.
Programmazione del corso
| | Argomenti | Riferimenti testi |
| 1 | Concetti di base | |
| 2 | Regressione lineare e ottimizzazione | |
| 3 | Laboratorio sulla regressione lineare | |
| 4 | Valutazione delle prestazioni | |
| 5 | Laboratorio sulla valutazione delle prestazioni | |
| 6 | Regolarizzazione | |
| 7 | Laboratorio sulla regolarizzazione | |
| 8 | Classificazione | |
| 9 | Laboratorio sulla classificazione | |
| 10 | PCA | |
| 11 | Laboratorio su PCA | |
| 12 | Apprendimento non supervisionato | |
| 13 | Laboratorio su apprendimento non supervisionato | |
| 14 | Alberi decisionali e bagging/boosting | |
| 15 | Laboratorio su alberi decisionali e bagging/boosting | |
| 16 | Reti Neurali | |
| 17 | Laboratorio sulle reti neurali | |
| 18 | Reti neurali convoluzionali (CNN) | |
| 19 | Laboratorio su CNN | |
| 20 | Transformers | |
| 21 | Laboratorio su transformer | |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Progetto su tematiche proposte dai docenti, da svolgere a casa. Esame orale con discussione del progetto e domande di teoria.
Esempi di domande e/o esercizi frequenti
- Spiega il trade-off bias-variance e come influenza la capacità di generalizzazione di un modello di machine learning.
- Descrivi il metodo dei minimi quadrati e come viene utilizzato per stimare i parametri di un modello di regressione lineare.
- Qual è la differenza tra precision e recall? In quali scenari uno potrebbe essere più importante dell'altro?
- Confronta Ridge regression e LASSO, specificando quando sarebbe preferibile utilizzare uno rispetto all'altro.
- In che modo il kernel trick estende le capacità degli SVM per risolvere problemi non linearmente separabili?
- Come funziona l'algoritmo PCA per la riduzione della dimensionalità e quali sono i suoi limiti?
- Spiega come funziona un algoritmo di boosting come AdaBoost e quali sono i suoi vantaggi rispetto ai singoli alberi decisionali.
- Descrivi il concetto di convoluzione 2D nelle CNN e come influisce sull'estrazione delle caratteristiche dalle immagini.
- Spiega il self-attention mechanism nei Transformer e come contribuisce alla modellazione delle dipendenze a lungo raggio nei dati sequenziali.
English version