Nuova ricerca

Marco PRATO

Professore Associato
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Insegnamento: Computational and statistical learning

Matematica (Offerta formativa 2021)

Obiettivi formativi

Il corso vuole fornire le conoscenze, competenze e strumenti necessari per analizzare da un punto di vista numerico un problema di apprendimento automatico, scegliendo l'algoritmo più opportuno a seconda delle peculiarità del problema specifico.
Per una più completa comprensione degli obiettivi formativi, si rimanda alla lettura dei risultati di apprendimento attesi a seguito dello svolgimento del presente percorso formativo.

Prerequisiti

- Calcolo differenziale per funzioni reali di una o più variabili reali.
- Elementi di algebra lineare.
- Fondamenti di probabilità e statistica.
- Fondamenti di programmazione in Matlab e Python.

Programma del corso

La scansione dei contenuti per CFU è da intendere come puramente indicativa. Essa può infatti subire modifiche nel corso dell’insegnamento alla luce dei feedback degli studenti e delle studentesse.

1.5 CFU (9 ore)
- Introduzione all’apprendimento automatico da esempi
- Supervised learning: funzioni loss e teoria di Vapnik

1.5 CFU (9 ore)
- Modelli lineari: ridge regression, lasso, elastic net, logistic regression
- Kernel methods e Support Vector Machines

2 CFU (12 ore)
- Metodi statistici: discriminant analysis, mixture models
- Ensemble learning: random forests, decision trees

1 CFU (6 ore)
- Unsupervised learning: principal component analysis, manifold learning, clustering

3 CFU (18 ore)
- Deep learning: ottimizzazione stocastica, neural networks artificiali, ricorrenti, convolutive

Metodi didattici

L’insegnamento viene erogato mediante lezioni frontali ed esercitazioni in presenza che vengono svolte con l’ausilio di lavagna, mezzi audiovisivi (slides) ed ambienti di calcolo Matlab e Python.
La frequenza alle lezioni frontali e alle esercitazioni in presenza non è obbligatoria.
L’insegnamento è erogato in lingua italiana.

Testi di riferimento

Il materiale di riferimento del corso saranno le dispense e le slides dei docenti, che verranno fornite agli studenti prima dell'inizio del corso.

Eventuali testi consigliati per approfondire le tematiche sviluppate nel corso sono i seguenti:

[1] C.M. Bishop, Pattern recognition and machine learning. Springer, 2006
[2] T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning, 2nd Edition. Springer, 2009
[3] I. Goodfellow, Y. Bengio, A. Courville, Deep Learning. MIT Press, 2016
[4] S. Raschka , Y. Liu , V. Mirjalili, Machine Learning with PyTorch and Scikit-Learn, Packt, 2022
[5] A. Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition. O'Reilly Media Inc., 2019

Verifica dell'apprendimento

L'esame si svolgerà al termine dell’insegnamento secondo il calendario ufficiale degli appelli d’esame. La prova è orale, della durata di 40 minuti circa.
L’esame prevede la discussione di un progetto assegnato durante il corso seguita da due domande aperte sugli algoritmi studiati a lezione.
Tali quesiti sono finalizzati a valutare:
- le conoscenze e le capacità di comprensione;
- l’applicazione di conoscenze e capacità di comprensione;
- le abilità comunicative;
- l’autonomia di giudizio.
Il voto riportato nell’esame è dato dalla valutazione complessiva alla luce della presentazione del progetto e delle risposte alle domande.
L'esito sarà comunicato al singolo studente alla fine della prova orale.

Risultati attesi

1) Conoscenza e capacità di comprensione.
Al termine del corso e tramite lezioni in aula e studio individuale, si auspica che lo/a studente/essa sia in grado di orientarsi all'interno dei principali concetti dell'apprendimento automatico, di implementarne i metodi principali nell'ambiente di programmazione Matlab/Python e di analizzarne le prestazioni in termini di efficienza e complessità computazionale.

2) Conoscenza e capacità di comprensione applicate.
Al termine del corso e tramite le esercitazioni in aula e il lavoro individuale, si auspica che lo/a studente/essa sia in grado di affrontare alcuni problemi di apprendimento automatico provenienti da applicazioni reali, individuare i metodi di apprendimento automatico adeguati al problema studiato e realizzare i relativi codici Matlab/Python.

3) Autonomia di giudizio.
Al termine del corso, si auspica che lo/a studente/essa sia in grado di:
a) verificare il proprio grado di apprendimento e comprensione dei concetti esposti grazie alla possibilità d’intervento a lezione;
b) riorganizzare le conoscenze apprese ed implementare la propria capacità di valutazione critica ed autonoma di quanto appreso;
c) padroneggiare un approccio metodologico che conduca a verificare tramite argomentazioni rigorose le affermazioni e i metodi presentati.

4) Abilità comunicative.
Al termine del corso, si auspica che lo/a studente/essa sia in grado di:
a) esprimere in modo corretto e logico le proprie conoscenze, riconoscendo l’argomento richiesto e rispondendo in modo puntuale e completo alle domande d’esame.
b) affrontare in modo puntuale e coerente un confronto dialettico, argomentando con precisione.

5) Capacità di apprendimento
Al termine del corso, si auspica che lo/a studente/essa sia in grado di:
a) acquisire delle conoscenze di tipo computazionale come proprio patrimonio, da poter utilizzare in qualsiasi altro momento del proprio percorso culturale;
b) aver sviluppato un'attitudine a un approccio metodologico che conduca ad un miglioramento del metodo di studio con conseguente approfondimento della capacità di apprendere.