IN550 Machine Learning – A.A. 2022/23
La pagina web inerente la precedente erogazione dell’insegnamento da parte del docente è reperibile qui.
Avvisi
Orari ed aule
Quando: Mercoledì 8.00-10.00, Giovedì 14.00-16.00 e Venerdì 10.00-11.00
Dove: Lab (Mercoledì e Venerdì), aula M5 (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).
Il repository GitHub del libro, contenente vari dataset ed esercizi, è qui.
Gli altri riferimenti bibliografici utilizzati sono:
-
[S] Understanding Machine Learning di S. Shalev-Shwartz, S. Ben-David (Cambridge University Press, 2014).
-
[J] An Introduction to Statistical Learning di G. James, D. Witten, T. Hastie, R. Tibshirani (Springer, 2013).
-
[M] Probabilistic Machine Learning: An Introduction di K.P. Murphy (MIT Press, 2022).
-
[B] Pattern Recognition and Machine Learning di C.M. Bishop (Springer, 2006).
-
[G] Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow di A. Géron (O’Reilly, 2ª edizione, 2019).
Il repository GitHub del libro, contenente vari esempi in Jupyter, è qui.
Per le altre informazioni ufficiali sull’insegnamento si rimanda al GOMP.
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, gratuitamente e liberamente installabile sul proprio calcolatore, è Anaconda. Utilizzare la versione Anaconda3-2021.05.
Il materiale delle Esercitazioni verrà reso disponibile all’interno del canale Teams del corso (File > Materiale del corso).
Progetti software
Le linee guida per la realizzazione dei progetti verranno inserite nella cartella Teams 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 |
---|---|---|---|
21 Settembre |
Presentazione del corso. Definizione ed esempi di Machine Learning. Tipologie di apprendimento. |
[W 1.1-1.5] |
|
22 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] |
|
23 Settembre |
Esercitazione: Introduzione a NumPy. |
[G 2] |
|
28 Settembre |
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] |
|
29 Settembre |
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] |
|
30 Settembre |
Esercitazione: Introduzione a Pandas. |
[G 2] |
|
5 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] |
|
6 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] |
|
7 Ottobre |
Esercitazione: Implementazione del metodo del gradiente in NumPy. Introduzione a SciKit-Learn. |
[W 3.5] |
|
12 Ottobre |
Training, validazione e test. Validazione incrociata. Riduzione delle feature. Feature selection. Regolarizzazione L2 e regressione ridge. |
[W 9.7.1] |
|
13 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] |
|
14 Ottobre |
Esercitazione: Metodi di regressione in SciKit-Learn. |
[G 4] |
|
19 Ottobre |
Classificazione generativa. Classificatore Bayesiano. Fit di gaussiane univariate. Analisi del discriminante unidimensionale. |
[J 4.4] |
|
20 Ottobre |
Fit di gaussiane multivariate. Matrici di covarianza. Analisi del discriminante quadratica e lineare. |
[J 4.4] |
|
21 Ottobre |
Esercitazione: Classificazione generativa (univariata). |
||
26 Ottobre |
Classificazione discriminativa. Regressione logistica nel caso binario. Sigmoide logistica e sue proprietà. Formulazione con etichette 0/1. Regola SGD per la regressione logistica. |
[W 6.1-6.2] |
|
27 Ottobre |
Formulazione con etichette -1/+1. Funzione softmax. Separabilità lineare. Regressione logistica regolarizzata. Classe di ipotesi del percettrone. |
[W 6.3] |
|
28 Ottobre |
Esercitazione: Classificazione generativa (multivariata). |
||
2 Novembre |
Algoritmo del percettrone. Convergenza del percettrone. Forma duale del percettrone. Support Vector Machines. Hard-margin SVM. |
[W 6.4-6.4.4, 6.5-6.6] |
|
3 Novembre |
Soft-margin SVM. Metriche di qualità nella classificazione. Sensibilità, specificità e accuratezza bilanciata. Classificazione multiclasse: one-vs-rest e softmax. |
[W 6.8-6.9, 7.1-7.2, 7.3.5-7.3.7] |
|
4 Novembre |
Esercitazione: Regressione logistica in SciKit-Learn. |
[G 4] |
|
16 Novembre |
Reti neurali. Funzioni di attivazione. Strati nascosti. Emulazione di operatori logici. |
[W 13.1-13.3] |
|
17 Novembre |
Discesa del gradiente nelle reti neurali. Propagazione in avanti e retropropagazione. Architetture convolutive. |
[W 13.4-13.5] |
|
18 Dicembre |
Esercitazione: Linee guida per i progetti. |
||
23 Novembre |
Approssimazione universale. Spazio delle feature. Kernel e teorema del rappresentante. |
[W 11.1-11.2, 12.1-12.2] |
|
24 Novembre |
Dimostrazione del teorema del rappresentante. Esempi di Kernel. Teorema di Mercer. Predizioni con i kernel. |
[W 12.3-12.7] |
|
25 Novembre |
Esercitazione: Implementazione di una rete neurale per la classificazione di immagini. |
[G 10] |
|
30 Novembre |
Modelli ad albero. Alberi di regressione. Alberi di classificazione. ERM per ceppi decisionali. |
[W 14.1-14.4] |
|
1 Dicembre |
Boosting e AdaBoost. Bagging e Random Forest. |
[W 14.5-14.6] |
|
25 Novembre |
Esercitazione: Introduzione a TensorFlow. |
[G 10] |
|
7 Dicembre |
Apprendimento non supervisionato. Clustering k-means e applicazioni. |
[W 8.1, 8.5] |
|
9 Dicembre |
Esercitazione: Modelli ad albero. |
[G 6, 7] |
|
14 Dicembre |
Clustering gerarchico. Metodi di linkage. Proprietà del single-linkage. |
[S 22.1] |
|
15 Dicembre |
Principal Component Analysis. Sferificazione PCA. Sistemi di raccomandazione. |
[W 8.2-8.4, 8.9.2, 9.3, 9.5] |
|
16 Dicembre |
Esercitazione: Clustering. PCA. |
[G 8, 9] |
|
21 Dicembre |
Debugging dell’apprendimento. Altri modelli di apprendimento. |
[B 2.5, 8.1-8.2, 13.1-13.2] |