DEEP LEARNING
Anno accademico 2024/2025 - Docente: SIMONE PALAZZORisultati di apprendimento attesi
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
Prerequisiti richiesti
Frequenza lezioni
Contenuti del corso
1.1. Ipotesi e modelli
1.2. Bias-variance trade-off
1.3. Modalità di apprendimento
1.4. Applicazioni del Machine Learning
2. Regressione Lineare e Ottimizzazione
2.1. Concetti base della regressione lineare
2.2. Metodo dei minimi quadrati
2.3. Ottimizzazione analitica e discesa del gradiente
3. Valutazione delle Prestazioni
3.1. Metriche di valutazione: accuratezza, precision, recall, F1-score
3.2. Curva ROC e AUC
3.3. Cross-validation
4. Regolarizzazione
4.1. Principi di regolarizzazione
4.2. Ridge regression
4.3. LASSO
5. Classificatori
5.1. Regressione logistica
5.2. Support Vector Machine (SVM)
5.3. Kernel trick
5.4. Modelli non parametrici: k-NN
6. PCA
6.1. Riduzione della dimensionalità
6.2. PCA: teoria e applicazioni
7. Apprendimento Non Supervisionato
7.1. Clustering: K-means, gerarchico
7.2. Gaussian Mixture Models
7.3. Valutazione di algoritmi di clustering
8. Alberi Decisionali e Bagging/Boosting
8.1. Decision Trees
8.2. Random Forests
8.3. AdaBoost e Gradient Boosting
9. 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
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 sulla PCA | |
12 | Apprendimento non supervisionato | |
13 | Laboratorio sull'apprendimento non supervisionato | |
14 | Alberi decisionali e bagging/boosting | |
15 | Laboratorio su alberi decisionali | |
16 | Reti neurali | |
17 | Laboratorio su reti neurali | |
18 | Reti neurali convoluzionali (CNN) | |
19 | Laboratorio su CNN | |
20 | Transformers | |
21 | Laboratorio su transformers |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Esempi di domande e/o esercizi frequenti
- 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.