Plan du cours
Partie 1 – Concepts d'apprentissage profond et de DNN
Introduction à l'IA, à l'apprentissage automatique et à l'apprentissage profond
- Histoire, concepts de base et applications courantes de l'intelligence artificielle, au-delà des fantasmes portés par ce domaine
- Intelligence collective : agréger des connaissances partagées par de nombreux agents virtuels
- Algorithmes génétiques : faire évoluer une population d'agents virtuels par sélection
- Machine Learning habituel : 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 dimensionnalité
- Exemples d'algorithmes d'apprentissage automatique : régression linéaire, Naive Bayes, Random Tree
- Machine learning vs Deep Learning : les problèmes sur lesquels le Machine Learning reste aujourd'hui l'état de l'art (Random Forests & XGBoosts)
Concepts de base d'un réseau de neurones (Application : perceptron multicouche)
- Rappel des bases mathématiques.
- Définition d'un réseau de neurones : architecture classique, activation et
- Pondération des activations antérieures, profondeur d'un réseau
- Définition de l'apprentissage d'un réseau de neurones : fonctions de coût, rétropropagation, descente de gradient stochastique, maximum de vraisemblance.
- 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...). Malédiction de la dimensionnalité.
- Distinction entre données multivariées et signaux. 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 : 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, normalisation par lots (Batch Normalization)
- Algorithmes d'optimisation et de convergence
Outils standards ML / DL
Une présentation simple avec les avantages, les inconvénients, la position dans l'écosystème et l'usage est prévue.
- Outils de gestion de données : Apache Spark, outils Apache Hadoop
- Machine Learning : Numpy, Scipy, Sci-kit
- Frameworks DL de haut niveau : PyTorch, Keras, Lasagne
- Frameworks DL 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 convolutive, utilisation d'un noyau,
- Padding & stride, génération de cartes de caractéristiques, couches de pooling. Extensions 1D, 2D et 3D.
- Présentation des différentes architectures CNN qui ont atteint 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éroulée.
- Évolutions vers les unités récurrentes à portes (GRU) 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 qui s'évanouit
- Architectures classiques : Prédiction d'une série temporelle, classification...
- Architecture de type RNN Encoder-Decoder. Utilisation d'un modèle d'attention.
- Applications NLP : encodage de mots / caractères, traduction.
- Applications vidéo : prédiction de la prochaine image générée 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 dimensionnalité 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. Applications et limites observées
- Réseaux adverses génératifs : Fondamentaux.
- Architecture de réseau dual (Générateur et discriminateur) avec apprentissage alterné, fonctions de coût disponibles.
- Convergence d'un GAN et difficultés rencontrées.
- Amélioration de la convergence : Wasserstein GAN, Began. Distance de déplacement de terre (Earth Moving Distance).
- Applications pour la génération d'images ou de photographies, génération de texte, super-résolution.
Apprentissage profond par renforcement (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 : replay d'expérience, et application au contrôle d'un jeu 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
Fonctions Theano
- entrées, sorties, mises à jour, 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
- Perte log (Log Loss)
Test du modèle
Partie 3 – DNN utilisant TensorFlow
Bases de TensorFlow
- Création, Initialisation, Sauvegarde et Restauration des variables TensorFlow
- Alimentation, Lecture et Préchargement des 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écanique de TensorFlow
- Préparer les Données
- Téléchargement
- Entrées et Placeholders
-
Construire les Graphes
- 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
- Limitations du perceptron
Du Perceptron aux Machines à Vecteurs de Support
- Noyaux et le noyau trick
- Classification à marge maximale 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
- Minimisation de la fonction de coût
- Propagation avant
- Rétropropagation
- Amélioration de la façon 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 aux modules ci-dessous (Introduction brève à fournir en fonction du temps disponible) :
TensorFlow - Utilisation avancée
- Threads et Files
- 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 service basique
- Tutoriel de service avancé
- Tutoriel de service du modèle Inception
Pré requis
Des bases en physique, mathématiques et programmation. Une expérience dans les activités de traitement d'image.
Les participants doivent avoir une connaissance préalable des concepts d'apprentissage automatique et doivent 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