Insegnamento mutuato da: B030868 - OTTIMIZZAZIONE NUMERICA E APPLICAZIONI AL MACHINE LEARNING Laurea Magistrale in MATEMATICA Curriculum GENERALE
Lingua Insegnamento
Italiano
Contenuto del corso
Metodi numerici per problemi di minimizzazione non lineare senza vincoli. Metodi di tipo gradiente stocastico per problemi di ottimizzazione che nascono nell'apprendimento automatico.
Condizioni di ottimalita' per programmazione non lineare vincolata. Metodi per programmazione lineare. Istruzioni fondamentali del linguaggio Python e del modulo scipy.optimize. Applicazioni a problemi di classificazione e training di reti neurali. Utilizzo del Matlab Optimization Toolbox.
J. Nocedal, S.J. Wright, "Numerical Optimization", 2nd ed., 2006
I. Goodfellow, Y. Bengio, A. Courville, Deep Learning, The MIT Press, 2016.
G. Strang, Linear algebra and learning from data,
Wellesley-Cambridge Press, 2019.
Obiettivi Formativi
Introdurre gli studenti alla risoluzione numerica di problemi di ottimizzazione non vincolata, di programmazione lineare e alle condizioni di ottimalita' per l'ottimizzazione non lineare vincolata.
Fornire le basi necessarie a comprendere la teoria ed i principali metodi numerici di risoluzione per
problemi di ottimizzazione, sia dal punto di vista teorico che computazionale, con particolare attenzione ai problemi che nascono nell'apprendimento automatico.
Prerequisiti
Corsi raccomandati: corsi di base di Analisi Matematica, Analisi Numerica e Probabilita'.
Metodi Didattici
Lezioni frontali e esercitazioni di laboratorio.
Altre Informazioni
Frequenza delle lezioni: Raccomandata
Strumenti a supporto della didattica: dispense, slides, UniFi E-Learning: http://e-l.unifi.it
Modalità di verifica apprendimento
Prova orale sugli argomenti oggetto delle lezioni in aula e sulle esercitazioni svolte in laboratorio.
Programma del corso
Programmazione non lineare non vincolata: Condizioni di ottimalita', metodo del gradiente e metodo dei gradienti coniugati per problemi con funzione obiettivo quadratica. Metodo del gradiente, metodo di Newton, metodo di quasi-Newton per problemi di minimizzazione non lineare. Problemi ai minimi quadrati non lineari: metodo di Gauss-Newton.
Globalizzazione mediante line-search.
Esempi di problemi di ottimizzazione in apprendimento automatico (problemi di classificazione e training di reti neurali).
Metodo del gradiente stocastico, gradiente stocastico con variance-reduction, varianti mini-batch.
Programmazione lineare: esempi di modelli di programmazione lineare (es. problemi di allocazione ottima di risorse, problemi di miscelazione).
Introduzione alla Programmazione Lineare (PL). Forma di un problema di PL; soluzioni, basi, soluzioni ammissibili; teoria della dualita'; definizione del problema duale;
Il metodo del simplesso;
I metodi Interior Point primale-Duale: Introduzione, concetto di central path, metodi path-following, teoria di convergenza.
Ottimizzazione non lineare vincolata: direzioni ammissibili, lagrangiana; derivazione delle condizioni di ottimalita' del primo ordine e del secondo ordine.
Introduzione al linguaggio Python. Istruzioni fondamentali del linguaggio Python. I sottoprogrammi e i moduli. Utilizzo del modulo scipy.optimize per la risoluzione di problemi di classificazione, risoluzione di problemi per il training di reti neurali mediante Keras. Utilizzo dell' Optimization Matlab Toolbox per la risoluzione di problemi di programmazione lineare.