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 è

Gli altri riferimenti bibliografici utilizzati dal docente 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 dagli studenti

Anno Accademico Autore Titolo Dataset

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

ChatGPT sentiment analysis

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