IN550 Machine Learning – A.A. 2023/24

La pagina web inerente la precedente erogazione dell’insegnamento da parte del docente è reperibile qui.


Avvisi

La lezione del 19 Ottobre è rinviata a causa della concomitante sessione di laurea.

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).
    Il repository GitHub del libro, contenente vari dataset ed esercizi, è qui.

Gli altri riferimenti bibliografici utilizzati nella preparazione delle lezioni sono:

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. Utilizzare la versione Anaconda3-2023.03.

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

19 Settembre

Presentazione del corso. Definizione ed esempi di Machine Learning. Tipologie di apprendimento.

[W 1.1-1.5]

19 Settembre (esercitazione)

Esercitazione: Introduzione a NumPy.

[G 2]

21 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]
[S 2.1-2.3, 9.2]

26 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]
[J 2.2.1-2.2.2, 3.1-3.3]
[S 5.2, 9.2.2]

26 Settembre (esercitazione)

Esercitazione: Introduzione a Pandas.

[G 2]

Note

28 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]
[J 3.5]

3 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]

3 Ottobre (esercitazione)

Esercitazione: Implementazione del metodo del gradiente in NumPy. Introduzione a SciKit-Learn.

[W 3.5]
[G 2]

5 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]
[S 14.1]

Note

10 Ottobre

Training, validazione e test. Validazione incrociata. Riduzione delle feature. Feature selection. Regolarizzazione L2 e regressione ridge.

[W 9.7.1]
[J 5.1, 6.1, 6.2]
[S 11.2, 13.1]

10 Ottobre (esercitazione)

Esercitazione: Metodi di regressione in SciKit-Learn.

[G 4]

Documentazione scikit-learn

12 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]
[J 2.2.3]
[S 19.1, 19.3]

17 Ottobre

Classificazione generativa. Classificatore Bayesiano. Fit di gaussiane univariate. Analisi del discriminante unidimensionale.

[J 4.4]

Note

17 Ottobre (esercitazione)

Esercitazione: Classificazione generativa (univariata).

Documentazione scikit-learn

24 Ottobre

Fit di gaussiane multivariate. Matrici di covarianza. Analisi del discriminante quadratica e lineare.

[J 4.4]
[B 4.2-4.2.2]
[M 4.2-4.2.4]
[S 24.1-24.3]

Note

24 Ottobre (esercitazione)

Esercitazione: Classificazione generativa (multivariata).

Documentazione scikit-learn

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]
[J 4.3]

Note 1, Note 2

31 Ottobre

Formulazione con etichette -1/+1. Funzione log-sum-exp. Separabilità lineare. Regressione logistica regolarizzata. Classe di ipotesi del percettrone.

[W 6.3]

31 Ottobre (esercitazione)

Esercitazione: Regressione logistica in SciKit-Learn.

[G 4]

Documentazione scikit-learn

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]

Note

14 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]

14 Novembre (esercitazione)

Esercitazione: Linee guida per i progetti.

16 Novembre

Reti neurali. Funzioni di attivazione. Strati nascosti. Emulazione di operatori logici.

[W 13.1-13.3]

21 Novembre

Discesa del gradiente nelle reti neurali. Propagazione in avanti e retropropagazione. Architetture convolutive.

[W 13.4-13.5]

21 Novembre (esercitazione)

Esercitazione: Implementazione di una rete neurale per la classificazione di immagini.

[G 10]

23 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]
[S 16.1-16.2]

Note

28 Novembre (esercitazione)

Esercitazione: Introduzione a TensorFlow.

[G 10]

30 Novembre

Modelli ad albero. Alberi di regressione. Alberi di classificazione. ERM per ceppi decisionali.

[W 14.1-14.4]
[S 18-18.2]

5 Dicembre

Boosting e AdaBoost. Bagging e Random Forest.

[W 14.5-14.6]
[S 10.2, 18.3-18.4]

Dim. Adaboost

5 Dicembre (esercitazione)

Esercitazione: Modelli ad albero.

[G 6, 7]

Documentazione scikit-learn

7 Dicembre

Apprendimento non supervisionato. Clustering k-means e applicazioni.

[W 8.1, 8.5]
[S 22.2]

Note

12 Dicembre

Clustering gerarchico. Metodi di linkage. Proprietà del single-linkage.

[S 22.1]
[J 10.3]

Note

12 Dicembre (esercitazione)

Esercitazione: Clustering.

[G 8, 9]

Documentazione scikit-learn

14 Dicembre

Principal Component Analysis. Sferificazione PCA. Sistemi di raccomandazione.

[W 8.2-8.4, 8.9.2, 9.3, 9.5]
[S 23.1]
[J 10.2]

Note

19 Dicembre

Debugging dell’apprendimento. Altri modelli di apprendimento.

[B 2.5, 8.1-8.2, 13.1-13.2]
[S 21.1-21.2, 23.3]
[M 10, 13, 14.7, 17]

Libro Ng sez. 1-32
Diapositive extra

Progetti software

Le linee guida per la realizzazione dei progetti verranno inserite nella cartella Teams del corso.

Esempi di progetti realizzati

Anno Accademico Autore Titolo Dataset

2023-24

Manna Sara

Qualità dell’acqua: classificazione binaria per predire la potabilità dell’acqua

water_potability

2023-24

Sellarione Francesca

Convolutional Neural Network per il riconoscimento e la classificazione di gemme

Gemstones Images Expanded

2023-24

Galvan Fabio

Predizione della sopravvivenza di pazienti affetti da insufficienza cardiaca

UCI Heart failure clinical records

2022-23

Ferretti Federica

Come la scienza dei dati consiglia il ristorante per te

yelp_academic_dataset_review

2022-23

Galatro Sara

L’endometriosi e il cibo

Dati raccolti durante il progetto

2022-23

Lisi Andrea

Machine Learning per il riconoscimento di strumenti musicali

Slakh2100

2022-23

Longaroni Giacomo

Classificazione di immagini raffiguranti 5 diverse condizioni meteo attraverso Convolutional Neural Network

multiclass_weather_dataset

2022-23

Moretti Davide

Riconoscimento di immagini generate artificialmente

Open Images v4

2022-23

Tacchetti Fabiana

Riconoscere segnali di depressione tramite post su Twitter

Mental-Health-Twitter

2020-21

Del Papa Michele

Sistema di predizione del genere e recommendation systems

ml-latest-small

2020-21

Di Gregorio Silvio

Dipendenza tra valori inquinanti e condizioni meteo

ARPA Lombardia

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

UCI Bank Marketing