Conoscenza e Capacità di Comprensione
Questo corso fornisce una conoscenza di base delle tecniche e algoritmi di Machine Learning, con un focus particolare su modelli di regressione, classificazione e apprendimento non supervisionato. Gli studenti impareranno a valutare le prestazioni dei modelli attraverso metriche di errore e tecniche di validazione, affrontando tematiche come overfitting e il tradeoff bias-varianza. Il corso esplora anche metodi di regolarizzazione, algoritmi di ensemble come bagging e boosting, e le reti neurali.
Conoscenze Applicate e Capacità di Comprensione
Il corso include esempi pratici ed esercizi che permetteranno agli studenti di applicare metodi di Machine Learning a problemi reali, utilizzando strumenti software comunemente usati nel settore quali scikit-learn. Gli studenti impareranno a progettare e implementare modelli di Machine Learning, gestire il caricamento e il preprocessamento dei dati, e validarne le prestazioni tramite metriche standard.
Autonomia di Giudizio
Gli studenti svilupperanno la capacità di valutare le prestazioni dei modelli di Machine 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. 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.
- Lezioni frontali, per fornire conoscenze teoriche e metodologiche della materia;
- Esercitazioni pratiche, per sviluppare competenze di “problem solving” e applicare la metodologia di progettazione;
- Laboratori, per apprendere e testare l’utilizzo degli strumenti correlati.
- Qualora l’insegnamento fosse erogato in modalità mista o a distanza, potrebbe essere necessario introdurre modifiche rispetto a quanto sopra.
1. Concetti di base del machine learning
1.1. Modelli e parametri
1.2. Modalità di apprendimento (supervised, unsupervised, self-supervised, reinforcement learning)
1.3. Valutazione delle prestazioni (precision, recall, F1-score, Curva ROC e AUC, MAE, MSE, Cross-validation e overfitting, Bias-variance trade-off)
2. Apprendimento supervisionato
2.1. Regressione lineare
2.2. Regolarizzazione
2.3. Classificazione lineare e non-lineare
2.4. Suppor vector machines
2.5. Alberi decisionali, bagging and boosting
2.6. Classificatori non-parametrici
2.7. Reti neurali
3. Apprendimento non supervisionato
3.1. Clustering
3.2. Riduzione della dimensionalità
3.3. Cenni a tecniche di self-supervised, constrastive, semi-supervised learning
4. Laboratorio di machine learning con Python
4.1. Sintassi, tipi di dato, strutture di controllo, classi
4.2. Librerie per il machine learning
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Concetti di base | |
| 2 | Laboratorio di Python: concetti base | |
| 3 | Regressione lineare e ottimizzazione | |
| 4 | Laboratorio sulla regressione lineare | |
| 5 | Valutazione delle prestazioni | |
| 6 | Laboratorio sulla valutazione delle prestazioni | |
| 7 | Regolarizzazione | |
| 8 | Laboratorio sulla regolarizzazione | |
| 9 | Classificazione | |
| 10 | Laboratorio sulla classificazione | |
| 11 | PCA | |
| 12 | Laboratorio sulla PCA | |
| 13 | Apprendimento non supervisionato | |
| 14 | Laboratorio su apprendimento non supervisionato | |
| 15 | Alberi decisionali e bagging/boosting | |
| 16 | Laboratorio su alberi decisionali e bagging/boosting | |
| 17 | Reti Neurali | |
| 18 | Laboratorio sulle reti neurali |
Progetto individuale su tematiche proposte dai docenti, da svolgere a casa.
Esame orale con discussione del progetto e domande di teoria.
- 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.
- Spiega la backpropagation and il suo ruolo nell'allenamento delle reti neurali
- Spiega il ruolo delle funzioni di attivazione in una rete neurale