Plan du cours
Partie 1 – Concepts d'apprentissage profond et de DNN
Introduction à l'IA, l'apprentissage automatique et l'apprentissage profond
- Historique, concepts de base et applications courantes de l'intelligence artificielle, au-delà des fantasmes véhiculés par ce domaine
- Intelligence collective : agrégation des connaissances partagées par de nombreux agents virtuels
- Algorithmes génétiques : évolution d'une population d'agents virtuels par sélection
- Apprendre par machine (Machine Learning) : définition.
- Types de tâches : apprentissage supervisé, apprentissage non supervisé, apprentissage par renforcement
- Types d'actions : classification, régression, clustering, estimation de densité, réduction de la dimensionalité
- Exemples d'algorithmes d'apprentissage automatique : régression linéaire, Naive Bayes, Random Tree
- Apprentissage automatique vs Apprentissage profond : problèmes pour lesquels l'apprentissage automatique reste aujourd'hui l'état de l'art (Random Forests & XGBoosts)
Concepts de base d'un réseau de neurones (Application : perceptron multicouche)
- Rappels des bases mathématiques.
- Définition d'un réseau de neurones : architecture classique, activation et
- Pondération des activations précédentes, profondeur d'un réseau
- Définition de l'apprentissage d'un réseau de neurones : fonctions de coût, rétropropagation (back-propagation), descente de gradient stochastique, vraisemblance maximale.
- Modélisation d'un réseau de neurones : modélisation des données d'entrée et de sortie selon le type de problème (régression, classification...). Fléau de la dimensionnalité.
- Distinction entre données multi-caractéristiques et signal. Choix d'une fonction de coût selon les données.
- Approximation d'une fonction par un réseau de neurones : présentation et exemples
- Approximation d'une distribution par un réseau de neurones : présentation et exemples
- Augmentation de données (Data Augmentation) : comment équilibrer un jeu de données
- Généralisation des résultats d'un réseau de neurones.
- Initialisation et régularisation d'un réseau de neurones : régularisation L1 / L2, Batch Normalization
- Algorithmes d'optimisation et de convergence
Outils standards de ML / DL
Une présentation simple des avantages, inconvénients, position dans l'écosystème et utilisation est prévue.
- Outils de gestion de données : Apache Spark, Outils Apache Hadoop
- Apprentissage automatique : Numpy, Scipy, Sci-kit
- Frameworks DL de haut niveau : PyTorch, Keras, Lasagne
- Frameworks DL de bas niveau : Theano, Torch, Caffe, Tensorflow
Réseaux de neurones convolutifs (CNN).
- Présentation des CNN : principes fondamentaux et applications
- Fonctionnement de base d'un CNN : couche convolutionnelle, utilisation d'un noyau (kernel),
- Padding & stride, génération de cartes de caractéristiques, couches de pooling. Extensions 1D, 2D et 3D.
- Présentation des différentes architectures de CNN qui ont établi l'état de l'art en classification
- Images : LeNet, Réseaux VGG, Network in Network, Inception, Resnet. Présentation des innovations apportées par chaque architecture et leurs applications plus globales (Convolution 1x1 ou connexions résiduelles)
- Utilisation d'un modèle d'attention.
- Application à un cas de classification commun (texte ou image)
- CNN pour la génération : super-résolution, segmentation pixel-à-pixel. Présentation de
- Principales stratégies pour augmenter les cartes de caractéristiques pour la génération d'images.
Réseaux de neurones récurrents (RNN).
- Présentation des RNN : principes fondamentaux et applications.
- Fonctionnement de base du RNN : activation cachée, rétropropagation à travers le temps, version dépliée (Unfolded).
- Évolutions vers les Unités récurrentes à portes (GRUs) et LSTM (Long Short Term Memory).
- Présentation des différents états et des évolutions apportées par ces architectures
- Convergence et problèmes de gradient disparaissant (vanishing gradient)
- Architectures classiques : Prévision d'une série temporelle, classification ...
- Architecture de type Encodeur-Décodeur RNN. Utilisation d'un modèle d'attention.
- Applications NLP : encodage de mots / caractères, traduction.
- Applications Vidéo : prédiction de l'image générée suivante d'une séquence vidéo.
Modèles génératifs : Variational AutoEncoder (VAE) et Generative Adversarial Networks (GAN).
- Présentation des modèles génératifs, lien avec les CNN
- Auto-encodeur : réduction de dimensionalité et génération limitée
- Auto-encodeur variationnel : modèle génératif et approximation de la distribution d'une donnée définie. Définition et utilisation de l'espace latent. Astuce de réparamétrisation (Reparameterization trick). Applications et Limites observées
- Réseaux antagonistes génératifs : Fondamentaux.
- Architecture de réseau dual (Générateur et Discriminateur) avec apprentissage alternatif, fonctions de coût disponibles.
- Convergence d'un GAN et difficultés rencontrées.
- Amélioration de la convergence : Wasserstein GAN, Began. Distance de transport optimal (Earth Moving Distance).
- Applications pour la génération d'images ou de photographies, génération de texte, super-résolution.
Apprentissage par renforcement profond (Deep Reinforcement Learning).
- Présentation de l'apprentissage par renforcement : contrôle d'un agent dans un environnement défini
- Par un état et des actions possibles
- Utilisation d'un réseau de neurones pour approximer la fonction d'état
- Deep Q Learning : répétition d'expérience (experience replay) et application au contrôle d'une vidéo.
- Optimisation de la politique d'apprentissage. On-policy && off-policy. Architecture Actor Critic. A3C.
- Applications : contrôle d'un seul jeu vidéo ou d'un système numérique.
Partie 2 – Theano pour l'apprentissage profond
Bases de Theano
- Introduction
- Installation et Configuration
TheanoFunctions
- entrées, sorties, mises à jour, conditions (givens)
Entraînement et optimisation d'un réseau de neurones à l'aide de Theano
- Modélisation du réseau de neurones
- Régression logistique
- Couches cachées
- Entraînement d'un réseau
- Calcul et Classification
- Optimisation
- Log Loss
Test du modèle
Partie 3 – DNN à l'aide de Tensorflow
Bases de TensorFlow
- Création, Initialisation, Sauvegarde et Restauration de variables TensorFlow
- Alimentation, Lecture et Préchargement de données TensorFlow
- Comment utiliser l'infrastructure TensorFlow pour entraîner des modèles à grande échelle
- Visualisation et Évaluation des modèles avec TensorBoard
Mécanismes de TensorFlow
- Préparer les Données
- Téléchargement
- Entrées et Placeholders
-
Construire les Graphs
- Inférence
- Perte (Loss)
- Entraînement
-
Entraîner le Modèle
- Le Graphe
- La Session
- Boucle d'entraînement
-
Évaluer le Modèle
- Construire le Graphe d'évaluation
- Sortie d'évaluation
Le Perceptron
- Fonctions d'activation
- Algorithme d'apprentissage du perceptron
- Classification binaire avec le perceptron
- Classification de documents avec le perceptron
- Limites du perceptron
Du Perceptron aux Machines à Vecteurs de Support
- Noyaux (Kernels) et astuce du noyau (kernel trick)
- Classification à large margin et vecteurs de support
Réseaux de neurones artificiels
- Frontières de décision non linéaires
- Réseaux de neurones artificiels feedforward et feedback
- Perceptrons multicouches
- Minimization de la fonction de coût
- Propagation avant
- Rétropropagation
- Améliorer la manière dont les réseaux de neurones apprennent
Réseaux de neurones convolutifs
- Objectifs
- Architecture du modèle
- Principes
- Organisation du code
- Lancement et Entraînement du Modèle
- Évaluation d'un Modèle
Introductions de base à donner pour les modules suivants (Introduction brève à fournir selon la disponibilité du temps) :
Tensorflow - Utilisation avancée
- Filage (Threading) et Files d'attente (Queues)
- TensorFlow Distribué
- Rédaction de documentation et Partage de votre Modèle
- Personnalisation des lecteurs de données
- Manipulation des fichiers de modèle TensorFlow
TensorFlow Serving
- Introduction
- Tutoriel de base sur le service
- Tutoriel avancé sur le service
- Tutoriel sur le service du modèle Inception
Pré requis
Bases en physique, mathématiques et programmation. Expérience dans les activités de traitement d'images.
Les participants doivent avoir une compréhension préalable des concepts de l'apprentissage automatique et avoir travaillé avec le langage de programmation Python et ses bibliothèques.
Nos clients témoignent (2)
L'adaptation des exos à notre contexte et la prise en compte de notre demande
Amel Guetat - EURO-INFORMATION DEVELOPPEMENTS
Formation - Fraud Detection with Python and TensorFlow
La formation était bien organisée et planifiée, et j'en suis sorti(e) avec des connaissances systématisées et une bonne vue d'ensemble des sujets abordés.
Magdalena - Samsung Electronics Polska Sp. z o.o.
Formation - Deep Learning with TensorFlow 2
Traduction automatique