Update Présentation authored by Jean-Luc Parouty's avatar Jean-Luc Parouty
![](uploads/b302a03190a3c51184aefc674f67379a/00-fidle-header-03.svg)
**- Voir ou revoir en ligne -**
https://www.youtube.com/channel/UC4Sukzudhbwr6fs10cXrJsQ
**- En bref -**
Début de la formation : **Jeudi 25 novembre, 14h00**
Voir le **[programme](Fidle à distance/Présentation#programme-)**\
Pour rester informé : **[Abonnez-vous à la liste !](https://listes.grenoble.cnrs.fr/sympa/info/fidle-a-distance.info)**
La chaine [YouTube](https://www.youtube.com/c/CNRSFormationFIDLE)
**- Sommaire -**
[[_TOC_]]
# Fidle à distance
Faute de pouvoir organiser des sessions en présentiel, nous vous proposons une **session Fidle à distance** :-)
# Fidle, à distance
Les objectifs de cette session à distances sont les mêmes que pour les sessions en présentiel.
Afin de permettre un accès au plus grand nombre, nous vous proposons une nouvelle session de notre Formation d'Introduction au Deep Learning FIDLE !
Pour des questions de sécurité et à moins que vous ne disposiez déjà d'un compte, les moyens de calcul mutualisés ne peuvant être utilisés en formation à distance.\
Chaque participant est donc invité à **[installer localement son environnement Fidle](Using Fidle/Install Fidle)**.
......@@ -53,9 +51,11 @@ Une procédure est disponible dans le [Wiki](Using Fidle/Install Fidle).
Les supports sont en anglais, les présentation en français.
A l’issue de chaque séquence, les vidéos seront disponibles en ligne, sur la chaine Youtube de SARI.
A l’issue de chaque séquence, les vidéos seront disponibles en ligne, sur la chaine Youtube de FIDLE : https://www.youtube.com/c/CNRSFormationFIDLE
La calendrier sera discuté ensemble, à l'issue de la séquence 1, prévue le jeudi 4 février à 14h00.
La première séquence est prévue : **jeudi 25 novembre 2021, à 14h00**\
La diffusion sera effectuée via Zoom.\
Les paramètres de diffusion seront communiqués 48h avant, [via la liste de contact](https://listes.grenoble.cnrs.fr/sympa/info/fidle-a-distance.info).
# Prérequis
- Maîtrise raisonnable de Python et de Numpy.\
......@@ -77,81 +77,124 @@ L'idée est de proposer un **découpage en séquences** relativement courtes, de
- Le contenu des séquences pourra être adapté en fonction des demandes ou du contexte :-)
**Note :**\
La première séquence est prévue le **jeudi 4 février, à 14h00**.\
Le calendrier des séquences suivantes sera discuté ensemble.
La première séquence est prévue le **jeudi 25 novembre, à 14h00**.\
### Séquence 1 : Contexte et historique, de la régression linéaire aux réseaux de neurones.
- Introduction du cycle
- **Historique** et **concepts fondamentaux** des réseaux de neurones<br>
Fonction de perte - Descente de gradient - Optimisation - Hyperparamètres<br>
Préparation des données - Apprentissage - Validation - Sous et sur apprentissage<br>
* **Historique** et **concepts fondamentaux** des réseaux de neurones\
Fonction de perte - Descente de gradient - Optimisation - Hyperparamètres\
Préparation des données - Apprentissage - Validation - Sous et sur apprentissage\
Fonctions d’activation - softmax
- Exemples pratiques : Régression et Classification avec des DNN
- Durée : 3h
* Exemples proposés : Régression et Classification avec des DNN
* Durée : 3h
### Séquence 2 : Réseaux convolutifs, partie 1
* Principes et concepts des **réseaux convolutifs (CNN)**
* Convolutions - Dropout - Pooling
* Exemple proposé : Classification de chiffres manuscrits
* Durée : 2h
### Séquence 2 : Réseaux convolutifs, gestion des données et supervision.
- Principes et concepts des **réseaux convolutifs (CNN)**
- Problématiques liées aux **données**
- Convolutions - Dropout - Pooling - Monitoring et Tensorboard - Augmentation de données<br>
### Séquence 3 : Réseaux convolutifs, partie 2
* Quand les datasets et les calculs grossissent, problématiques liées à la **gestion des données**
* Rappel sur les convolutions - Monitoring et Tensorboard - Augmentation de données\
Passage à l'échelle (du notebook au batch) - Points de reprise (checkpoint)
- Exemples pratiques : Classification de chiffres manuscrits et de panneaux routiers
- Durée : 2x2h
### Séquence 3 : Données creuses de dimensions variables : L'exemple des données textuelles
- Spécificités et gestion des **données creuses/textuelles**
- Principes de **l'Embedding** (Keras, CBOW, Skip-Gram), comment réduire les dimensions.
- Exemple proposé : Analyse de sentiment avec une analyse de critique de films.
- Durée : 2h
### Séquence 4 : Données séquentielles ou quand les données sont des séquences temporelles
- Données séquentielles et **réseaux récurrents (RNN)**
- RNN - LSTM - GRU - Spécificités des données séquentielles - Data Generator
- Exemple proposée : Prédiction d'une séquence temporelle avec une prédiction météorologique à 3h et 12h
- Durée : 2h
### Séquence 5 : Autoencodeur (AE) : un exemple d'apprentissage non supervisé
- Principes et architecture d'un **autoencodeur (AE)**
- Espace latent - Convolution classiques et transposées<br>
Programmation procédurale avec Keras - GPU et batch
- Exemple proposé : Débruitage d'images fortement bruitées
- Durée : 2h
### Séquence 6 : Variational Autoencoder (VAE) : apprentissage non supervisé, réseau génératif
- Principes et architecture d’un **Variational AutoEncodeur (VAE)**
- Problématique liée aux **« gros » datasets**
- Projection gaussienne - Génération de données - Morphing dans l'espace latent<br>
Datasets clusterisés - GPU et batch
- Exemple proposé :
- Durée : 2h
### Séquence 7 : Passer à la vitesse supérieure : Jean-Zay et accélération GPU
- Présentation de **Jean-Zay** et calcul sur **GPU**
- Distribution du calcul - Data Parallelism - Model Parallelism<br>
Hybrid Parallelism - Pipelines
- Durée : 2h
### Séquence 8 : Démystifier les outils mathématiques pour l'apprentissage des réseaux de neurones.
- Présentation mathématique de l'optimisation par descente de gradient
- Principe de la **backpropagation**
- Mise en lumière de l'intérêt pratique des méthodes stochastiques
- Exemple proposé : Programmation **à la main** de l'apprentissage d'un réseau convolutif
- Durée : 2h30
### Séquence 9 : Un détour par PyTorch.
- Présentation générale
- Principes et objets clés pour programmer sous PyTorch
- Exemples : Classification et regression sous PyTorch
- Durée : 2h
### Séquence 10 : Clôture et bilan
- Pour aller au delà de ce premier contact...
- Conclusion et bilan
- Durée 1h
* Exemple proposé : Classification de panneaux routiers
* Durée : 2h
### Séquence 4 : Démystifier les outils mathématiques
![](uploads/fd909e4607c0e9858a8088b5f39f60f5/00-fidle-ender-03.svg)
* Présentation mathématique de l'optimisation par descente de gradient
* Principe de la backpropagation
* Mise en lumière de l'intérêt pratique des méthodes stochastiques
* Exemple proposé : Programmation à la main de l'apprentissage d'un réseau convolutif
* Durée : 2h30
### Séquence 5 : Données creuses de dimensions variables et stratégies d'évaluation des modèles
* Stratégies d'évaluation des modèles - Hold out, iterative hold out, k-fold, etc.
* Spécificités et gestion des données creuses/textuelles
* Principes de l'Embedding (Keras, CBOW, Skip-Gram), comment réduire les dimensions.
* Exemple proposé : Analyse de sentiment avec une analyse de critique de films.
* Durée : 2h
### Séquence 6 : Données séquentielles : quand les données sont des séquences temporelles
* Données séquentielles et réseaux récurrents (RNN)
* RNN - LSTM - GRU - Spécificités des données séquentielles - Data Generator
* Exemple proposée : Prédiction d'une séquence temporelle avec une prédiction météorologique à 3h et 12h
* Durée : 2h
### Séquence 7 : "Attention Is All You Need", quand les Transformers changent la donne
* Nouvelle evolution des modeles
* Fine tuning
* Cas d'usages : BERT, GPT
* Durée : 2h
### Séquence 8 : Autoencodeur (AE) : un exemple d'apprentissage "self supervised"
* Principes et architecture d'un autoencodeur (AE)
* Espace latent - Convolution classiques et transposées
* Programmation procédurale avec Keras - GPU et batch
* Exemple proposé : Débruitage d'images fortement bruitées
* Durée : 2h
### Séquence 9 : Variational Autoencoder (VAE) : apprentissage "self supervised", réseau génératif
* Principes et architecture d’un Variational AutoEncodeur (VAE)
* Problématique liée aux « gros » datasets
* Projection gaussienne - Génération de données - Morphing dans l'espace latent
* Datasets clusterisés - GPU et batch
* Exemple proposé : Génération de portraits
* Durée : 2h
### Séquence 10 : Generative Adversarial Networks (GAN)
* Principes et architecture d'un GAN
* Generator - Discriminator - Apprentissage
* WGAN et WGAN-GP
* Exemple proposé : A définir
* Durée : 2h
### Séquence 11 : Un détour par PyTorch.
* Présentation générale
* Principes et objets clés pour programmer sous PyTorch
* Exemples : Classification et regression sous PyTorch
* Durée : 2h
### Séquence 12 : Passer à la vitesse supérieure : Jean-Zay et accélération GPU
* Présentation de Jean-Zay et calcul sur GPU
* Distribution du calcul - Data Parallelism - Model Parallelism
* Hybrid Parallelism - Pipelines
* Deepspeed - Optimisation du Data parallelism
* Bonnes pratiques pour un apprentissage distribué
* Durée : 2h
### Séquence 13 : Introduction au Deep Reinforcement Learning
* Algorithme de Reinforcement Learning : Q-Learning, SARSA, etc (45 min)
* Deep reinforcement Learning : pour passer à des espaces à hautes dimensionalités via des fonctions d'approximation (45 min)
* Cas d'usage et résultats (30 min)
* Illustrations via des vidéos.
* Durée : 2h
### Séquence 14 - AI, droit, société et éthique
* Interprétabilité, reproductibilité, biais
* Cadre légal
* Privacy
* Session interactive
* Durée : 2h
### Séquence 15 : Clôture et bilan
* Pour aller au delà de ce premier contact...
* Conclusion et bilan
* Durée 1h
![](uploads/fd909e4607c0e9858a8088b5f39f60f5/00-fidle-ender-03.svg)