Introduction to Machine Learning
Prerequisiti
Il corso è rivolto a studenti del secondo o terzo anno di laurea magistrale, in discipline scientifiche. Il corso prevede un laboratorio aperto per supportare gli studenti nell'esecuzione dei progetti (Didattica Integrativa (12 ore)).
Programma
Il corso introdurrà le basi dell'apprendimento automatico dai dati e del processo di disegno di un sistema . Un'attenzione particolare è dedicata alle moderne architetture di Reti Neurali Profonde.
Il corso è organizzato in 5 moduli: 3 moduli sono dedicati alla formalizzazione dei diversi task di apprendimento da dati, le tecniche ed algoritmi di riferimento, nonchè la loro esemplificazione pratica su semplici casi utilizzando le librerie python attualmente più usate.
Il primo ed il quinto modulo sono invece finalizzati all'introduzione di metodologie di buon disegno di un sistema di AI basato su apprendimento automatico.
1) Introduzione: il processo di Knowledge Discovery.
- Processo KDD: tutti i passaggi in sintesi.
- Comprensione dei dati ed esplorazione dei dati.
- Esercitazioni: esercitazioni pratiche su semplici casi di studio utilizzando librerie Python
- Introduzione a NumPy, Pandas e Seaborn (supporto extra in laboratorio)
2) Metodi di apprendimento non supervisionato: : metodi ed esercitazioni pratiche
- Mining dei pattern e Regole di associazione: concetti di base e algoritmo a-priori
- Esercitazioni: esercitazioni pratiche su semplici studi di caso utilizzando librerie Python
3) Apprendimento supervisionato: metodi ed esercitazioni pratiche
- Classificazione: introduzione, valutazione delle prestazioni. Un primo classificatore semplice:Decision tree
- Esercitazioni: esercitazioni pratiche su semplici studi di caso utilizzando librerie Python
- Panoramica sui metodi avanzati: Random Forest, Support Vector Machine
- Introduzione alle Reti Neurali, descrizione del progetto e assegnazione del progetto
- Esercitazioni: esercitazioni pratiche su metodi di classificazione avanzati e Reti Neurali conPyTorch
4) Introduzione alle architetture di Deep Learning: metodi ed esercitazioni pratiche
- Reti Neurali Convoluzionali, teoria e pratica con PyTorch
- Reti Neurali Ricorrenti
- Reti Generative Adversariali
- Transformers
- Graph Neural Networks
5) Principi di progettazione e questioni di affidabilità nei sistemi basati su IA:
- Linee guida di design, scoperta di bias e spiegabilità
Obiettivi formativi
I formidabili progressi nella potenza di calcolo, nell'acquisizione dei dati, nell'archiviazione dei dati e nella connettività hanno creato quantità di dati senza precedenti. Il Data Mining e il Machine Learning, cioè la scienza dell'estrazione di conoscenza da queste masse di dati, si sono quindi affermati come un ramo interdisciplinare dell'informatica. Il corso introdurrà le basi dell'apprendimento automatico e delle previsioni dai dati. Un'attenzione particolare è dedicata alle moderne architetture di Reti Neurali Profonde. L'obiettivo del corso è fornire agli studenti una conoscenza di base sia dei fondamenti teorici sia degli aspetti pratici del data mining e del machine learning, con attenzione al processo complessivo di estrazione della conoscenza e ai suoi problemi ingegneristici. Gli studenti saranno esposti alla realizzazione di due progetti che prevederanno la realizzazione di processi di apprendimento da dati in contesti e con metodi diversi.
Riferimenti bibliografici
1) “Introduction to Data Mining”, 2nd Edition by Tan, Steinbach, Karpatne, Kumar
2) Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning. MIT Press, 2016. https://www.deeplearningbook.org/
1) Python a machine Learning, Bellini & Guidi Mc Graw Hill
2) Intelligent Data Analysis: An Introduction, Berthold &Hand, Springe