- À paraître




Cet ouvrage présente le deep learning. À des fins de concision, et les codes sources étant aisément trouvés sur internet, on évitera d’inclure du code, tout en encourageant le lecteur à ne pas avoir peur : les plateformes modernes (comme Pytorch, en Python) sont très aisées à manier, et on trouve facilement des “colab”, que l’on peut même, parfois, faire tourner à distance si on ne dispose pas d’une machine assez puissante.
Commande avant 16h,
expédié le jour même (lu. - ve.)
Livraison express sous 48h.
Cet ouvrage présente le deep learning. À des fins de concision, et les codes sources étant aisément trouvés sur internet, on évitera d’inclure du code, tout en encourageant le lecteur à ne pas avoir peur : les plateformes modernes (comme Pytorch, en Python) sont très aisées à manier, et on trouve facilement des “colab”, que l’on peut même, parfois, faire tourner à distance si on ne dispose pas d’une machine assez puissante.
Grâce à ce choix éditorial, accompagné d’une formalisation en équations, on couvrira une grande partie du deep learning (en français “apprentissage profond”), sans être exagérément long. En particulier, tous les éléments permettant de comprendre les IA conversationnelles ou génératrices d’images sont inclus.
Les prérequis sont essentiellement la compréhension du produit matrice / vecteur (le passage au tenseur est aisé) et de ce qu’est un gradient (ce qui devrait être simple pour qui connaît le concept de dérivée).
Référence : | 2230 |
Nombre de pages : | 250 |
Format : | 16x24 cm |
Reliure : | Broché |
Rôle | |
---|---|
Teytaud Olivier | Auteur |
1 Avant-propos
2 Introduction
2.1 Prérequis
2.2 Omissions
2.3 Pourquoi un livre « sans code » ?
2.4 Histoire de l'apprentissage profond et anecdotes
2.4.1 IA déductive vs IA inductive : syllogismes ou neurones ?
2.4.2 IA inductive : avec neurones ou avec dimension de Vapnik-Chervonenkis ?
2.4.3 L’apprentissage profond aujourd’hui
2.5 Aperçu de l’apprentissage profond en quelques lignes : quelles sont les idées clés ?
3 Principes généraux : apprendre de grands modèles à partir de grandes données
3.1 Introduction à l’apprentissage neuro-inductif
3.2 Les IA autres que neuro-inductives
3.2.1 Intelligence artificielle non-inductive
3.2.2 IA inductive sans neurones
3.3 Les différents domaines d’apprentissage inductif
3.4 Définition d'un modèle (neuronal)
3.5 Données
3.5.1 Une classification des ensembles de données
3.5.2 Exemples d'utilisation d'un ensemble de données de validation : surapprentissage, arrêt précoce et pénalisation des poids
3.5.3 Ensembles de données bien connus
3.5.4 Données ID, données OOD et le problème du transfert
3.6 Quantification des performances : fonctions de perte
3.6.1 Fonction de perte sur un échantillon, sur un mini-lot, sur un ensemble de données entier
3.6.2 Exemples générés/perturbés aléatoirement dans votre fonction de perte et augmentation des données
3.6.3 Comment créer une fonction de perte : différentiabilité, façonnage de la récompense, curriculum, escompte, etc.
3.7 Optimisation du modèle sur les données
4 Fonctions de perte
4.1 Un bref historique des fonctions de perte
4.1.1 Quelques exemples farfelus : n'ayez pas peur de créer des fonctions de perte inhabituelles, des gens très bien sont devenus célèbres en le faisant
4.1.2 Quelques exemples de fonctions de perte
4.2 Fonctions de perte en classification sans sorties scalaires
4.2.1 Fonctions de perte en classification lorsque la sortie est une étiquette
4.2.2 Fonctions de perte en classification lorsque la sortie cible est l'une de nombreuses étiquettes : classification multi-classes
4.3 Fonctions de perte en classification avec sorties scalaires
4.3.1 Fonction de perte en classification binaire, avec un scalaire mais sans probabilités
4.3.2 Comment représenter les probabilités pour la classification
4.3.2.1 Fonction de perte différentiable en classification binaire : utiliser une probabilité
4.3.2.2 Fonction de perte différentiable en classification multiclasse : probabilités par Softmax et ImageNet
4.3.2.3 Fonction de perte différentiable pour la classification multi-étiquettes : probabilités par sigmoïdes et Corel16K
4.4 Fonctions de perte en régression : prédiction d'un scalaire ou d'un vecteur/tenseur de scalaires
4.5 Fonctions de perte dans la modélisation générative
4.5.1 La vraisemblance différentiable des textes
4.5.1.1 La fonction de perte différentiable pour un seul token
4.5.1.2 La fonction de perte différentiable pour une séquence de tokens
4.5.2 Améliorations non différenciables pour la réponse aux questions et le raisonnement
4.5.2.1 Groupes de réponses (en autorisant les tokens “pensés”): de nombreuses simulations pour apprendre l'aiguille dans la botte de foin
4.5.2.2 Façonnage de récompense (“reward shaping”) non différenciable : récompenser directement les longs temps de réflexion
4.5.2.3 Suggérer de longs temps de réflexion par chaîne de pensée basée sur quelques exemples (“few-shot”)
4.5.2.4 Auto-cohérence (“self-consistency”) : voter pour plus de fiabilité
4.5.3 Kullbach-Leibler : une divergence utile partout dans la modélisation générative
4.6 Fonctions de perte pour l'apprentissage par renforcement
4.6.1 Agents neuronaux en apprentissage par renforcement
4.6.1.1 Quelle structure pour les agents neuronaux en apprentissage par renforcement ?
4.6.1.2 Le diable est dans les détails : représenter les jeux dans les réseaux neuronaux
4.6.1.3 Les neurones ne sont pas impliqués en apprentissage par renforcement qu’en tant que politiques
4.6.2 Fonctions de perte pour les réseaux neuronaux acteurs
4.6.2.1 Fonctions de perte pour l'apprentissage par imitation
4.6.2.2 Fonctions de perte non différentiables pour la recherche directe de politiques
4.6.2.3 Fonction de perte (partiellement) différentiable pour la recherche directe de police : Reinforce
4.6.3 Fonctions de perte pour l'apprentissage de la fonction Valeur et le concept de Critique
4.6.3.1 Fonction de valeur
4.6.3.2 Fonction Q
4.6.4 Quel jeu de données pour l'apprentissage des fonctions acteur/critique ?
4.7 Fonctions de perte pour les images
4.7.1 Distance à une image cible au niveau des pixels : MSE, PSNR et autres
4.7.1.1 Exemples de distances au niveau du pixel
4.7.1.2 Inconvénients des métriques au niveau du pixel
4.7.2 Distance aux images cibles à l'aide d'un réseau profond
4.7.2.1 Distance VGG entre les images
4.7.2.2 Distance LPIPS entre les images : extraction de caractéristiques par un réseau pré-entraîné, avec un petit peu d'apprentissage
4.7.2.3 Distance Inception de Fréchet entre les distributions d’images : mesurer la diversité et estimer l'effondrement des modes
4.7.3 Évaluation de la qualité de l'image (IQA)
4.7.3.1 Évaluation de la qualité de l'image : image par image
4.7.3.2 Évaluation de la qualité de l'image : le score Inception d'un lot d'images
4.8 Fonctions de perte de régularisation : pénalisation des poids, abandon “dropout” et autres anti-surapprentissage
5 Architectures neuronales
5.1 Introduction aux architectures neuronales
5.1.1 Panorama
5.1.2 Lien avec la biologie ?
5.2 Un neurone unique, son biais et ses fonctions d'activation
5.3 Perceptrons multicouches entièrement connectés (MLP, “multilayer perceptron”)
5.4 Réseaux convolutifs
5.4.1 Définition d'une couche convolutive : invariances spatiales
5.4.1.1 Formalisation d'une couche convolutive
5.4.1.2 Terminologie : pas, taille du noyau, convolution, filtre, “stride”
5.4.1.3 Les réseaux convolutifs : partage de poids et invariance spatiale
5.4.1.4 Nombre de canaux d'entrée/sortie
5.4.2 Couches convolutives spéciales : vers les MobileNets
5.4.2.1 Convolutions séparables en profondeur (“depthwise separable convolutions”) et convolutions 1x1
5.4.2.2 MobileNets : réseaux convolutifs ultra légers
5.5 Couches spéciales
5.5.1 Décisions stochastiques avec Softmax
5.5.2 Connexions “skip”, réseaux résiduels et ResNet50
5.5.2.1 Définition des connexions de saut/résiduelles
5.5.2.2 Bloc goulot d'étranglement “bottleneck”, ResNet50 et autres réseaux résiduels
5.5.3 Normalisations
5.5.3.1 Normalisation par lots “batch-normalization”
5.5.3.2 Normalisation par couches “layer-normalization”
5.5.4 Rembourrage “padding” : augmentation spatiale sans paramètre
5.5.5 Pooling : réduction spatiale sans paramètre
5.5.6 Pooling global : invariance de taille sans paramètre
5.5.6.1 Définition du pooling global : rendre le CNN invariant à la taille d’entrée
5.5.6.2 Application du pooling global en apprentissage-zéro pour les jeux : apprentissage curriculum
5.5.7 Outils pour les réseaux déconvolutifs
5.5.7.1 Déconvolution : augmentation entraînable de la dimension spatiale
5.5.7.2 Unpooling : mise à l'échelle sans paramètres entraînables
5.5.8 Parcimonie et applications
5.5.8.1 Couche Top-k : parcimonie sans paramètre
5.5.8.2 Gating et mélanges d'experts (“mixture of experts”): apprenez à désactiver de grandes parties de votre cerveau
5.5.9 Embedding de mots : du sans contexte au contextuel
5.5.9.1 Pourquoi avons-nous besoin d'embeddings de mots/tokens ?
5.5.9.2 Embeddings sans contexte : comment sont-ils appris ?
5.5.9.3 Embeddings contextuels de mots et de documents pré-entraînés
5.5.9.4 Embeddings de mots appris à la volée “end-to-end”
5.5.9.5 Les transformeurs peuvent être considérés comme des embedding de tokens, contextuels et profonds
5.5.10 Embedding positionnel
5.5.10.1 Embeddings positionnels appris ou prédéterminés
5.5.10.2 Embeddings positionnels relatifs vs absolus
5.5.10.3 Embeddings positionnels multidimensionnels (en particulier pour les transformeurs de vision)
5.6 U-networks : prédiction dense et segmentation d'images
5.7 Auto-encodeurs et réseaux diabolo
5.7.1 Auto-encodeur, encodeur, décodeur
5.7.2 Encodeur clairsemé (“sparse”) ou débruiteur (“denoiser”): auto-encodeur avec des objectifs spécifiques
5.7.3 Autoencodeurs variationnels (VAE, “variational auto-encoders”)
5.7.3.1 Pourquoi des autoencodeurs variationnels ?
5.7.3.2 Introduction de haut niveau aux VAE
5.7.3.3 L’encodeur du VAE
5.7.3.4 Le décodeur du VAE
5.7.3.5 Comment utiliser un VAE pour la modélisation générative
5.7.3.6 Fonctions de perte : comment entraîner un VAE ?
5.8 Réseaux récurrents et LSTM
5.8.1 LSTM
5.8.2 LSTM empilés (“stacked LSTM”)
5.8.3 Autres unités récurrentes avec “gating”
5.9 Transformeurs : vous avez besoin d’Attention
5.9.1 Un bloc transformeur, pour l'auto-attention
5.9.1.1 Parallélisme dans les encodeurs (pas tellement dans les décodeurs)
5.9.1.2 Masquage : causal ou bidirectionnel
5.9.2 Extensions du mécanisme d’attention
5.9.2.1 Attention multi-têtes
5.9.2.2 Attention à requêtes multiples et à requêtes par groupes
5.9.2.3 Attention croisée : transformeurs multimodaux
5.9.3 Architectures de transformeur
5.9.3.1 Bloc transformeur
5.9.3.2 Les différentes saveurs des transformeurs : un bref aperçu avant de passer aux aspects techniques
5.9.4 Un transformeur uniquement encodeur pré-entraîné pour de nombreuses tâches NLP : BERT
5.9.4.1 Qu'est-ce qu'un transformeur encodeur seul ? L’architecture de BERT
5.9.4.2 Les paramètres de BERT
5.9.4.3 Le token CLS pour travailler au niveau des documents : Doc2Vec contextuel
5.9.4.4 Le pré-entraînement de BERT : entraînement d'un embedding de mots contextuel
5.9.4.5 Transfert avec BERT : entraînement d'une nouvelle tête
5.9.4.6 La taille de BERT
5.10 Une brève chronologie des architectures neuronales
6 Optimisation numérique
6.1 Descente de gradient
6.1.1 Le formalisme de base de la descente de gradient
6.1.2 Variantes de la descente de gradient (non stochastique)
6.2 Rétropropagation : calculer le gradient en apprentissage profond
6.2.1 Rétropropagation à travers un réseau profond
6.2.1.1 Propagation vers l'avant
6.2.1.2 Le gradient d'une couche par rapport à l'un de ses paramètres entraînables
6.2.1.3 La rétropropagation
6.2.1.4 L'algorithme complet avant/arrière
6.2.2 Rétropropagation dans le temps
6.3 Descente de gradient stochastique (SGD) : descente de gradient rendue gérable grâce aux mini-lots
6.4 Variantes de (S)GD : initialisation, taux d'apprentissage, variantes
6.4.1 L'initialisation des réseaux neuronaux
6.4.2 Choix du taux d'apprentissage en GD ou SGD : cosinus, plateaux, réglage fin discriminatif et autres
6.4.3 Variantes de la descente de gradient stochastique
6.5 Optimisation de boîte noire
6.5.1 Les algorithme évolutionnaire
6.5.1.1 L'algorithme évolutionnaire le plus simple jamais créé : le 1/5ème
6.5.1.2 Extension : taille de population >1 et nombre d’enfants >1
6.5.1.3 Algorithmes génétiques
6.5.2 Autres méthodes d'optimisation boîte noire
6.5.3 Le domaine des algorithmes évolutionnaires et génétiques à l'ère de l'apprentissage profond
7 Éthique
7.1 Éthique non technique de l'IA
7.1.1 Confidentialité et utilisation équitable “fair use” : respect des données
7.1.2 L’IA ne doit pas devenir monopolistique
7.1.3 Où travailler : quelles applications, quelles entreprises, quels pays ?
7.1.4 Publication libre
7.2 Problèmes techniques liés à l'éthique de l'IA
7.2.1 Attaques adversariales
7.2.1.1 Principe des attaques adversariales
7.2.1.2 Attaques adversariales dans le monde réel
7.2.1.3 Attaques adversariales en boîte noire
7.2.1.4 Quelques attaques adversariales célèbres
7.2.2 Utilisation équitable et confidentialité : empoisonnement et attaque de la grand–mère
7.2.2.1 Attaques
7.2.2.2 Protections contre les failles de confidentialité, les problèmes d'utilisation inéquitable et l'empoisonnement
7.2.3 Diversité
7.2.3.1 Effondrement du mode : lorsque la diversité disparaît
7.2.3.2 Entigen : dire à l'IA de se soucier de la diversité
7.2.3.3 Diversité dans l'espace latent
7.2.4 Détection de faux (“fake detection”)
7.2.4.1 Détection passive de faux
7.2.4.2 Filigrane ou tatouage (“watermarking”)
7.2.4.3 Combinaison de tous les outils logiciels pour la détection des faux
7.2.4.4 Garanties matérielles contre les fausses images
8 Sujets supplémentaires sur l'apprentissage profond
8.1 Un célèbre réseau convolutif pour la classification d'images : VGG
8.2 Les Transformeurs sont également doués en vision
8.2.1 Principe d'un Transformeur de Vision (ViT, “vision transformer”)
8.2.2 Architecture détaillée du ViT
8.2.3 Préentraînement d'un ViT
8.3 Apprentissage par renforcement profond
8.3.1 Reinforce
8.3.2 PPO (“proximal policy optimization”): optimisation proximale de la politique
8.3.3 GRPO (“group-relative policy optimization”) : Optimisation des politiques relativement au groupe, combinant MCTS, PPO et TRPO
8.4 Zero-learning et AlphaZero
8.4.1 Compétitions : il existe d'autres outils que le deep learning dans les compétitions et il existe d'autres équipes que celles des grandes entreprises
8.4.2 Histoire de l'IA dans les jeux
8.4.3 Monte-Carlo
8.4.4 Recherche arborescente de Monte-Carlo : MCTS (“Monte Carlo Tree Search”)
8.4.4.1 Définition des rollouts MCTS
8.4.4.2 Interprétation : exploration vs exploitation et optimisme
8.4.4.3 L’interprétation est-elle valide ?
8.4.4.4 Rollouts MCTS
8.4.4.5 Conclusion : l'algorithme MCTS
8.4.5 Zero-learning : ajout d'un acteur neuronal et d'un critique neuronal
8.4.5.1 Entraîner un critique et un acteur avec les simulations MCTS
8.4.5.2 Amélioration des rollouts MCTS à l'aide des réseaux neuronaux : biaiser et tronquer les rollouts
8.4.5.3 Conclusion : la méthodologie complète d'apprentissage zéro est un point fixe
8.5 Les chatbots en bref : comment implémenter ChatGPT ou Mistral ?
8.5.1 Raisonnement et langage : les performances des grands modèles de langage actuels
8.5.2 Architecture neuronale “Generative Pretrained Transformer” (GPT) : il s'agit d'un décodeur pur
8.5.3 Les différentes étapes d’entraînement d'un chatbot
8.5.4 Post-entraînement sans modèle de récompense et sans retour humain : GRPO considéré comme l’auto-entraînement des chatbots
8.5.4.1 Pourquoi ce post-entraînement est-il compliqué ?
8.5.4.2 Reinforce : le cœur de GRPO
8.5.4.3 Différences entre Reinforce et GRPO
8.5.4.4 Aperçu de GRPO en équations
8.5.5 Améliorer les chatbots au moment de l'inférence
8.6 Réseaux antagonistes génératifs
8.7 Génération d'images par modèles de diffusion
8.7.1 Modèles de diffusion conditionnels et inconditionnels
8.7.2 Modèles de diffusion : apprentissage de l'inverse d'une chaîne de Markov
8.7.2.1 Structure exacte du générateur d'images
8.7.2.2 Architecture neuronale du débruiteur pour les modèles de diffusion
8.7.2.3 Algorithme d'apprentissage pour les modèles de diffusion : la fonction de perte pour l'apprentissage du débruiteur
8.7.3 Améliorations des modèles de diffusion : modèles de diffusion conditionnels, modèles de diffusion latents, modèles de diffusion turbo
8.7.3.1 Dépendance à l'invite (prompt) : modèles de diffusion comme méthode text2image
8.7.3.2 Génération d'images rapide par des modèles de diffusion latents
8.7.3.3 Variantes « Turbo » : distillation des modèles de diffusion latents
8.8 Génération de vidéos
9 Conclusion : l’IA et nous
10 Acronymes et glossaire
11 Bibliographie
11.1 Apprentissage profond alternatif
11.2 Apprentissage profond et évolutionnaire
11.3 Attaques adversariales: tromper les IAs
11.4 Vie privée
11.5 IA pour l’électricité
11.6 Applications de l’IA
11.7 L’IA et les jeux: théorie, MCTS, Zero-learning, etc
11.8 Mélange d’experts
11.9 Word embedding et document embeddings
11.10 U-networks et prédictions denses
11.11 Auto-encoders variationels
11.12 LSTM
11.13 Transformeurs
11.14 Générer des images à partir de texte
11.15 Diversité en modèles génératifs
11.16 Détection de créations par IA
11.17 Classification d’images
11.18 Le raisonnement
11.19 Restauration d’images