ECTS
5 crédits
Composante
Faculté des Sciences
Description
Ce cours est la continuation du cours d'optimisation du second semestre de L3.
Après un rappel des résultats et méthodes numérique pour les problèmes d'optimisation d’ordre un et deux, sans contrainte et sous contraintes d’égalité et d’inégalité, le cours s’intéresse aux questions aujourd’hui d’intérêt en optimisation industrielles, et en particulier, l’optimisation robuste, multicritère, en présence d’incertitudes.
Le cours illustre ensuite la place de l’optimisation dans les principaux algorithmes d'apprentissage mathématique (machine learning). Ces questions sont illustrées par des exemples de problèmes de classification et de régression en apprentissage supervisé. Ces exemples sont l'occasion de discuter des questions de métriques et de procédures pour l'évaluation de l'apprentissage, de la validation et de l'inférence (crossfold, overfitting, etc).
Le cours présente les différentes classes d'apprentissage : non-supervisé, supervisé, par transfert, par renforcement, incrémental, etc.
Les questions autour de la gestion des bases de données sont abordées : génération, imputation, visualisation, découpage.
Le cours présente les liens entre l'apprentissage mathématique par transfert (transfer learning) et la simulation numérique pour adresser les questions de génération de bases de données synthétiques, d'imputation, de prédiction non-intrusive, d'inférence rapide, etc.
Le cours comporte une partie importante de projets informatiques au fil de l'eau. Toutes les séances ont lieu en environnement informatisé et permettent une mise en œuvre immédiate des éléments théoriques.
Objectifs
Faire le lien entre optimisation numérique et apprentissage mathématique. Découvrir la machine learning à travers des exemples concrets.
Pré-requis nécessaires
Bases d’analyse, solutions numériques des équations différentielles ordinaires, algèbre linéaire numérique, expériences en programmation en langage interprété.
Pré-requis recommandés : cours L3 semestre 2 d’optimisation. Programmation en Python.
Syllabus
-Optimisation sans contrainte
-Méthodes d’ordre 1 : Descente de Gradient, Gradients conjugués
-Fonctionnelles séparables, Gradient stochastique, descente par coordonnées
-Méthodes de Second ordre: Newton, Quasi-Newton (BFGS, L-BFGS).
-Technique d’évaluation du gradient d’une fonctionnelle (différences finies, variables complexes, adjoint, différentiation automatique).
-Comment se passer du Hessien
-Optimisation sous contraintes d’égalités et d’inégalités
-Lagrangien
-Interprétation des multiplicateurs de Lagrange
-Problème Primal-Dual
-Minimisation quadratique sous contrainte linéaire
-Point-Selle Lagrangien
-Algorithme d'Uzawa
-Comparaison méthodes pénalisation/Primal-Dual/Uzawa, Lagrangien augmenté
-Conditions de KKT
-Conditions de Complémentarité
-Algorithme de gradient projeté, Uzawa projeté, pénalisation extérieure
-Optimisation globale, méthodes à moment, ADAM, RMSprop
-Optimisation multicritère, front de Pareto
-Optimisation robuste, sur intervalle, en présence d’incertitude
-Techniques de régularisation (L1, L2, …)
-Illustrations en Python
-Optimisation en machine learning : modèles linéaires, régression logistique, séparateur à vaste marge, arbres et forêts aléatoires, réseaux de neurones.
-Réduction dimensionnelle : analyse en composantes principales, décomposition en valeurs singulières
-Bases de données et imputation
-Librairie Python Scikit-Learn.
Informations complémentaires
Volumes horaires :
CM : 21
TD : 21
TP : 0
Terrain : 0