Il corso introduce i concetti e modelli base del Machine Learning (ML). L'obiettivo principale è di fornire un'idea generale su cosa è l'apprendimento automatico, che sarà utile agli studenti per (1) capire i più recenti modelli dello stato dell'arte e (2) applicare correttamente i model di ML in pratica.
[DL] Deep Learning, Ian Goodfellow and Yoshua Bengio and Aaron Courville, MIT Press, 2016 Free online
[BRML] Bayesian Reasoning and Machine Learning, David Barber, Cambridge University Press, 2012 Free PDF online
[ESL] The Element of Statistical Learning, Trevor Hastie and Robert Tibshirani and Jerome Friedman, Springer, 2009 Free PDF online
[PRML] Pattern Recognition and Machine Learning, Christopher M. Bishop, Springer, 2006 Free PDF online
Obiettivi Formativi
1) Sviluppare il pensiero criticio su tematiche di Machine Learning (ML)
- Apprendere i conctetti teorici del ML
- Essere in grado di leggere, capire e discutere lavori di ricerca su ML
2) Utilizzare in maniera corretta modelli di ML in pratica
- Apprendere come scegliere/sviluppare un modello di ML dato un problema
- Essere in grado di implementare tutte le fasi dell'applicazione di un modello ML (dalla gestione corretta dei dati allo sviluppo del modello)
Prerequisiti
Il corso assume conoscenze basi di algebra lineare, probabilità, statistica e programmazione. Useremo Python come linguaggio di riferimento, ma nessuna esperienza pregressa è necessaria.
Modalità di verifica apprendimento
La verifica comprende la realizzazione di un progetto individuale (con relazione) e la sua discussione orale.
I progetti devono essere concordati con il docente e sono di due tipi:
- Tipo A: lo studente deve implementare 3 modelli base visti a lezioni e testare le loro performance su di un task
- Tipo B: lo studente deve implementare un singolo modello avanzato (solo parzialmente introdotto a lezione) e testare le sua performance su di un task
Lo scopo del progetto è dimostrare la capacità dello studente di risolvere praticamente un dato task utilizzando modelli di ML. La valutazione del progetto presta partciolare attenzione a come lo studente ha applicato i concetti teorici visti a lezione ed al suo pensiero critico sull'analisi dei risultati o eventuali comportamenti indesiderati.
Durante la discussione orale, lo studente espone quanto fatto nel progetto giustificando le scelte implementative/design più impattanti nel proprio progetto. La discussione prosegue con alcune domande per valutare la preparazione dello studente sui concetti visti a lezione ed la sua capacità di manipolarli/utilizzarli in pratica.
Programma del corso
Parte 1 - Concetti Base di ML
Spazio delle ipotesi, Training come ricerca, Generalizzazione, Underfitting, Overfitting, Bias/Variance del Modello, Regloarizzazione e Priors, Bayesian Learning, MLE e MAP, Schemi di validazione, Model Selection e Model Assessment.
Parte 2 - Supervised Learning
Supervised Learning + k-NN, Decision Trees, Logistic Regression, Perceptron, Support Vector Machine, , Limitazione dei modelli lineari, Basis Functions e Kernel Functions, Multi-Layer Perceptron (MLP), Come utilizzare un MLP in pratica, Introduzione a Pytorch
Parte 3 - Unsupervised Learning
Unsupervised Learning, Graphical Models e Bayesian Networks (BN), BN e Variabili Nascoste
Parte 4 - Advanced Topics
ML per Immagini, ML per Sequenze, ML per Dati Strutturati