Période : septembre à janvier.
Modalités : cours obligatoires.
Cours de mathématiques
Apprentissage statistique (3 ECTS)
Responsable : Gérard Biau
Modalités : 30h CM
Objectif : ce cours présente les grands principes de l’apprentissage statistique et les problématiques liées.
Prérequis : notions fondamentales de probabilités et statistique.
Contenu :
- Introduction au problème de la classification supervisée.
- Principe de minimisation du risque empirique, théorie de Vapnik-Chervonenkis.
- Bornes de performance, pertes convexes, sélection de modèle.
- Classification non paramétrique, théorème de Stone, plus proches voisins, arbres.
- Classification par réseaux neuronaux.
- Quantification et clustering.
Introduction à l’apprentissage automatique (3 ECTS)
Responsable : Maxime Sangnier
Modalités : 30h CM
Objectif : ce cours introduit les principales méthodes de prédiction (classification et régression), de partitionnement et de réduction de dimension. Il présente l’apprentissage statistique d’un point de vue algorithmique et sera illustré par des travaux pratiques (en Python) ainsi que par un challenge en science des données.
Prérequis : notions fondamentales de probabilités et statistique, analyse convexe, algèbre linéaire et calcul scientifique en Python.
Contenu :
- Analyse discriminante, régression logistique, machines à vecteurs supports.
- k-plus proches voisins, arbres de décision et méthodes ensemblistes (forêts et boosting).
- Modèle de mélange et algorithme EM, k-moyennes, partitionnement spectral et hiérarchique.
- Analyse en composantes principales, projections aléatoires et positionnement multidimensionnel.
Méthodes du premier ordre pour l’optimisation non convexe et non lisse (3 ECTS)
Responsable : Pauline Tan
Modalités : 24h CM
Objectif : ce cours explore la vaste théorie de l’optimisation non convexe et non lisse, par le biais des méthodes dites du premier ordre. Une attention particulière sera accordée aux problématiques liées à l’optimisation sur données en grande dimension.
Prérequis : analyse réelle.
Contenu :
- Fonction à valeurs sur la droite réelle étendue, sous-différentiabilité, condition d’optimalité du premier ordre.
- Méthodes de gradient (explicite, implicite), opérateur proximal, algorithme du point proximal.
- Dualité de Lagrange et de Fenchel, conditions de Karush, Kuhn et Tucker.
- Stratégies d’éclatement : forward-backward splitting, éclatement de Dykstra, méthode de Douglas-Rachford.
- Optimisation par blocs : minimisations alternées (block coordinate descent), descentes (proximales) alternées.
- Algorithmes primaux-duaux : méthode des directions alternées, algorithme de Chambolle-Pock.
- Ouverture : variantes inertielles, pré-conditionnement, distances de Bregman.
Optimisation pour l’apprentissage automatique (3 ECTS)
Responsable : Raphaël Berthier
Modalités : 30h CM
Objectif : l’objectif de ce cours est de présenter les principales méthodes d’optimisation pour les modèles d’apprentissage ainsi que leurs implications (interpolation, régularisation implicite). On abordera ensuite l’optimisation pour les réseaux de neurones, l’apprentissage en ligne et les bandits. Le cours sera illustré par de séances de TP en Python.
Prérequis : notions fondamentales de probabilités et statistique, calcul scientifique en Python.
Contenu :
- Minimisation du risque empirique et erreur de généralisation.
- Méthodes d’optimisation et descente de gradient stochastique.
- Réduction de variance et accélération.
- Interpolation, modèles sur-paramétrés et descente de gradient par coordonnée.
- Réseaux de neurones et régularisation implicite.
- Apprentissage en ligne et bandits.
Cours d’informatique
Apprentissage automatique avancé et apprentissage profond (6 ECTS)
Responsable : Patrick Gallinari
Modalités : 28h CM, 28h TP
Objectif : ce cours dresse un panorama de l’apprentissage statistique aujourd’hui. Il aborde successivement les grandes problématiques du domaine et en présente les avancées majeures des dix dernières années, en les illustrant sur des grands champs applicatifs : traitement de données textuelles et multimédia, extraction d’information à partir de données collaboratives (médias sociaux), etc.
Prérequis : notions élémentaires d’apprentissage statistique et calcul scientifique en Python.
Contenu :
- Théorie de l’apprentissage statistique, capacité de généralisation, dilemme biais-variance.
- Apprentissage Supervisé : Classification, Réseaux de Neurones et Deep Learning, Machines à vecteurs de support, Méthodes à noyaux, Ranking, Problématique du passage à l’échelle.
- Apprentissage non supervisé : Partitionnement, Modèles à variables latentes.
- Autre paradigmes d’apprentissage : Apprentissage par renforcement, Apprentissage faiblement supervisé, Apprentissage semi-supervisé et transductif, Apprentissage actif, Transfer Learning
- Méthodes d’ensembles : bagging, boosting.
- Apprentissage et données structurées : Séquences et arbres, Graphes et données interdépendantes.
Apprentissage profond avancé et apprentissage par renforcement (6 ECTS)
Responsable : Olivier Sigaud et Nicolas Thome
Modalités : 28h CM, 28h TP
Objectif : acquérir les compétences en apprentissage par renforcement et méthodes neuronales stochastiques.
Prérequis : notions élémentaires d’apprentissage statistique et calcul scientifique en Python.
Contenu :
- Markov Decision Process, programmation dynamique.
- Apprentissage par renforcement tabulaire.
- Apprentissage profond pour le renforcement (Deep Q learning, DDPG, TD3, Policy gradient, Reinforce, A2C, TRPO, PPO, SAC, TQC…).
- Apprentissage par imitation, Goal-Conditioned Reinforcement Learning.
- Modèles génératifs : GAN, VAE, normalizing flows, diffusion models.
- Machine learning informé par la physique (NeuralODE).
Bases de données large échelle (6 ECTS)
Responsable : Mohamed Amine Baazizi
Modalités : 26h CM, 30h TP
Objectif : ce cours présente les grands principes du traitement des données massives.
Prérequis : notions fondamentales de programmation, interrogation des données avec SQL, couche physique des systèmes de gestion de bases données.
Contenu :
- Introduction à la programmation parallèle et fonctionnelle sur Scala.
- Données multidimensionnelles et entrepôts de données.
- Paradigme Map-Reduce : modèle de calcul et implantation dans Spark.
- Evaluation des requêtes distribuées.
- Paradigme BSP (Bulk Synchronous Programming) et application pour l’analyse des graphes.
Reconnaissance des formes pour l’analyse et l’interprétation d’images (6 ECTS)
Responsable : Matthieu Cord
Modalités : 28h CM, 28h TP
Objectif : Ce cours aborde un ensemble de notions essentielles pour l’analyse et l’interprétation automatique du contenu visuel des images. A partir du signal image bidimensionnel, les différents systèmes de vision artificielle sont décrits. Outre les approches traditionnelles de vision par ordinateur, l’accent est mis sur les méthodes d’apprentissage statistique appliquées au traitement d’image. En particulier, la description des architectures profondes à base de réseaux de neurones et leur apprentissage (deep learning) occupent une place centrale dans ce cours. Les problématiques de vision étudiés concernent aussi bien des systèmes de classification et de segmentation, que de génération d’images. L’ensemble des concepts présentés font l’objet d’applications pratiques mises en oeuvre dans les séances de TPs.
Prérequis : Notions basiques de représentation de l’image numérique, algorithmique de traitement statistique des données et calcul scientifique en Python.
Contenu :
- Introduction à l’apprentissage supervisé
- Réseaux de neuronnes et machines à vecteurs supports
- Réseaux convolutionnels très large échelle, ImageNet
- Apprentissage par transfert et adaptation de domaine
- Réseaux antagonistes génératifs
- Segmentation et application à la conduite autonome