IN550 Machine Learning – A.A. 2024/25
La pagina web inerente la precedente erogazione dell’insegnamento da parte del docente è reperibile qui.
Avvisi
La lezione del 19 Dicembre si terrà in Aula 57 di via Vasca Navale 84 (anziché in Aula A).
Orari ed aule
Quando: Martedì 16.00-19.00 (lezione + esercitazione) e Giovedì 16.00-18.00 (lezione)
Dove: Lab (Martedì), aula A (Giovedì)
Libro di testo
Il libro di testo adottato è
-
[W] Machine Learning Refined di J. Watts, R. Borhani, A.K. Katsaggelos (Cambridge University Press, 2ª edizione, 2020). Una copia del testo è reperibile nella biblioteca di area scientifica, sede Torri. Il repository GitHub del libro, contenente esempi in Jupyter, è qui.
Gli altri riferimenti bibliografici utilizzati dal docente nella preparazione delle lezioni sono:
-
[S] Understanding Machine Learning di S. Shalev-Shwartz, S. Ben-David (Cambridge University Press, 2014). Reperibile anche in biblioteca di area scientifica, sede centrale.
-
[J] An Introduction to Statistical Learning di G. James, D. Witten, T. Hastie, R. Tibshirani (Springer, 2ª edizione, 2021).
-
[M] Probabilistic Machine Learning di K.P. Murphy (MIT Press, 2022). Reperibile anche in biblioteca di area scientifica, sede Torri.
-
[B] Pattern Recognition and Machine Learning di C.M. Bishop (Springer, 2006). Reperibile anche in biblioteca di area scientifica, sede centrale.
-
[G] Hands-On Machine Learning with SciKit-Learn, Keras, and TensorFlow di A. Géron (O’Reilly, 3ª edizione, 2022). Reperibile anche in biblioteca di area scientifica, sede centrale. Il repository GitHub del libro, contenente esempi in Jupyter, è qui.
-
[SAV] Deep Learning with PyTorch di E. Stevens, L. Antiga, T. Viehmann (Manning, 2020). Il repository GitHub del libro, contenente esempi in Jupyter, è qui.
Legenda: = scaricabile, = disponibile in biblioteca, = include un repository con esempi di codice
Software utilizzato e quaderni Jupyter
Le esercitazioni utilizzeranno il linguaggio di programmazione Python 3. Si svilupperanno quaderni di Python interattivo (Jupyter) utilizzando varie librerie.
L’ambiente software consigliato, disponibile gratuitamente e liberamente installabile sul proprio calcolatore, è Anaconda. La versione testata dal docente è Anaconda3-2023.03, ma anche con versioni successive i quaderni dovrebbero funzionare correttamente.
Il materiale delle Esercitazioni verrà reso disponibile all’interno del canale Teams del corso (File > Materiale del corso).
Diapositive a cura del docente
Diario delle lezioni
I riferimenti [W] (oppure [S], [J], eccetera) indicano le sezioni del libro di testo o degli altri riferimenti bibliografici.
Data | Argomenti | Riferimenti al testo | Allegati |
---|---|---|---|
24 Settembre |
Presentazione del corso. Definizione ed esempi di Machine Learning. Tipologie di apprendimento. |
[W 1.1-1.5] |
|
24 Settembre (esercitazione) |
Esercitazione: Introduzione a NumPy. |
[G 2] |
|
26 Settembre |
Funzione costo, rischio atteso, rischio empirico. Principio ERM. Compromesso bias-varianza. Regressione lineare. ERM per la regressione lineare ed equazioni normali. |
[W 5.1-5.2.2] |
|
1 Ottobre |
Ipotesi bayesiana. Decomposizioni bias-varianza e stima-approssimazione. Coefficiente R². Variabili qualitative e one-hot encoding. Feature crossing. Regressione polinomiale e regressione lineare generalizzata. |
[W 5.4] |
|
1 Ottobre (esercitazione) |
Esercitazione: Introduzione a Pandas. |
[G 2] |
|
3 Ottobre |
Interpretazione probabilistica del metodo dei minimi quadrati. Stima a massima verosimiglianza (MLE) e principio ERM. Regressione K-Nearest Neighbor. Regressione Least Absolute Deviations (LAD). Regressione lineare pesata e multi-output. |
[W 5.3, 5.5-5.6] |
|
8 Ottobre |
Ottimizzazione matematica, funzioni convesse, criteri di convessità, norme. Metodi di ricerca locale. Metodo della discesa del gradiente. |
[W 2.1-2.5, 3.1-3.3, 3.5] |
|
8 Ottobre (esercitazione) |
Esercitazione: Implementazione del metodo del gradiente in NumPy. Introduzione a SciKit-Learn. |
[W 3.5] |
|
10 Ottobre |
Dimostrazione della convergenza di Gradient Descent (GD). Problematiche di GD. Metodi del secondo ordine. GD per l’apprendimento supervisionato. Batch, Mini-Batch e Stochastic GD. |
[W 3.6-3.7, 4.1-4.5, 5.2.3-5.2.4] |
|
15 Ottobre |
Training, validazione e test. Validazione incrociata. Riduzione delle feature. Feature selection. Regolarizzazione L2 e regressione ridge. |
[W 9.7.1] |
|
15 Ottobre (esercitazione) |
Esercitazione: Metodi di regressione in SciKit-Learn. |
[G 4] |
|
17 Ottobre |
Regolarizzazione L1 e regressione LASSO. Classificazione e funzione di costo 0-1. Inaccuratezza di un classificatore. Classificazione K-Nearest Neighbor. |
[W 9.7.2-9.7.3] |
|
22 Ottobre |
Classificazione generativa. Classificatore Bayesiano. Fit di gaussiane univariate. Analisi del discriminante unidimensionale. |
[J 4.4] |
|
22 Ottobre (esercitazione) |
Esercitazione: Classificazione generativa (univariata). |
||
24 Ottobre |
Fit di gaussiane multivariate. Matrici di covarianza. Analisi del discriminante quadratica e lineare. Naive Bayes. |
[J 4.4] |
|
29 Ottobre |
Classificazione discriminativa. Regressione logistica nel caso binario. Formulazione con etichette 0/1 e con etichette 1/-1. Regola SGD per la regressione logistica. Regressione logistica regolarizzata. |
[W 6.1-6.3] |
|
29 Ottobre (esercitazione) |
Esercitazione: Classificazione generativa (multivariata). |
||
5 Novembre |
Classe di ipotesi del percettrone. Algoritmo del percettrone. Convergenza del percettrone. Forma duale. |
[W 6.4] |
|
5 Novembre (esercitazione) |
Esercitazione: Regressione logistica in SciKit-Learn. |
[G 4] |
|
7 Novembre |
Support Vector Machines. Hard-margin SVM. Soft-margin SVM. Metriche di qualità nella classificazione. |
[W 6.4-6.4.4, 6.5-6.6, 6.8-6.9] |
|
19 Novembre |
Classificazione multiclasse: one-vs-rest e softmax. Reti neurali. Funzioni di attivazione. Emulazione di operatori logici. |
[W 7.1-7.2, 7.3.5-7.3.7, 13.1-13.3] |
|
19 Novembre (esercitazione) |
Esercitazione: Linee guida per i progetti. |
||
21 Novembre |
Discesa del gradiente nelle reti neurali. Propagazione in avanti e retropropagazione. Architetture convolutive. |
[W 13.4-13.5] |
|
26 Novembre |
Approssimazione universale. Spazio delle feature. Kernel e teorema del rappresentante. |
[W 11.1-11.2, 12.1-12.2] |
|
28 Novembre |
Esempi di kernel. Teorema di Mercer. Predizione con i kernel. |
[W 12.3-12.7] |
|
3 Dicembre |
Modelli ad albero. Alberi di regressione. Alberi di classificazione. ERM per ceppi decisionali. |
[W 14.1-14.4] |
|
3 Dicembre (esercitazione) |
Esercitazione: Introduzione a TensorFlow. |
[G 10] |
|
5 Dicembre |
Boosting e AdaBoost. Bagging e Random Forest. |
[W 14.5-14.6] |
|
10 Dicembre |
Apprendimento non supervisionato. Clustering k-means e applicazioni. |
[W 8.1, 8.5] |
|
10 Dicembre (esercitazione) |
Esercitazione: Modelli ad albero. |
[G 6, 7] |
|
12 Dicembre |
Clustering gerarchico. Metodi di linkage. Proprietà del single-linkage. |
[S 22.1] |
|
17 Dicembre |
Principal Component Analysis. Sferificazione PCA. Sistemi di raccomandazione. |
[W 8.2-8.4, 8.9.2, 9.3, 9.5] |
|
17 Dicembre (esercitazione) |
Esercitazione: Clustering. |
[G 8, 9] |
|
19 Dicembre |
Debugging dell’apprendimento. Decomposizione sparsa di segnali. |
[B 2.5, 8.1-8.2, 13.1-13.2] |
|
7 Gennaio |
Altri modelli di apprendimento. |
||
7 Gennaio (esercitazione) |
Esercitazione: PyTorch. |
[SAV 6.1-7.5] |
Progetti software
Le linee guida per la realizzazione dei progetti verranno inserite nella cartella Teams del corso.
Esempi di progetti realizzati in passato
Anno Accademico | Autore | Titolo | Dataset |
---|---|---|---|
2023-24 |
Camerini Nicoletta |
Classificazione del livello di obesità di un individuo |
|
2023-24 |
Massarone Serena |
Applicazioni di modelli di apprendimento supervisionato per previsione sintomi post partum |
|
2023-24 |
Di Santo Silvia |
Esopianeti |
|
2023-24 |
Gasparrini Gabriele |
Heart attack prediction |
|
2023-24 |
Romoli Roberta |
Studio delle scosse di assestamento nelle sequenze dell’Appennino Centrale |
Dati INGV |
2023-24 |
Vallifuoco Augusta Gioia |
Analisi di opere d’arte: riconoscimento di artisti usando reti neurali |
Dati raccolti durante il progetto |
2023-24 |
Attolini Chiara |
Classificazione e generazione di testo usando reti neurali |
|
2023-24 |
Manna Sara |
Qualità dell’acqua: classificazione binaria per predire la potabilità dell’acqua |
|
2023-24 |
Sellarione Francesca |
Convolutional Neural Network per il riconoscimento e la classificazione di gemme |
|
2023-24 |
Galvan Fabio |
Predizione della sopravvivenza di pazienti affetti da insufficienza cardiaca |
|
2022-23 |
Ferretti Federica |
Come la scienza dei dati consiglia il ristorante per te |
|
2022-23 |
Galatro Sara |
Dati raccolti durante il progetto |
|
2022-23 |
Lisi Andrea |
Machine Learning per il riconoscimento di strumenti musicali |
|
2022-23 |
Longaroni Giacomo |
Classificazione di immagini raffiguranti 5 diverse condizioni meteo attraverso Convolutional Neural Network |
|
2022-23 |
Moretti Davide |
Riconoscimento di immagini generate artificialmente |
|
2022-23 |
Tacchetti Fabiana |
Riconoscere segnali di depressione tramite post su Twitter |
|
2020-21 |
Del Papa Michele |
Sistema di predizione del genere e recommendation systems |
|
2020-21 |
Di Gregorio Silvio |
Dipendenza tra valori inquinanti e condizioni meteo |
|
2020-21 |
Meloni Pietro |
Classificazione di messaggi WhatsApp |
Dati raccolti durante il progetto |
2020-21 |
Passacantilli Elisa |
Il mondo del lavoro per i ragazzi degli istituti superiori professionali |
Dati raccolti durante il progetto |
2020-21 |
Proietti Alessio |
TensorPRO: Tensorflow Privacy Remindful Optimization |