Algebra lineare e funzioni reali di variabile reale.
Scopo del corso è di fornire una panoramica dei moderni metodi e algoritmi di ottimizzazione per applicazioni all’apprendimento statistico, machine learning e al data science. Verrà discussa la teoria alla base di questi metodi (ad esempio, condizioni di ottimalità e teoria della dualità) e come scegliere i giusti metodi di ottimizzazione per diverse applicazioni di apprendimento statistico e machine learning.
Al termine del corso lo studente sarà in grado di:
• Valutare gli algoritmi, le classi di funzioni e velocità di convergenza degli algoritmi più importanti.
• Implementare i più importanti algoritmi di ottimizzazione per il data science in ambiente Python.
• Comprendere il trade-off tra tempo computazionale e precisione di algoritmi per l’apprendimento statistico e machine learning.
Dal punto di vista empirico, gli algoritmi presentati verranno applicati a database del mondo reale.
Nello specifico il corso coprirà i seguenti argomenti:
- Condizioni di ottimalità, Metodi di Ottimizzazione univariata e multivariata senza l’utilizzo di derivate (Derivative-Free), Metodo del Gradiente, Metodo del Gradiente Stocastico, Metodo del Subgradient, Metodo di Newton e Quasi-Newton, Metodo del Gradiente Coniugato, Metodi Penalty Function. Support Vector Machines (SVM): classificatori Soft and hard Maximum Margin e loro formulazione di programmazione quadratica (PQ). Metodo dei kernel. Condizioni di Karush-Kuhn-Tucker (KKT). Formulazione duale del problema PQ primale. Teoria della dualità di Wolfe per PQ. Problemi SVM multiclasse: uno contro uno e uno contro tutti.
- Alberi decisionali ottimali.
Uso pratico di algoritmi di apprendimento. Confronto tra algoritmi di apprendimento dal punto di vista dell'ottimizzazione. Utilizzo di software (Python).
Il corso sarà organizzato in lezioni frontali, esercitazioni e tutorato comprensive dello svolgimento di esempi e esercizi. Alcune lezioni si svolgeranno presso il laboratorio informatico in cui verranno implementate in ambiente Python le metodologie descritte a lezione su dati provenienti da vari contesti applicativi (business analytics, news, diagnosi medica ecc.).
L'esame si svolge in due parti:
- discussione orale di casi studio assegnati (50 % del voto finale). Gli studenti possono lavorare in piccoli gruppi o individualmente.
- Esame finale orale (50 % del voto finale).
Materiale relativo al corso verrà inserito dal docente tramite la piattaforma "e-learning" dell'Università degli studi di Bergamo.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte modifiche rispetto a quanto dichiarato nel syllabus per rendere il corso e gli esami fruibili anche secondo queste modalità.
Per maggiori informazioni scrivere a: francesca.maggioni@unibg.it
Basic knowledge of Linear Algebra and Calculus.
This course teaches an overview of modern optimization methods and algorithms for applications in statistical learning, machine learning and data science. In particular, scalability of algorithms to large datasets will be discussed in theory and in implementation. Theory behind these methods (e.g., optimality conditions and duality theory) will be discussed as well as how to choose the right optimization methods for different statistical learning applications.
By the end of the course, the student must be able to:
• Evaluate the most important algorithms, function classes, and algorithm convergence guarantees.
• Formulate scalable and accurate implementations of the most important optimization algorithms for data science using Python.
• Characterize trade-offs between time, data and accuracy, for machine learning methods.
On the practical side, application of the considered algorithms on real-world databases will be investigated.
Specifically, the course will cover the following topics:
- Optimality Conditions, Derivative-free Optimization Methods, Gradient Method, Stochastic Gradient Descent Method, Subgradient Method, Netwon and Quasi-Newton Methods, Conjugate Gradient Method, Penalty Function Method.
- Supervised Learning
Support Vector Machines (SVM): Soft and hard Maximum Margin Classifiers. Quadratic programming (QP) formulation of the soft/hard maximum margin separators. Kernels methods. Karush-Kuhn-Tucker (KKT) conditions. Dual formulation of the primal QP problem. Wolfe duality theory for QP. Multiclass SVM problems: one-against-one and one-against-all.
- Optimal Decision Trees.
Practical use of learning algorithms. Comparing learning algorithms from the optimization point of view. Use of standard software (Python).
The course is structured into lectures in class, in which the context and methodologies are explained, and computer lab sessions (using Python software), in which the students apply the methodologies to real-world data sets coming from various fields (business analytics, news, medical diagnosis etc).
The exam consists in two parts:
- Oral discussion about applied assignments and case studies (50% of the final grade).
Students may work in small groups or individually.
- Final oral exam (50% of the final grade).
The course material will be provided by means of the e-learning platform of the University of Bergamo.
If the teaching activity will be mixed or in remote mode, changes can be done compared to what stated in the syllabus, to make the course and the exams available also in these modalities.
For more details write to: francesca.maggioni@unibg.it