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 è

Gli altri riferimenti bibliografici utilizzati dal docente nella preparazione delle lezioni sono:

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]
[S 2.1-2.3, 9.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]
[J 2.2.1-2.2.2, 3.1-3.3]
[S 5.2, 9.2.2]

1 Ottobre (esercitazione)

Esercitazione: Introduzione a Pandas.

[G 2]

Note

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

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]
[G 2]

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

Note

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

15 Ottobre (esercitazione)

Esercitazione: Metodi di regressione in SciKit-Learn.

[G 4]

Documentazione scikit-learn

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

22 Ottobre

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

[J 4.4]

Note

22 Ottobre (esercitazione)

Esercitazione: Classificazione generativa (univariata).

Documentazione scikit-learn

24 Ottobre

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

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

Note

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

Note 1, Note 2

29 Ottobre (esercitazione)

Esercitazione: Classificazione generativa (multivariata).

Documentazione scikit-learn

5 Novembre

Classe di ipotesi del percettrone. Algoritmo del percettrone. Convergenza del percettrone. Forma duale.

[W 6.4]

Note

5 Novembre (esercitazione)

Esercitazione: Regressione logistica in SciKit-Learn.

[G 4]

Documentazione scikit-learn

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

Note

3 Dicembre

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

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

3 Dicembre (esercitazione)

Esercitazione: Introduzione a TensorFlow.

[G 10]

5 Dicembre

Boosting e AdaBoost. Bagging e Random Forest.

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

Dim. Adaboost

10 Dicembre

Apprendimento non supervisionato. Clustering k-means e applicazioni.

[W 8.1, 8.5]
[S 22.2]

Note

10 Dicembre (esercitazione)

Esercitazione: Modelli ad albero.

[G 6, 7]

Documentazione scikit-learn

12 Dicembre

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

[S 22.1]
[J 10.3]

Note

17 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

17 Dicembre (esercitazione)

Esercitazione: Clustering.

[G 8, 9]

Documentazione scikit-learn

19 Dicembre

Debugging dell’apprendimento. Decomposizione sparsa di segnali.

[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

7 Gennaio

Altri modelli di apprendimento.

7 Gennaio (esercitazione)

Esercitazione: PyTorch.

[SAV 6.1-7.5]

Documentazione PyTorch Video tutorial

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

ObesityDataSet

2023-24

Massarone Serena

Applicazioni di modelli di apprendimento supervisionato per previsione sintomi post partum

Post Partum Depression

2023-24

Di Santo Silvia

Esopianeti

Habitable Worlds Catalog Data

2023-24

Gasparrini Gabriele

Heart attack prediction

Heart Attack Analysis

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

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