But du cours
Maîtriser les architectures et les techniques de l’apprentissage profond (deep learning) afin de concevoir, entraîner et déployer des modèles de réseaux de neurones adaptés à des problèmes complexes de science des données. Ce cours approfondit les fondements théoriques des réseaux multicouches et couvre les architectures majeures — réseaux convolutifs, récurrents et génératifs — en insistant sur les défis pratiques propres à l’apprentissage à grande échelle : régularisation, optimisation, interprétabilité et passage à l’échelle sur GPU et systèmes distribués.
Acquis d'apprentissage visés
- Concevoir et implémenter des architectures de réseaux de neurones profonds (feedforward, CNN, RNN, LSTM) adaptées à la nature et au volume des données d’un problème donné
- Entraîner, régulariser et optimiser un modèle d’apprentissage profond en appliquant les bonnes pratiques : initialisation, dropout, early stopping, partage de paramètres, réglage des hyperparamètres
- Définir, mettre en œuvre et évaluer une analyse prédictive exploitant des données massives à l’aide de frameworks de deep learning exécutés sur GPU ou systèmes distribués
- Appliquer des architectures convolutives (CNN) et récurrentes (RNN/LSTM) à l’analyse de données multimédia : classification d’images, détection d’objets, traitement de signaux et de séries temporelles
- Sélectionner les outils et frameworks d’apprentissage profond appropriés (TensorFlow, PyTorch, Keras) en tenant compte des contraintes de volumétrie, de performance et d’interprétabilité
- Se tenir informé de l’état de l’art en deep learning et évaluer la pertinence des architectures avancées (modèles génératifs, transformers) pour de nouveaux cas d’usage
Prérequis
- Apprentissage automatique (S7) : algorithmes de classification et de régression, évaluation des modèles, compromis biais/variance, validation croisée — base directe et indispensable de ce cours.
- Système de données massives (S7) : architectures distribuées, frameworks de calcul parallèle — nécessaires pour le passage à l’échelle des modèles de deep learning.
- Fouille de données (S6) : prétraitement des données, extraction de caractéristiques, introduction au clustering.
- Probabilités et variables aléatoires (S5) : distributions de probabilité, espérance, variance — fondements des fonctions de coût et des méthodes d’optimisation.
- Processus stochastiques (S6) : modélisation de séquences et de séries temporelles — utiles pour la compréhension des RNN et LSTM.
- Compétences transversales attendues :
- Programmation Python avancée (numpy, pandas, matplotlib, scikit-learn)
- Algèbre linéaire : produits matriciels, décompositions, valeurs propres
- Calcul différentiel : dérivées partielles, règle de la chaîne, gradient
- Notions de base sur les GPU et les environnements de calcul (Google Colab, Jupyter)
- Lecture de documentation technique et d’articles de recherche en anglais
Programme
- Fondements des réseaux de neurones profonds :
- Rappels sur le perceptron multicouche (MLP) ; représentation hiérarchique des caractéristiques.
- Fonctions d’activation : ReLU, sigmoid, tanh, softmax — propriétés et cas d’usage.
- Algorithme de rétropropagation du gradient dans un réseau feedforward profond.
- Problèmes de gradient : vanishing et exploding gradient ; solutions (normalisation par batch, initialisation des poids).
- Régularisation : dropout, early stopping, weight decay, partage de paramètres.
- Réseaux de neurones convolutifs (CNN) :
- Principe de la convolution : détection de motifs locaux (bords, textures) ; invariance par translation.
- Couches de convolution, de pooling (max pooling, average pooling) et de mise à plat (flatten).
- Architectures de référence : LeNet, AlexNet, VGG, ResNet, EfficientNet.
- Transfert d’apprentissage (transfer learning) et fine-tuning sur des données limitées.
- Applications : classification d’images, détection d’objets, segmentation sémantique.
- Réseaux de neurones récurrents (RNN / LSTM / GRU) :
- Architecture des RNN ; rétropropagation dans le temps (BPTT).
- Défi des dépendances à long terme ; problème du gradient qui disparaît dans les RNN.
- LSTM (Long Short-Term Memory) et GRU (Gated Recurrent Unit) : mécanismes de portes et cas d’usage.
- Applications : traitement de séries temporelles, signaux, génération de séquences.
- Optimisation et passage à l’échelle :
- Algorithmes d’optimisation : SGD, Momentum, RMSprop, Adam.
- Planification du taux d’apprentissage (learning rate scheduling).
- Exécution sur GPU : CUDA, parallélisation des calculs tensoriels.
- Passage à l’échelle sur systèmes distribués : parallélisme de données et de modèles (lien avec DAT701).
- Sélection des outils selon la volumétrie : TensorFlow, PyTorch, Keras, JAX.
- Interprétabilité et bonnes pratiques :
- Visualisation des activations et des filtres convolutifs ; cartes de saillance (Grad-CAM).
- Évaluation des modèles : métriques, courbes d’apprentissage, détection du surapprentissage.
- Déploiement d’un modèle de deep learning : export, quantification, inférence optimisée.
- Thématiques avancées (selon disponibilité) :
- Modèles génératifs : réseaux antagonistes génératifs (GAN) — architecture, entraînement, applications (synthèse d’images, augmentation de données) ; défis pratiques (mode collapse, instabilité de convergence).
- Introduction aux Transformers et mécanisme d’attention ; vision transformers (ViT) et modèles de langage (LLM).
- Apprentissage auto-supervisé et contrastif ; foundation models.
Modalités d'évaluation
Contrôles continus et travaux pratiques évalués.
Bibliographie
- Kubat, M. (1999). Neural networks: a comprehensive foundation by Simon Haykin, Macmillan, 1994, ISBN 0-02-352781-7. The Knowledge Engineering Review, 13(4), 409-412.
- Michael A. Nielsen, "Neural Networks and Deep Learning", Determination Press, 2015
- Simon Haykin - Neural Networks and Learning Machines - Prentice Hall, 3^(e) éd., 2008
- Michael A. Nielsen - Neural Networks and Deep Learning - Determination Press, 2015 : <http://neuralnetworksanddeeplearning.com>
- Ian Goodfellow, Yoshua Bengio & Aaron Courville - Deep Learning - MIT Press, 2016 : <https://www.deeplearningbook.org>
- Aurélien Géron - Hands-On Machine Learning with Scikit-Learn, Keras and TensorFlow - O’Reilly, 3^(e) éd., 2022
- Kubat, M. - An Introduction to Machine Learning - Springer, 3^(e) éd., 2021
- Documentation PyTorch : <https://pytorch.org/docs/stable/>
- Documentation TensorFlow / Keras : <https://www.tensorflow.org/api_docs>
- Papers With Code — État de l’art en deep learning : <https://paperswithcode.com>
- Distill.pub — Visualisations interactives de concepts deep learning : <https://distill.pub>
- Fast.ai — Cours pratiques deep learning : <https://www.fast.ai>
Supports
Diaporamas, fiches de travaux dirigés et de travaux pratiques.