Deep
Apprentissage profond
Description : L’apprentissage profond est une technologie en plein essor ces dernières années, notamment grâce à l’utilisation des GPUs (Graphical Processing Units), la disponibilité de grandes masses de données mais aussi la compréhension d’éléments théoriques permettant de mieux définir des architectures de réseaux de neurones plus facilement entrainables. Dans ce cours, les étudiants seront introduits aux bases des réseaux de neurones et également aux différents éléments architecturaux qui permettent de concevoir un réseau de neurones en fonction du problème de prédiction considéré. Le cours est décomposé en modules dans lesquels on aborde les questions des algorithmes d’optimisation, leur initialisation, les techniques de régularisation, les architectures complètement connectées, les réseaux convolutifs, les réseaux récurrents, les techniques d’introspection. Des travaux pratiques sur GPUs sont associés aux cours.
Contenu : Les sujets abordés seront les suivants:
- Introduction historiques aux réseaux de neurones, classifieur/régresseur linéaire (1.5 HPE)
- Graphe de calcul et descente de gradient, Réseaux complètement connectés, RBFs, Auto-encodeurs, Méthodes d'optimisations, initialisation, régularisation (3 HPE)
- Réseaux convolutifs: architectures (1.5 HPE)
- Réseaux convolutifs : classification, détection d'objet, ségmentation sémantique (1.5 HPE)
- Réseaux récurrents: architectures et entrainement (1.5 HPE)
- Réseaux récurrents: applications (1.5 HPE)
- Les approches par transformers (1.5 HPE)
- Modèles génératifs : modèles auto-regressifs, VAE, GANs et diffusion (1.5 HPE)
Les TP porteront sur :
- Introduction à pytorch par la classification avec des réseaux linéaires, complètements connectés et convolutifs (3 HPE)
- Réseaux convolutifs pour la ségmentation sémantique (3 HPE)
- Réseaux récurrents pour la conversion séquence à séquence (3 HPE)
- Réseaux génératifs adversiaux (3 HPE)
- Apprentissage auto-supervisé (3 HPE)
Prérequis : On supposera que les étudiants auront des connaissance en algèbre linéaire, en optimisation, en vision par ordinateur et en programmation python. Les étudiants doivent disposer d’une certaine aisance dans un environnement Linux.
Acquis d’apprentissage : Être capable d’implémenter et de déployer un algorithme de deep learning (prise en main des frameworks de deep learning et déploiement du calcul du GPU) Être capable de choisir l’architecture de réseau de neurones adaptée au problème de prédiction considéré Savoir diagnostiquer l’apprentissage d’un réseau de neurones (qu’apprends le réseau de neurone ? comment l’apprend t’il ? apprends t’il ? est-il capable de généraliser ?)
Méthodes pédagogiques : Le cours est construit autour d’un cours magistral pendant lequel les notions théoriques et expérimentales sont introduites et illustrées au travers d’exemple. Des TPs sont régulièrement répartis le long du cours pour pouvoir mettre en œuvre les notions vues en cours.
Moyens : Nous utiliserons le framework python Pytorch. Les étudiants pourront travailler en binôme et disposeront des GPUs du Data Center d’Enseignement du campus de Metz pour faire les TPs. Une page dédidée sera créée sur eduano. Des forums de discussion seront ouvert pour permettre aux étudiants de poser leurs questions sur le cours et d’interagir entre eux et avec l’équipe enseignante.
Modalités d’évaluation : L’évaluation reposera sur deux éléments : des évaluations sur des questionnaires papier en début de chaque TP et la participation, en équipe, à un challenge créé pour l’occasion. Les élèves devront également réaliser une présentation filmée décrivant leur approche et leurs résultats.
Compétences évaluées :
- Agir, entreprendre, innover en environnement scientifique et technologique
- Être opérationnel, responsable et innovant dans le monde numérique
- Penser et agir en ingénieur éthique, responsable et intègre
Responsable de cours : Jérémy Fix
Identifiant Geode : 3MD4040
Ressources externes :
CM :
- Introduction et réseaux linéaires (1.5 h)
- Graphe de calcul, descente de gradients et réseaux feedforward (1.5 h)
- Optimisation, Initialisation, Régularisation (1.5 h)
- Eléments d’architectures des réseaux convolutifs (1.5 h)
- Applications des réseaux convolutifs à la détection d’objets et la segmentation sémantique (1.5 h)
- Les approches par transformers (1.5 h)
- Eléments d’architecture des réseaux récurrents (1.5 h)
- Architectures et applications des réseaux récurrents (1.5 h)
- Modèles génératifs : modèles auto-regressifs, VAE, GANs et diffusion (1.5 h)
TP :
- Introduction à PyTorch par la classification d’images (3.0 h)
- Réseaux convolutifs pour la segmentation sémantique (3.0 h)
- Application des RNNs pour la retranscription de la parole (3.0 h)
- Modèles génératifs (3.0 h)
- Apprentissage auto-supervisé (3.0 h)