ECTS : 3
Volume horaire : 24
Description du contenu de l'enseignement :
L'optimisation numérique est un composant fondamental de la science des données, qui se retrouve à la fois en apprentissage statistique (régression linéaire, SVM), mais aussi dans les progrès récents en apprentissage profond en tant que technique d'entraînement de réseaux de neurones. Dans ce cours, on étudiera les fondements mathématiques et algorithmiques de l'optimisation en se concentrant sur les applications en science des données.
Ce cours consiste en plusieurs séances accompagnées d'illustrations en Python, notamment via la bibliothèque PyTorch. On commencera par poser les fondements mathématiques de l'optimisation (convexité, conditions d'optimalité), puis on s'intéressera aux algorithmes essentiels en apprentissage tels que le gradient stochastique et ses variantes. On abordera ensuite des problématiques plus avancées à la fois sur le plan théorique (régularisation, problèmes matriciels) et sur le plan algorithmique (différentiation automatique, optimisation distribuée).
Compétence à acquérir :
- Identifier les caractéristiques d'un problème d'optimisation à partir de sa formulation.
- Connaître les propriétés théoriques et pratiques des algorithmes d'optimisation les plus courant en apprentissage.
- Déterminer et tester l'algorithme le plus approprié pour un problème donné.
Mode de contrôle des connaissances :
Examen écrit + Projet.
Bibliographie, lectures recommandées :
J. Wright and Y. Ma, High-Dimensional Data Analysis with Low-Dimensional Models, 2022.
S. J. Wright and B. Recht. Optimization for Data Analysis, 2022.