Le Master IASD commence par un semestre de tronc commun consacré aux disciplines fondamentales de l’IA et des sciences des données, qui comprend quatre cours communs et trois cours spécifiques à chaque parcours. À la fin du premier semestre, les étudiants choisissent six cours d’approfondissement pour le second semestre, dont une semaine intensive PSL permettant l’ouverture thématique vers d’autres disciplines ou applications. L’année se poursuit par un stage effectué dans un laboratoire de recherche académique ou industriel et se conclut en septembre par la rédaction d’un mémoire et sa soutenance publique.

Tronc commun

Projet science des données
Data science lab
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Benjamin Negrevergne

L'objectif de ce module est de fournir aux étudiants une expérience pratique sur de nouveaux défis en science des données/IA en utilisant des outils et des techniques discutés dans les autres cours du master. Les étudiants inscrits à ce cours formeront des groupes et choisiront des sujets parmi une liste de sujets proposés dans les domaines principaux du master tels que l'apprentissage supervisé ou non supervisé, la recommandation, la science des données distribuée ou parallèle, etc. Les sujets consisteront généralement, soit, à appliquer une technique bien établie à un nouveau défi en science des données soit, à appliquer des résultats de recherche récents à un défi classique en science des données. Dans les deux cas, chaque sujet correspondra à un nouveau défi scientifique à relever. À la fin du module, les étudiants feront une présentation orale pour démontrer leur méthodologie et leurs résultats. Une grande rigueur scientifique ainsi que de très bonnes compétences en ingénierie et en communication seront nécessaires pour mener à bien ce module.

Fondamentaux de l'apprentissage automatique
Foundations of machine learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Francis Bach
L'objectif de ce cours est de présenter des résultats anciens et récents en théorie de l'apprentissage, pour les architectures d'apprentissage les plus utilisées. Ce cours s'adresse aussi bien aux étudiants orientés vers la théorie qu'à ceux qui souhaitent acquérir une compréhension mathématique des bases algorithmiques qui seront utilisées tout au long du programme de master.

Un effort particulier sera fait pour prouver de nombreux résultats à partir des premiers principes, tout en gardant l'exposé aussi simple que possible. Cela conduira naturellement à un choix de résultats clés qui illustrent, dans des cas simples mais pertinents, les concepts importants de la théorie de l'apprentissage. Certains résultats généraux seront également présentés sans preuves.

Le cours sera organisé en huit sessions de trois heures, chacune avec un sujet précis (un chapitre du livre "Learning theory from first principles").

Prérequis : Nous prouverons des résultats en classe, il est donc important d'avoir une bonne connaissance des mathématiques de premier cycle, ainsi que des notions de base en probabilité. Avoir suivi un cours d'introduction à l'apprentissage automatique est également préférable.

Optimisation pour l'apprentissage automatique
Optimization for machine learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Clément Royer
L'optimisation est depuis longtemps une composante fondamentale pour la modélisation et la résolution des problèmes classiques d'apprentissage automatique tels que la régression linéaire et la classification SVM. Elle joue également un rôle clé dans l'entraînement des réseaux neuronaux, grâce au développement d'outils numériques efficaces adaptés à l'apprentissage profond.

Ce cours porte sur le développement d'algorithmes d'optimisation pour les tâches d'apprentissage, et consistera à la fois en des cours magistraux et des sessions pratiques en Python. Le cours commencera par une introduction aux différentes formulations des problèmes posés par l'apprentissage automatique et l'apprentissage profond, ainsi qu'un rappel des concepts mathématiques clés (algèbre linéaire, convexité, lissage). Le cours décrira ensuite les principaux algorithmes d'optimisation en science des données (descente de gradient, gradient stochastique) et leurs propriétés théoriques. Enfin, le cours se concentrera sur les défis posés par l'implémentation de ces méthodes dans un environnement de deep learning et de grande échelle (différenciation automatique, calculs distribués, régularisation).

Références :
L. Bottou, F. E. Curtis et J. Nocedal. Optimization Methods for Large-Scale Machine Learning. SIAM Review, 2018.
S. J. Wright et B. Recht. Optimization for Data Analysis. Cambridge University Press, 2022.

Apprentissage par renforcement
Reinforcement learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Olivier Cappé

L'apprentissage par renforcement s'intéresse à des scénarios dans lesquels l'algorithme d'apprentissage fonctionne en boucle fermée, en utilisant simultanément les données passées pour ajuster ses décisions et en effectuant des actions qui influenceront les observations futures. Tous les modèles d'apprentissage par renforcement ont en commun le fait que, pour atteindre les objectifs d'optimalité à long terme, il est nécessaire de trouver un juste équilibre entre l'exploration (découverte de comportements encore incertains) et l'exploitation (concentration sur les actions qui ont produit les résultats les plus pertinents jusqu'à présent).

Les méthodes utilisées en apprentissage par renforcement s'inspirent du contrôle, des statistiques et de l'apprentissage automatique. Ce cours d'introduction présentera les principaux éléments méthodologiques du domaine, en mettant l'accent sur les méthodes probabilistes dans le cas où l'ensemble des actions possibles et l'espace d'état du système sont finis.

  • Outils probabilistes et statistiques : chaînes de Markov et conditionnement, échantillonnage d'importance, approximation stochastique, modélisation bayésienne, tests d'hypothèse, inégalités de déviation
  • Modèles : Processus de décision de Markov (PDM), bandits multiarmés et autres modèles
  • Planification : problèmes à horizon fini et infini, fonctions valeur, équations de Bellman, programmation dynamique, itération sur les valeurs et les politiques
  • Outils d'apprentissage de base : Méthodes de Monte Carlo, apprentissage par différence temporelle, gradient de politique
  • Exploration optimale dans les modèles de bandits : compromis entre exploration et exploitation, exploration pure, limites inférieures, algorithme UCB, échantillonnage de Thompson

Références

Acquisition, extraction et stockage de données (Info)
Data acquisition, extraction, and storage
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Pierre Senellart

L'objectif de ce cours est de présenter les principes et techniques utilisés pour acquérir, extraire, intégrer, nettoyer, prétraiter, stocker et interroger des ensembles de données, qui peuvent ensuite être utilisées comme données d'entrée pour former différents modèles d'intelligence artificielle. Le cours sera constitué d'un mélange de leçons et de travaux pratiques. Nous aborderons les aspects suivants :

  • Acquisition de données Web (exploration Web, API Web, données ouvertes, problèmes juridiques)
  • Extraction d'informations à partir de données semi-structurées
  • Nettoyage de données et déduplication de données
  • Formats de données et modèles de données
  • Stockage et traitement de données dans des bases de données, en mémoire principale ou dans des fichiers simples
  • Introduction au traitement de données à grande échelle avec MapReduce et Spark
  • Introduction à la gestion de données incertaines
Apprentissage profond pour l'analyse d'images (Info)
Deep learning for image analysis
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Étienne Decencière

Ces dernières années, l'apprentissage profond a permis d'obtenir des résultats remarquables dans le domaine de l'analyse d'images, dépassant dans de nombreux cas les performances humaines. Ce succès ouvre la voie à de nouvelles applications tout en rendant le domaine très compétitif. Ce cours vise à fournir aux étudiants les bases théoriques et pratiques pour comprendre et utiliser l'apprentissage profond pour les applications d'analyse d'images.

Le cours sera composé de cours magistraux et de sessions pratiques. De plus, des experts présenteront des applications pratiques de l'apprentissage profond.

Programme :
  • Réseaux neuronaux artificiels, algorithme de rétropropagation
  • Réseau neuronal convolutif
  • Conception et optimisation d'une architecture neuronale
  • Architectures AlexNet, VGG, GoogLeNet, ResNet
  • Classification et segmentation d'images
  • Auto-encodeurs et réseaux génératifs
  • Transformateurs pour la vision
  • Tendances et perspectives actuelles de la recherche

Pendant les sessions pratiques, les étudiants coderont en Python, en utilisant Keras et Tensorflow. Ils seront confrontés aux problèmes pratiques liés au deep learning : conception d'architecture ; schémas d'optimisation et sélection d'hyperparamètres ; analyse des résultats.

Prérequis : Algèbre linéaire, probabilités et statistiques de base.

Modèles de langage de grande taille (Info)
Large language models
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Alexandre Allauzen

Les grands modèles de langage jouent un rôle important pour accéder et générer différents types de contenus ainsi que pour communiquer dans différentes langues. Ce cours se concentre sur les méthodes d'apprentissage profond pour le traitement du langage naturel (NLP), en allant des bases jusqu'aux grands modèles de langage. L'objectif est d'introduire les principaux concepts de l'apprentissage profond et du traitement du langage naturel :

  • Traitement du langage naturel et bases de l'apprentissage profond
  • Le mécanisme d'attention et l'architecture de transformeur
  • Entraînement de grands modèles de langage
  • Applications (classification de textes, dialogue, etc.)

Des sessions pratiques en Pytorch complètent les cours magistraux.

Pré-requis :

  • Compétences en python
  • Compréhension des concepts de base de l'apprentissage automatique tels que : régression logistique, fonction de perte, optimisation par descente de gradient.
Inférence bayésienne (Maths)
Bayesian statistics
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Judith Rousseau
Le cours couvre différents aspects des statistiques bayésiennes en mettant l'accent sur les propriétés théoriques des estimateurs bayésiens. Le cours commence par une introduction à la théorie de la décision bayésienne, de l'estimation ponctuelle aux régions crédibles, en passant par les tests et la sélection de modèles, ainsi que quelques notions sur l'inférence prédictive bayésienne. La deuxième partie couvrira les résultats les plus importants concernant l'asymptotique bayésienne.

Partie I. Théorie de la décision bayésienne : une introduction
  • Loi a priori / loi a posteriori, risques et estimateurs bayésiens.
  • Régions crédibles.
  • Sélection de modèles et tests.

Partie II : Asymptotique bayésienne ; dans cette partie, on considérera les modèles bien comme mal spécifiés.
  • Loi a posteriori asymptotique : dans cette partie, nous étudierons la normalité asymptotique de la loi a posteriori, la pénalisation induite par l'a priori et le théorème de Bernstein von - Mises ; les modèles réguliers et non réguliers seront traités.
  • Vraisemblance marginale et cohérence des facteurs de Bayes / approches de sélection de modèles.
  • Méthodes bayésiennes empiriques.
  • Bootstrap bayésien.
  • Cohérence postérieure et taux de convergence postérieure. Cette partie couvrira d'abord le cas des fonctions de perte statistiques en utilisant la théorie initiée par L. Schwartz et développée par Ghosal et Van der Vaart.
Bibliographie
  • C. P. Robert (2021). The Bayesian Choice.
  • S. Ghosal et A. van der Vaart (2017) : Fundamentals of Bayesian Nonparametrics.
  • A. van der Vaart (1998) : Asymptotic Statistics.
Statistiques en grande dimension (Maths)
High-dimensional statistics
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Vincent Rivoirard
L'objectif de ce cours est de traiter des problèmes statistiques où les données étudiées sont de haute dimension, ce qui signifie que le nombre de paramètres à déduire est très grand et, dans certaines situations, beaucoup plus grand que le nombre d'observations. Dans ce cours, nous présenterons différents cadres statistiques adaptés au paradigme de haute dimension, les problèmes statistiques qui se posent et les méthodologies spécifiques pour les résoudre. Plus précisément, pour des modèles de régression simples ou pour des modèles plus élaborés modélisant des données fonctionnelles, nous considérerons des méthodes basées sur des critères pénalisés (AIC, BIC, Ridge...), avec un accent particulier sur les approches de type Lasso et leurs variations. Les techniques de seuillage par ondelettes et les approches FDR pour les tests multiples seront également au cœur de ce cours. Enfin, le cours comprend une introduction aux statistiques pour les données fonctionnelles, qui est une branche des statistiques qui étudie les données qui peuvent être modélisées comme des courbes aléatoires.

Prérequis pour ce cours :

  • statistiques
  • probabilité
  • algèbre linéaire et analyse fonctionnelle (analyse de Fourier, espaces de Sobolev, etc.)
Transport optimal (Maths)
Optimal transport
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Gabriel Peyré
Le transport optimal (OT) est une théorie mathématique clé qui relie l'optimisation, les équations différentielles partielles et les probabilités. Il fournit un cadre robuste pour comparer les distributions de probabilité et a récemment gagné en importance en tant qu'outil polyvalent pour relever un large éventail de défis en apprentissage automatique, en particulier dans le contexte de l'apprentissage et de l'évaluation des modèles génératifs. Ce cours explore les concepts mathématiques de base de l'OT, ainsi que les avancées récentes dans la résolution numérique de problèmes de transport optimal. Un accent particulier sera mis sur les approches régularisées modernes, qui sont cruciales pour aborder les tâches d'apprentissage en grande dimension. Le matériel de cours, y compris un manuel concis, des diapositives de cours et des ressources informatiques, est disponible en ligne à l'adresse optimaltransport.github.io.

Sujets abordés :
  • Formulation de Monge et théorème de Brenier
  • Applications aux distributions 1-D et gaussiennes
  • Formulation de Kantorovich, programmation linéaire et théorème de Birkhoff-von Neumann
  • Propriétés métriques d'OT : convergence en loi et théorème de la limite centrale
  • Flux de gradient de Wasserstein et modèles de diffusion
  • Régularisation entropique et malédiction de la dimensionnalité

Options

Méthodes de Monte Carlo par chaînes de Markov
Computational statistics and Markov Chain Monte Carlo methods
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Christian Robert

Ce cours couvre la plupart des principes de la simulation bayésienne, c'est-à-dire, les méthodes utilisées pour approximer les distributions a posteriori bayésiennes par des algorithmes de simulation pseudo-aléatoires. Bien que le cours nécessite de coder pour mettre en œuvre de les méthodes, l'essentiel du contenu est basé sur les mathématiques et exploite les propriétés des chaînes de Markov.

  • Introduction à la simulation bayésienne
  • Génération de variables aléatoires
  • Intégration de Monte Carlo
  • Optimisation de Monte Carlo
  • Chaînes de Markov
  • L'algorithme de Metropolis-Hastings
  • Echantillonneurs de Gibbs à deux étapes et à plusieurs étapes
  • Modèles à dimension variable et algorithmes à sauts réversibles
  • Méthodes de simulation basées sur les diffusions et autres extensions en temps continu
  • L'échantillonnage d'importance itéré et séquentiel
  • Calcul bayésien approximatif
Référence : Robert, C.P., et Casella, G. (2004) Monte Carlo Statistical Methods, Springer
Semaine intensive PSL (Data@PSL)
PSL Intensive week (Data@PSL)
ECTS
2 crédits
URL du cours
https://data-psl.github.io/intensive-week/
Responsable(s)
Alexandre Allauzen
Apprentissage automatique avancé
Advanced machine learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Yann Chevaleyre

Ce module axé sur la recherche se concentrera sur certains thèmes avancés de l'apprentissage automatique, notamment

  • Algorithmes d'apprentissage en ligne
  • Pertes et algorithmes au-delà de la classification
  • Méthodes variationnelles pour l'apprentissage automatique génératif

L'évaluation consiste en une présentation individuelle d'un article de recherche sur l'un des sujets du cours.

Apprentissage bayésien
Bayesian machine learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Guillaume Kon Kam King
Ce cours avancé explore deux domaines essentiels des méthodologies bayésiennes modernes : Les méthodes non-paramétriques bayésiennes et l'apprentissage profond bayésien. Les étudiants étudieront les concepts fondamentaux tels que le processus de Dirichlet, les modèles de mélanges infinis et les processus gaussiens, ainsi que leurs applications pour le clustering, la régression et la classification. Le cours met également l'accent sur l'importance de quantifier l'incertitude dans l'apprentissage profond et présente l'approche bayésienne pour ce faire, couvrant les lois a priori pour les réseaux neuronaux, les méthodes d'inférence a posteriori, et des idées récentes telles que les martingale posterioris. L'évaluation comprend un séminaire étudiant et des devoirs pour consolider la compréhension. Les prérequis incluent une base solide en statistique bayésienne et une familiarité avec les méthodes de Monte Carlo par chaîne de Markov. Ce cours fournit aux étudiants des outils de pointe pour développer leur expertise dans les approches statistiques et l'apprentissage automatique bayésien.

Méthodes non-paramétriques bayésiennes

  • Processus de Dirichlet
  • Modèles de mélanges infinis
  • Échantillonnage a posteriori
  • Modèles au-delà du processus de Dirichlet
  • Processus gaussiens
  • Applications sélectionnées
Apprentissage profond bayésien
  • Pourquoi voulons-nous l'incertitude des paramètres ?
  • Loi a priori pour les réseaux neuronaux bayésiens
  • Inférence a posteriori
  • Martingale posterioris et inférence bayésienne généralisée
Choix social computationnel
Computational social choice
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Jérôme Lang Dominik Peters

L'objectif de ce cours est de donner une vue d'ensemble des problèmes, des techniques et des applications du choix social computationnel, un sujet multidisciplinaire au croisement de l'informatique (en particulier l'intelligence artificielle, la recherche opérationnelle, l'informatique théorique, les systèmes multi-agents, la logique computationnelle, la science du web) et de l'économie. Le cours propose des outils pour analyser de problèmes découlant de l'agrégation des préférences d'un groupe d'agents d'un point de vue informatique. D'une part, il s'agit d'appliquer les techniques développées en informatique, telles que l'analyse de la complexité ou la conception d'algorithmes, à l'étude des mécanismes de choix social, tels que les procédures de vote ou les algorithmes de partage équitable. D'autre part, le choix social computationnel s'intéresse à l'importation de concepts de la théorie du choix social en informatique. Par exemple, les ordres liés au bien-être social, développés à l'origine pour analyser la qualité des allocations de ressources dans la société humaine, sont tout aussi bien applicables aux problèmes des systèmes multi-agents ou à la conception de réseaux. Le cours se concentrera sur les aspects normatifs, les aspects informatiques et les applications du monde réel (y compris certaines études de cas).

Programme :
1. Introduction au choix social.
2. Calcul des règles de vote et des fonctions d'agrégation des préférences. Application à l'agrégation des classements de pages web.
3. Questions stratégiques : manipulation, contrôle, analyses théoriques du vote. Brève introduction à la conception de mécanismes algorithmiques.
4. Agrégation des préférences sur des domaines combinatoires.
5. Questions de communication dans le vote : vote avec des préférences incomplètes, protocoles d'élicitation, complexité de la communication, mécanismes à faible communication.
6. Partage équitable de biens indivisibles.
7. Algorithmes de découpage de gâteau.
8. Appariement en fonction des préférences.
9. Formation de coalitions.
10. Applications spécifiques et études de cas (variant chaque année) : répartition des loyers, affectation des écoles, systèmes de recommandation de groupe...

Lectures recommandées :
Handbook of Computational Social Choice (F. Brandt, V. Conitzer, U. Endriss, J. Lang, A. Procaccia, eds.), Cambridge University Press, 2016.
Algorithmics of Matching Under Preferences (D. Manlove), World Scientific, 2013.

Réduction de dimension et apprentissage sur variétés
Dimension reduction and manifold learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Eddie Aamari
L'apprentissage automatique moderne traite généralement des données en grande haute dimension. Les domaines concernés sont très variés et comprennent la génomique, les images, les textes, les séries chronologiques ou même les données socio-économiques où de plus en plus de caractéristiques non structurées sont régulièrement collectées. En contrepartie de cette tendance à l'exhaustivité, la compréhension de ces données pose des défis en termes de ressources informatiques et de compréhensibilité humaine. L'apprentissage sur variétés désigne une famille de méthodes visant à réduire la dimension des données tout en préservant certaines de leurs caractéristiques géométriques et structurelles. Il est largement utilisé dans l'apprentissage automatique et les sciences expérimentales pour compresser, visualiser et interpréter les données à haute dimension. Ce cours fournira une vue d'ensemble de la méthodologie du domaine, tout en se concentrant sur les aspects mathématiques sous-jacents aux techniques utilisées dans la pratique.

Prérequis : algèbre linéaire, théorie des probabilités de base, statistiques, codage Python.

Sujets abordés :
  • La malédiction de la dimensionnalité, les variétés et les dimensions intrinsèques
  • Mise à l'échelle multidimensionnelle
  • Réduction linéaire de la dimension (projections aléatoires, analyse en composantes principales)
  • Méthodes spectrales non linéaires (ACP à noyau, ISOMAP, MVU, cartes propres du laplacien)
  • Méthodes ad hoc de préservation de la distance (cartes de diffusion, LLE)
  • Réduction probabiliste de la dimension et regroupement (SNE, UMAP)
  • Réduction de la dimensionnalité basée sur les réseaux de neurones
Bibliographie :
  • Ghojogh, B., M. Crowley, F. Karray, and A. Ghodsi (2023). Elements of dimensionality reduction and manifold learning
  • Lee, J. A., M. Verleysen, et al. (2007). Nonlinear dimensionality reduction
Analyse de graphes
Graph analytics
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Daniela Grigori

L'objectif de ce cours est de donner aux étudiants une vue d'ensemble du domaine de l'analyse des graphes massifs. Comme les graphes constituent un type de données complexe et expressif, nous avons besoin de méthodes pour représenter les graphes dans les bases de données, les manipuler, les interroger, les analyser et les exploiter. Les applications liées aux graphes sont très diverses et nécessitent des algorithmes spécifiques (analyse des liens, détection des communautés, regroupement des graphes, similarité des graphes, ...). De plus, la prise en compte des structures relationnelles sous-jacentes des données modélisées sous forme de graphes peut améliorer les tâches d'apprentissage automatique.
Le cours présente de nouvelles façons de modéliser, stocker, extraire, exploiter et analyser les données structurées sous forme de graphes, ainsi que quelques exemples d'applications.
Des sessions de TP sont incluses pour permettre aux étudiants de pratiquer l'analyse des graphes : modéliser un problème dans une base de données de graphes et effectuer des tâches analytiques sur le graphe d'une manière évolutive.

Programme

1. Introduction à la gestion et à l'exploitation des graphes
2. Bases de données de graphes - Neo4J
3. Langage de requête pour les graphes - Cypher
4. Cadres de traitement des graphes (Pregel, GraphX, ...)
5. Algorithmes pour les graphes : analyse des liens, détection des communautés, regroupement des graphes, ...
6. Apprentissage automatique avec les graphes : réseaux neuronaux graphiques
7. Applications des graphes : analyse des graphes de réseaux sociaux, exploitation des journaux, détection des fraudes, ...

Références

Ian Robinson, Jim Weber, Emil Eifrem, Graph Databases, Editeur : O'Reilly (4 juin 2013), ISBN-10 : 1449356265
Grzegorz Malewicz, Matthew H. Austern, Aart J.C Bik, James C. Dehnert, Ilan Horn, Naty Leiser, et Grzegorz Czajkowski. 2010. Pregel : a system for large-scale graph processing, SIGMOD '10, ACM, New York, NY, USA, 135-146.
Xin, Reynold & Crankshaw, Daniel & Dave, Ankur & Gonzalez, Joseph & J. Franklin, Michael & Stoica, Ion. (2014). GraphX : Unifying Data-Parallel and Graph-Parallel Analytics.
Michael S. Malak et Robin East, Spark GraphX in Action, Manning, juin 2016.

Apprentissage incrémental, théorie des jeux et applications
Incremental learning, game theory, and applications
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Guillaume Vigeral

Ce cours se concentrere sur le comportement des algorithmes d'apprentissage lorsque plusieurs agents sont en compétition les uns contre les autres : en particulier, que se passe-t-il lorsqu'un agent qui suit un algorithme d'apprentissage en ligne interagit avec un autre agent qui fait de même ? Le langage naturel pour formuler de telles questions est celui de la théorie des jeux, et le cours commencera par une brève introduction au sujet, comme les jeux de forme normale (en particulier les jeux à somme nulle, potentiels et stables), les concepts de solution (comme les stratégies dominées/rationalisables, les notions d'équilibre de Nash, corrélé et grossier, ESS), et quelques extensions (approche de Blackwell). Par la suite, nous examinerons le comportement à long terme d'une grande variété d'algorithmes d'apprentissage en ligne (jeu fictif, appariement des regrets, poids multiplicatifs/exponentiels, descente en miroir et ses variantes, etc.), et nous discuterons des applications aux réseaux adversariaux génératifs (GAN), au routage du trafic, à la prédiction et aux enchères en ligne.

Références bibliographiques
[1] Nicolò Cesa-Bianchi et Gábor Lugosi, Prediction, learning, and games, Cambridge University Press, 2006.
[2] Drew Fudenberg et David K. Levine, The theory of learning in games, Economic learning and social evolution, vol. 2, MIT Press, Cambridge, MA, 1998.
[3] Sergiu Hart et Andreu Mas-Colell, Simple adaptive strategies : from regret matching to uncoupled dynamics, World Scientific Series in Economic Theory - Volume 4, World Scientific Publishing, 2013.
[4] Vianney Perchet, Approachability, regret and calibration : implications and equivalences, Journal of Dynamics and Games 1 (2014), no 2, 181-254.
[5] Shai Shalev-Shwartz, Online learning and online convex optimization, Foundations and Trends in Machine Learning 4 (2011), no 2, 107-194.

Introduction à l'inférence causale
Introduction to causal inference
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Fabrice Rossi
Ce cours est une introduction à l'inférence causale. Il couvre à la fois le cadre des résultats potentiels de Neyman-Rubin et le do-calcul de Pearl. Le premier est utilisé pour introduire le problème fondamental de l'inférence causale et la notion de dépendance contrefactuelle. Les hypothèses fondamentales nécessaires à l'identification causale des effets moyens du traitement sont présentées : échangeabilité (conditionnelle), positivité et cohérence. L'estimation basée sur des modèles linéaires généralisés et sur des approches d'apprentissage automatique est explorée, y compris l'approche d'apprentissage automatique double.

La deuxième partie du cours couvre le do-calcul de Pearl. Le cours introduit les modèles graphiques, en mettant l'accent sur les modèles dirigés, suivis par les modèles structurels de causalité. Le cas markovien simple est utilisé pour relier ce cadre à celui des résultats potentiels et pour dériver des techniques classiques telles que le critère de la porte dérobée. Le cas semi-markovien est ensuite exploré comme la manière générale de représenter les hypothèses causales en présence de variables confondantes non observées. L'identification est revisitée à la lumière du do-calcul et de l'algorithme IDC.

La dernière partie du cours passe en revue les algorithmes de découverte causale et les questions de recherche ouvertes.

Graphes de connaissance, logiques de description, raisonnement sur les données
Knowledge graphs, description logics, reasoning on data
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Michaël Thomazo

Les graphes de connaissances sont un outil flexible pour représenter les connaissances acquises concernant le monde réel. Après avoir présenté quelques-uns des graphes de connaissances existants (tels que DBPedia, Wikidata ou Yago), nous nous concentrerons sur leur interaction avec la sémantique, qui est formalisée par l'utilisation de ce que l'on appelle les ontologies. Nous présentons ensuite quelques formalismes logiques centraux utilisés pour exprimer les ontologies, tels que les logiques de description et les règles existentielles. Une grande partie du cours sera consacrée à l'étude des tâches de raisonnement associées, avec un accent particulier sur l'interrogation d'un graphe de connaissances à travers une ontologie. Les aspects théoriques (tels que le compromis entre l'expressivité du langage ontologique et la complexité des tâches de raisonnement) et pratiques (algorithmes efficaces) seront pris en compte.

Programme :
1. Graphes de connaissances (histoire et utilisations)
2. Langages ontologiques (logiques de description, règles existentielles)
3. Tâches de raisonnement (cohérence, classification, réponse aux requêtes ontologiques)
4. Réponse aux requêtes ontologiques (chaînage avant et arrière, décidabilité et complexité, algorithmes, sujets avancés)

Références :
- The description logic handbook : theory, implementation, and applications. Baader et al, Cambridge University Press
- Foundations of Semantic Web Technologies, Hitzler et al, Chapman&Hall/CRC
- Web Data Management, Abiteboul et al, Cambridge University Press

Prérequis :
- logique du premier ordre ;
- notions de théorie de la complexité (machines de Turing, classes de complexité classiques).

Grands modèles de langage pour le code et la preuve
LLM for code and proof
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Marc Lelarge

Les avancées récentes dans le domaine des grands modèles de langage (LLM) ont permis des progrès remarquables dans la synthèse de programme et la génération de code. Ce cours explore les fondements et les méthodologies qui sous-tendent la génération de code moderne, avec un accent particulier mis sur les techniques utilisant des LLM et les architectures basées sur les transformeurs. Le cours a deux objectifs principaux : (1) fournir aux étudiants une compréhension approfondie des techniques de base pour l'entraînement et le réglage fin des modèles neuronaux pour la génération de code, y compris les stratégies d'inférence et les métriques d'évaluation spécifiques au code, et (2) présenter la recherche actuelle sur la synthèse de programmes, en soulignant les applications dans le génie logiciel, le raisonnement, et la vérification formelle.

Les sujets abordés sont les suivants :

  • Architectures de transformeurs, mécanismes d'attention et KV-cache pour une inférence efficace.
  • Stratégies de tokenisation pour les ensembles de données linguistiques et codées.
  • Techniques de réglage fin telles que LoRA pour l'adaptation à des tâches spécifiques.
  • Lois de mise à l'échelle pour optimiser les performances du LLM.
  • Stratégies de décodage pour la génération de code, y compris les méthodes basées sur l'échantillonnage et les méthodes gourmandes.
  • Génération augmentée par recherche d'information (RAG) pour l'incorporation de connaissances externes.
  • Techniques de génération structurée pour les résultats soumis à des contraintes syntaxiques.
  • Applications des LLM à la vérification formelle et à la démonstration automatisée de théorèmes.

A la fin du cours, les étudiants auront acquis des connaissances théoriques et une expérience pratique dans la construction et l'évaluation de modèles neuronaux pour la génération de code.

Apprentissage automatique sur Big Data
Machine learning on big data
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Dario Colazzo

Ce cours se concentre sur les aspects typiques et fondamentaux qui doivent être traités dans la conception d'algorithmes d'apprentissage automatique qui peuvent être exécutés de manière distribuée, typiquement sur des clusters Hadoop, afin de traiter des ensembles de données volumineux, en tenant compte de l'évolutivité et de la robustesse. Le cours se concentrera donc d'abord sur un ensemble d'algorithmes d'apprentissage automatique séquentiels, en prenant en compte les aspects cruciaux et complexes suivants. Le premier est la refonte des algorithmes en s'appuyant sur des paradigmes de programmation pour la distribution et le parallélisme basés sur map-reduce (par exemple, Spark, Flink, ....). Le deuxième aspect est l'analyse expérimentale de l'implémentation basée sur map-reduce afin de tester l'évolutivité et la précision des algorithmes. Le troisième aspect concerne l'étude et l'application de techniques d'optimisation afin de surmonter le manque d'évolutivité et d'améliorer le temps d'exécution des algorithmes.

L'attention sera portée sur les techniques d'apprentissage automatique pour la réduction des dimensions, le regroupement et la classification, dont les techniques de mise en œuvre sous-jacentes sont transversales et trouvent une application dans un large éventail d'autres algorithmes d'apprentissage automatique. Pour certains des algorithmes étudiés, le cours présentera des techniques pour une implémentation map-reduce à partir de zéro, tandis que pour d'autres algorithmes, des packages comme Spark ML seront utilisés et des pipelines de bout en bout seront conçus. Dans les deux cas, les algorithmes seront analysés et optimisés sur des ensembles de données réelles.

Références:
- Mining of Massive Datasets http://www.mmds.org
- High Performance Spark; Best Practices for Scaling and Optimizing Apache Spark, Holden Karau, Rachel Warren, O’Reilly

Méthodes à noyau pour l'apprentissage
Machine learning with kernel method
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Julien Mairal

De nombreux problèmes rencontrés dans les applications de l'apprentissage automatique peuvent être formalisés comme des problèmes statistiques classiques, par exemple la reconnaissance de formes, la régression ou la réduction des dimensions, avec la difficulté de devoir travailler sur des données qui ne sont pas des vecteurs de nombres. Par exemple, les séquences et les structures de protéines en biologie informatique, les textes et les documents XML dans l'exploration du web, les images segmentées dans le traitement des images, ou les séries temporelles dans la reconnaissance vocale et la finance, ont des structures particulières qui contiennent des informations pertinentes pour le problème statistique, mais qui peuvent difficilement être encodées dans des représentations vectorielles à dimensions finies.

Les méthodes à noyau constituent une classe d'algorithmes bien adaptés à ces problèmes. En effet, elles étendent l'applicabilité de nombreuses méthodes statistiques initialement conçues pour les vecteurs à pratiquement n'importe quel type de données, sans qu'il soit nécessaire de vectoriser explicitement les données. Le prix à payer pour cette extension aux données non vectorielles est la nécessité de définir une fonction noyau définie positive entre les objets, ce qui équivaut formellement à une vectorisation implicite des données. La conception de noyaux pour différents objets a connu d'importantes avancées ces dernières années, aboutissant à de nombreux algorithmes et à des applications réussies dans de nombreux domaines

L'objectif de ce cours est de présenter les fondements mathématiques des méthodes de noyaux, ainsi que les principales approches qui ont émergé jusqu'à présent dans la conception de noyaux. Nous commencerons par une présentation de la théorie des noyaux définis positifs et des espaces de Hilbert à noyaux reproductibles, ce qui nous permettra d'introduire plusieurs méthodes à noyaux, notamment l'analyse en composantes principales à noyaux et les machines à vecteurs de support. Nous reviendrons ensuite sur le problème de la définition du noyau. Nous présenterons les principaux résultats concernant les noyaux de Mercer et les noyaux de semigroupes, ainsi que quelques exemples de noyaux pour les chaînes de caractères et les graphes, tirés d'applications en biologie informatique, en traitement de texte et en analyse d'images. Enfin, nous aborderons des sujets de recherche active, tels que les méthodes de noyaux à grande échelle et les machines à noyaux profonds.

Mathématiques de l'apprentissage profond
Mathematics of deep learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Bruno Loureiro
The past decade has witnessed a surge in the development and adoption of deep learning algorithms to solve day-a-day computational tasks. Surprisingly, the modern deep learning practice defies some of the established textbook intuition provided by traditional statistical learning theory and convex optimisation. For example, deep networks defy the classical bias-variance tradeoff by generalising and interpolating at the same time, and descent-based methods are successfully employed in the optimisation of highly non-convex objectives. These empirical observations translate to exciting theoretical challenges which require new mathematical ideas.

The goal of this course is two-fold. First, to familiarise the student with some of the major mathematical challenges posed by modern machine learning, as well as current research topics in theoretical machine learning. Second, to give an overview of some of the progress made over the past few years in understanding some of these problems. For example, we will cover:

  • Universal approximation theorems for neural networks.
  • The curse of dimensionality.
  • The lazy limit of large-width networks and the neural tangent kernel.
  • Introduction to random matrix theory tools for machine learning.
  • The double descent phenomena and benign overfitting.
  • Implicit bias of GD/SGD.
Recherche Monte-Carlo et jeux
Monte-Carlo search and games
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Tristan Cazenave

La recherche Monte-Carlo a révolutionné la programmation des jeux. Elle se combine bien avec le Deep Learning pour créer des systèmes qui jouent mieux que les meilleurs joueurs humains à des jeux comme le Go, les Echecs, le Hex ou le Shogi. Elle permet aussi d’approcher des problèmes d’optimisation difficiles. Dans ce cours nous traiterons des différents algorithmes de recherche Monte-Carlo comme UCT, GRAVE ou le Monte-Carlo imbriqué et l’apprentissage de politique de playouts. Nous verrons aussi comment combiner recherche Monte-Carlo et apprentissage profond. Le cours sera validé par un projet portant sur un jeu ou un problème d’optimisation difficile.

Bibliographie
Intelligence Artificielle Une Approche Ludique, Tristan Cazenave, Editions Ellipses, 2011.

Problèmes inverses non-convexes
Non-convex inverse problems
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Irène Waldspurger

Un problème inverse est un problème dont l'objectif est de retrouver un objet inconnu (typiquement un vecteur avec des coordonnées réelles, ou une matrice), étant donné quelques "mesures" de cet objet, et éventuellement quelques informations sur sa structure. Dans ce cours, nous discuterons d'exemples de tels problèmes, motivés par des applications aussi diverses que l'imagerie médicale, l'optique et l'apprentissage automatique. Nous nous concentrerons en particulier sur les questions suivantes :

  • quels algorithmes pouvons-nous utiliser pour résoudre numériquement ces problèmes ?
  • quand et comment pouvons-nous prouver que les solutions obtenues par les algorithmes sont correctes ?
  • Ces questions sont relativement bien comprises pour les problèmes inverses convexes, mais le cours portera essentiellement sur les problèmes inverses non convexes, dont l'étude est beaucoup plus récente et constitue un sujet de recherche très actif.

    Le cours se situera à l'interface entre l'analyse réelle, les statistiques et l'optimisation. Il comprendra des exercices théoriques et de programmation.

Bases de données NoSQL
NoSQL databases
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Paul Boniol

Le but de ce cours est de passer en revue les technologies de gestion de données qui peuvent être utilisées pour gérer de grands volume de données, au-delà des systèmes de gestion de base de données relationnelles classiques. Ces systèmes, regroupés de manière générique sous l'appellation « NoSQL », regroupent en réalité des approches très hétérogènes : modèles de données différents (par exemple, basés sur des représentation sous forme XML, graphe ou de triplets), compromis différents pour assurer un passage à l'échelle (avec en particulier abandon de propriétés ACID), distribution des données sur un très grand ensemble de nœuds, etc. Il s'agira de présenter les choix de technologies et les problématiques de recherche de certains de ces systèmes, et de comprendre dans quelles situations ils sont utiles.

Nuages de points et modélisation 3D
Point clouds and 3D modeling
Nombre d'heures
26h
ECTS
4 crédits
Responsable(s)
François Goulette

Ce cours donne un panorama des concepts et techniques d’acquisition, de traitement et de visualisation des nuages de points 3D, et de leurs fondements mathématiques et algorithmiques. Le cours abord notamment les thème suivants :

Systèmes de perception 3D
Traitements et opérateurs
Recalage
Segmentation de nuages de points
Reconstruction de courbes et surfaces
Modélisation par primitives
Rendu de nuages de points et maillages
Certaines séances sont complétées d’un TP.

Introduction à l'apprentissage de confiance
Topics in trustworthy machine learning
Nombre d'heures
24h
ECTS
4 crédits
Responsable(s)
Olivier Cappé
Le terme d'apprentissage automatique de confiance fait référence à l'étude des systèmes d'apprentissage automatique qui sont non seulement techniquement efficaces, mais aussi socialement responsables et acceptables pour les utilisateurs. L'objectif est de s'assurer que ces systèmes sont dignes de confiance pour les utilisateurs en relevant des défis clés tels que :
  • Protection de la vie privée : Protéger les données des utilisateurs et se conformer aux réglementations en matière de protection de la vie privée.
  • Robustesse : Assurer la résilience contre les attaques malveillantes et les données aberrantes.
  • Equité : Traiter tous les utilisateurs et tous les groupes de manière équitable, en évitant les préjugés.
Une partie importante du cours portera sur le cadre de la confidentialité différentielle (DP), qui est devenu, au cours de la dernière décennie, une référence pour le respect de la confidentialité des utilisateurs lors du traitement des données. Par une utilisation bien calibrée de perturbations aléatoires apportées lors de l'apprentissage, la DP vise à atteindre un compromis entre la protection des caractéristiques individuelles et l'utilité des modèles appris.

Le reste du cours explorera les modèles et concepts clés en matière de robustesse et d'équité.

S'appuyant sur les concepts d'apprentissage automatique du premier semestre et sur les probabilités et statistiques de base, le cours combine des cours magistraux, des séances d'exercices et des TPs en Python. La validation se fait par des devoirs et la soutenance d'un projet de groupe effectué autour d'un article de recherche.

Stage

Stage de recherche IASD
IASD research internship
ECTS
10 crédits