Nuova ricerca

Luca ZANNI

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

Insegnamento: Fondamenti di Machine Learning

Informatica (Offerta formativa 2024)

Obiettivi formativi

Introduzione delle nozioni matematiche di base per l’utilizzo delle metodologie di Machine Learning. Presentazione dei principali metodi numerici per l’ottimizzazione deterministica e stocastica e loro applicazione a problemi di machine learning a larga scala.

Prerequisiti

Nozioni di base di Programmazione, Analisi Matematica e Algebra Lineare.

Programma del corso

Introduzione al Machine Learning (2 CFU, 14 ore)

Tipologie di problemi di Machine Learning (supervised, semisupervised, online/incremental)
Apprendimento supervisionato: concetti di Loss Function, rischio empirico, spazio delle ipotesi. Minimizzazione del rischio empirico: overfitting e proprietà di generalizzazione.
Teoria della regolarizzazione per il machine learning: funzionali di regolarizzazione e complessità della soluzione. Spazi di ipotesi definiti da Kernel. Kernel lineari e non lineari. Teorema di rappresentazione.

Ottimizzazione numerica (3 CFU, 21 ore)

Richiami di Calcolo Differenziale e di Analisi Convessa.
Ottimizzazione non vincolata: condizioni di ottimalità, metodi del gradiente (convergenza e velocità di convergenza). Tecniche di accelerazione: selezione adattiva del passo e strategie quasi-Newton. Metodi delle direzioni coniugate e metodo del gradiente coniugato.
Ottimizzazione vincolata: condizioni di ottimalità, condizioni KKT e risultati di dualità. Metodi del gradiente proiettato: direzioni di discesa, proprietà di convergenza e tecniche di accelerazione.
Problemi di ottimizzazione nell'addestramento di Support Vector Machines: la metodologia SVM per la classificazione binaria, il problema duale delle SVM, tecniche di decomposizione e software per l’addestramento.

Ottimizzazione stocastica (1 CFU, 7 ore)

Metodi del gradiente stocastico e loro proprietà di convergenza. Strategie di accelerazione: metodi del campionamento dinamico, aggregazioni del gradiente, metodi di Newton inesatti, metodi basati su scaling diagonali.
L’ottimizzazione stocastica in problemi di machine learning: minimizzazione del rischio empirico, modelli di regolarizzazione, metodi del gradiente stocastico su problemi a larga scala.

Metodi didattici

Lezioni frontali ed esercitazioni pratiche in laboratorio informatico.
Il corso è erogato in lingua italiana in presenza. La frequenza non è obbligatoria, ma fortemente consigliata per la parte di laboratorio.

Gli studenti lavoratori che non possono frequentare regolarmente le lezioni devono contattare il docente per verificare il materiale didattico necessario alla preparazione dell'esame finale.

Orario di Ricevimento: venerdì 15.00-18.00 presso il Dipartimento di Scienze Fisiche, Informatiche e Matematiche o su appuntamento via e-mail.

Testi di riferimento

Lecture notes provided during the course, in the form of slides and videos of lectures on Moodle.

Scholkopf B., Smola A.J., Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond, MIT Press Cambridge, MA, USA, 2001

Bishop C.M., Pattern Recognition and Machine Learning, Springer, 2006

Bertsekas D.P., Nonlinear Programming, Athena Scientific,1999.

Nocedal J., Wright S.J., Numerical Optimization, Springer-Verlag, 2000.

Bottou, L., Curtis, F.E., Nocedal, J., Optimization methods for large-scale machine learning, SIAM Review, 2018.

Verifica dell'apprendimento

La valutazione del profitto avviene tramite prova orale alla fine del corso. La prova consiste in 4 domande e dura circa 30 minuti.
Nella prova orale sarà richiesta la descrizione delle metodologie di machine learning e dei metodi numerici presentati nel corso.
I quesiti posti durante la prova orale 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, espresso in trentesimi, è dato dalla valutazione complessiva delle competenze mostrate dal candidato e del rigore nell'esposizione degli argomenti trattati durante il colloquio.
In particolare, si otterrà un voto minimo (18/30) in caso di conoscenza basilare degli argomenti e capacità parziale di applicare la conoscenza, mentre un voto massimo (30/30 con lode) sarà riservato ad esami caratterizzati da conoscenza piena degli argomenti e capacità ottima di applicare la conoscenza, con una graduazione dei voti intermedi basata sul raggiungimento dei risultati di apprendimento attesi dimostrata durante la prova d’esame.
L'esito sarà comunicato al singolo studente alla fine della prova orale.

Risultati attesi

Conoscenza e comprensione:
Alla fine del corso, lo studente dovrà conoscere i concetti matematici alla base delle metodologie di machine learning e i metodi numerici di ottimizzazione che intervengono nell’addestramento di tali metodologie.

Capacità di applicare conoscenza e comprensione:
Alla fine del corso, lo studente avrà cognizioni sufficienti per utilizzare metodologie di machine learning e metodi di ottimizzazione numerica.

Autonomia di giudizio:
Alla fine del corso, lo studente dovrà possedere l'abilità necessaria per individuare gli approcci più adeguati alla risoluzione di problemi di machine learning e per scegliere i metodi di ottimizzazione numerica più efficaci per l’addestramento di una metodologia di machine learning.

Abilità comunicative:
Alla fine del corso, lo studente dovrà essere in grado di esporre in modo chiaro e
rigoroso i concetti di machine learning e i metodi di ottimizzazione numerica presentati nel corso.

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.