Nuova ricerca

Marco PRATO

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

Insegnamento: Computational and statistical learning

Informatica (Offerta formativa 2020)

Obiettivi formativi

Il corso di Computational and Statistical Learning mira a formare studenti in grado di analizzare da un punto di vista numerico un problema di apprendimento automatico, scegliendo l'algoritmo più opportuno a seconda delle peculiarità del problema specifico. L'implementazione dei metodi studiati nel linguaggio Matlab o Python permetterà allo studente da un lato di mettere in pratica le nozioni teoriche e dall'altro di consolidare conoscenza e pratica di un linguaggio di programmazione all'avanguardia nel mondo del calcolo scientifico.

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

- Introduzione all’apprendimento automatico da esempi
- Supervised learning: funzioni loss e teoria di Vapnik
- Kernel methods e Support Vector Machines
- Metodi statistici: discriminant analysis, mixture models
- Ensemble learning: random forests, decision trees
- Unsupervised learning: principal component analysis, manifold learning, clustering
- Deep learning: ottimizzazione stocastica, neural networks artificiali, ricorrenti, convolutive
- Case studies: laboratori in collaborazione con Ammagamma S.r.l.

Metodi didattici

Le lezioni saranno suddivise in lezioni teoriche ed esercitazioni. In entrambi i casi, a causa della situazione sanitaria COVID19, le lezioni saranno svolte a distanza nella modalità di videoregistrazioni e rese disponibili agli studenti nell'arco del periodo didattico.

Testi di riferimento

Dispense fornite dal docente / Teacher's notes

C.M. Bishop, Pattern recognition and machine learning. Springer, 2006

Verifica dell'apprendimento

Modalità d'esame: prova orale.
Il candidato deve dimostrare di conoscere approfonditamente:
- i contenuti curricolari e formativi dell'insegnamento, parte istituzionale d'aula e parte esercitativa di laboratorio;
- la formulazione statistica del problema dell'apprendimento automatico da esempi;
- le nozioni principali sull'apprendimento supervisionato e le proprietà delle principali strategie quali i kernel methods, i metodi statistici e l'apprendimento d'insieme;
- le tecniche principali per l'apprendimento automatico non supervisionato;
- le tecniche di deep learning con particolare riferimento alle strategie di ottimizzazione stocastica necessarie per l'addestramento delle reti neurali;
- la sintassi Matlab/Python per l'implementazione di un algoritmo elementare al calcolatore.

La verifica è integrale, rispetto ai contenuti dell’insegnamento; è anche verificata la capacità del candidato di mettere in relazione contenuti disciplinari specifici con le conoscenze acquisite nelle propedeuticità del corso.

La prova orale consiste nell'implementazione di uno degli algoritmi numerici analizzati durante il corso in linguaggio Matlab/Python e nell'approfondimento di alcuni argomenti trattati durante le lezioni. Il punteggio della prova orale in trentesimi viene suddiviso in:
5 punti per l'abilità comunicativa;
5 punti per le competenze trasversali;
20 punti per la conoscenza dei contenuti.

Risultati attesi

Conoscenza e capacità di comprensione:
Alla fine del corso, lo studente avrà una conoscenza di base dei metodi fondamentali dell'apprendimento automatico, e sarà in grado di implementarli nell'ambiente di programmazione Matlab/Python e analizzarne le prestazioni in termini di efficienza e complessità computazionale.

Capacità di applicare conoscenza e comprensione:
Alla fine del corso, lo studente avrà cognizioni sufficienti per affrontare alcuni problemi di apprendimento automatico provenienti da applicazioni reali. Lo studente sarà in grado di individuare i metodi di apprendimento automatico adeguati al problema studiato e di realizzare i relativi codici Matlab/Python.

Autonomia di giudizio:
Alla fine del corso, lo studente dovrà possedere l'abilità necessaria per individuare in autonomia quali metodi risultano più adeguati per affrontare uno specifico problema di apprendimento automatico.

Abilità comunicative:
Alla fine del corso, lo studente dovrà essere in grado di descrivere in modo chiaro e rigoroso le metodologie di apprendimento automatico studiate e discuterne la loro efficienza.

Capacità di apprendimento:
Alla fine del corso, lo studente dovrà essere in grado di approfondire in modo autonomo i principali aspetti degli argomenti proposti nel corso.