• Aide
  • Eurêkoi Eurêkoi

Livre

Le deep learning pour le traitement d'images : classification, détection et segmentation avec Python et TensorFlow

Résumé

Une base théorique et approfondie afin de comprendre et développer des applications de traitement d'images grâce au deep learning, accompagnée de conseils pratiques et d'exemples sous forme de scripts Python basés sur TensorFlow. Plusieurs méthodes permettant de visualiser le fonctionnement du réseau sont détaillées. ©Electre 2024


  • Éditeur(s)
  • Date
    • C 2024
  • Notes
    • La 4e de couv. indique : Notebooks des exemples du livre téléchargeables sur www.editions.eni.fr
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (536 p.) : ill., grapg., fig. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-04320-8
  • Indice
    • 681.7 Intelligence artificielle, systèmes experts
  • Quatrième de couverture
    • Le Deep Learning pour le traitement d'images

      Cet ouvrage s'adresse à toutes les personnes désireuses de comprendre et développer des applications de traitement d'images basées sur le deep learning. Il fournit non seulement une base théorique solide, mais également des Informations très pratiques, des « trucs et astuces » et des exemples sous forme de scripts Python basés sur TensorFlow.

      Après une introduction à l'intelligence artificielle, le matériel et les logiciels nécessaires à sa pratique sont détaillés. Suivent ensuite des explications progressives des réseaux de neurones convolutionnels, en décrivant tout d'abord les classifieurs linéaires, puis les réseaux de neurones profonds, et enfin les réseaux convolutionnels. Ces trois chapitres sont accompagnés de scripts Python utilisant TensorFlow, et suivis d'astuces pour améliorer la performance et limiter les biais potentiels du réseau et l'impact carbone lié à son apprentissage et son utilisation. L'apprentissage par transfert, qui consiste à adapter un réseau pré-entraîné à une nouvelle tâche, est ensuite présenté, et accompagné d'un exemple basé sur TensorFlow.

      Les chapitres suivants décrivent les réseaux convolutionnels appliqués à d'autres tâches que la classification, comme la détection et la segmentation. Ces chapitres sont accompagnés de scripts présentant l'utilisation des bibliothèques TensorFlow Object Detection et de l'architecture Unet.

      Le lecteur trouve une description de plusieurs méthodes permettant de visualiser le fonctionnement du réseau et d'améliorer son explicabilité, puis cet ouvrage explique pourquoi surveiller les performances d'un modèle après son déploiement, et comment organiser une telle surveillance en pratique. Le script accompagnant ce chapitre décrit le fonctionnement de la librairie tf_explain, qui implémente plusieurs des méthodes présentées. Vient ensuite un exposé des critères définis par la Commission européenne pour juger qu'un modèle d'intelligence artificielle est « responsable », et une traduction de ces critères en bonnes pratiques à adopter lors du développement et du déploiement.

      Enfin, le livre conclut avec des conseils pour améliorer vos compétences et vous tenir au courant des évolutions récentes dans le domaine de l'apprentissage profond appliqué au traitement d'images.


  • Tables des matières
      • Le Deep Learning pour le traitement d'images

      • Classification, détection et segmentation avec Python et TensorFlow

      • Editions Eni

      • Chapitre 1
      • Introduction
      • 1. Révolution de modèles d'apprentissage profond en traitement d'images21
      • 2. Structure du livre22
      • 3. Langue utilisée pour les termes techniques24
      • Chapitre 2
      • Intelligence artificielle et apprentissage profond
      • 1. Objectifs du chapitre25
      • 2. Définitions de l'intelligence artificielle, apprentissage automatique et apprentissage profond26
      • 2.1 Intelligence artificielle26
      • 2.2 Apprentissage automatique26
      • 2.3 Apprentissage profond27
      • 3. Fonctionnement général d'un modèle d'apprentissage28
      • 3.1 Processus d'apprentissage et ingrédients28
      • 3.2 Processus général de résolution d'un problème en apprentissage profond31
      • 3.3 Types de problèmes en traitement d'images35
      • 4. Bref historique de l'intelligence artificielle et de l'apprentissage profond36
      • 4.1 Naissance de l'intelligence artificielle36
      • 4.2 Apprentissage automatique37
      • 4.3 Grandes ruptures de 201137
      • 5. Promesses, limites et risques38
      • 5.1 Apports de l'intelligence artificielle pour le traitement d'images38
      • 5.2 Limites et risques de l'intelligence artificielle38
      • 5.2.1 Vision idéalisée des prouesses possibles38
      • 5.2.2 Bonnes pratiques souvent peu connues et appliquées39
      • 5.2.3 Généralisabilité limitée39
      • 5.2.4 Performances limitées par les données d'entraînement40
      • 5.3 Questions éthiques40
      • 5.4 Impact carbone et consommation d'eau41
      • 6. Conclusion42
      • Chapitre 3
      • Outils indispensables à la pratique
      • 1. Objectifs de ce chapitre43
      • 2. Ordinateurs et-çartes graphiques44
      • 2.1 GPU et CPU44
      • 2.2 Taille de la mémoire vive46
      • 2.3 Investir dans un ordinateur performant ou réaliser tous les calculs sur des plateformes déportées ?47
      • 3. Jeux de données ouverts48
      • 3.1 Fondamentaux d'un jeu de données d'entraînement48
      • 3.2 Avantages d'utiliser un jeu de données ouvert49
      • 3.3 Ensembles de référence50
      • 3.3.1 Iris50
      • 3.3.2 MNIST51
      • 3.3.3 CIFAR-1053
      • 3.3.4 Cats vs dogs54
      • 3.3.5 ImageNet56
      • 3.3.6 COCO59
      • 3.4 Où trouver d'autres ensembles de données ?60
      • 4. Langages, librairies et frame works62
      • 4.1 Python62
      • 4.2 Librairies spécifiques63
      • 4.3 Frameworks pour l'apprentissage profond63
      • 4.4 TensorFlow, Keras et TensorBoard66
      • 4.4.1 Keras66
      • 4.4.2 TensorBoard67
      • 4.5 Jupyter notebook et Google Colab67
      • 4.5.1 Jupyter notebook67
      • 4.5.2 Google Colab70
      • 5. Comment utiliser les exemples de ce livre ?70
      • 5.1 Ouvrir les exemples de ce livre dans Google Colab70
      • 5.2 Ouvrir les exemples de ce livre localement71
      • 5.2.1 Récupérer le code72
      • 5.2.2 S'assurer que Python est installé, l'installer le cas échéant72
      • 5.2.3 Créer un environnement virtuel74
      • 5.2.4 Activer l'environnement virtuel76
      • 5.2.5 Installer Jupyter Notebook76
      • 5.2.6 Installer TensorFlow77
      • 5.2.7 Ouvrir et exécuter un notebook79
      • 6. Conclusion80
      • Chapitre 4
      • Classifieurs linéaires
      • 1. Objectifs du chapitre81
      • 2. Vocabulaire et notations82
      • 2.1 Étiquettes82
      • 2.2 Caractéristiques82
      • 2.3 Exemples83
      • 2.4 Modèle83
      • 3. Modèle paramétrique du classifieur linéaire84
      • 3.1 Définition du modèle84
      • 3.2 Interprétation d'un classifieur linéaire comme une mise en correspondance avec un motif85
      • 3.3 Interprétation d'un classifieur linéaire comme un ensemble de plans de séparation87
      • 4. Étapes de l'entraînement88
      • 5. Séparation des données89
      • 5.1 Principe89
      • 5.2 Proportions91
      • 5.3 Validation croisée92
      • 5.4 Types de séparation94
      • 5.4.1 Séparation aléatoire94
      • 5.4.2 Séparation stratifiée95
      • 5.4.3 Séparation groupée95
      • 5.5 Mise en oeuvre de la séparation des données avec la bibliothèque scikit-learn96
      • 5.5.1 Validation croisée96
      • 5.5.2 Séparation aléatoire99
      • 5.5.3 Séparation stratifiée101
      • 5.5.4 Séparation groupée102
      • 6. Optimisation des paramètres102
      • 6.1 Fonction-coût102
      • 6.1.1 Erreur quadratique moyenne103
      • 6.1.2 Softmax et entropie croisée104
      • 6.1.3 Entropie croisée binaire108
      • 6.2 Descente de gradient109
      • 6.2.1 Définition109
      • 6.2.2 Descente de gradient stochastique et par lots112
      • 7. Métriques permettant d'évaluer un modèle de classification114
      • 7.1 Glassification binaire114
      • 7.1.1 Matrice de confusion114
      • 7.1.2 Justesse116
      • 7.1.3 Sensibilité et spécificité, précision et rappel117
      • 7.1.4 Score F1118
      • 7.1.5 Courbe précision-rappel119
      • 7.1.6 Courbe ROC120
      • 7.2 Classification multiclasse120
      • 8. De l'apprentissage automatique aux réseaux de neurones122
      • 8.1 Sélection automatique des caractéristiques122
      • 8.2 Ajout de non-linéarité125
      • 9. Exemple pratique : entraîner un classifieur linéaire à distinguer les chats des chiens126
      • 10. Conclusion126
      • Chapitre 5
      • Réseaux de neurones profonds
      • 1. Objectifs du chapitre et prérequis127
      • 2. Neurone formel128
      • 2.1 Définition du neurone formel128
      • 2.2 Neurone formel comme la généralisation des classifieurs linéaires131
      • 2.3 Neurone formel comme la modélisation d'un neurone biologique132
      • 3. Réseaux de neurones profonds134
      • 3.1 Fonctionnement d'un réseau de neurones profond134
      • 3.2 Intérêt des réseaux de neurones profonds136
      • 3.3 Spécifier un réseau de neurones dans Keras137
      • 4. Étapes de l'apprentissage des réseaux de neurones profonds139
      • 5. Optimisation des poids139
      • 5.1 Descente de gradient140
      • 5.2 Calcul du gradient142
      • 5.3 Descente de gradient par rétropropagation148
      • 5.4 Inconvénients de la descente de gradient149
      • 5.5 Variantes de la descente de gradient151
      • 5.5.1 Descente de gradient avec inertie151
      • 5.5.2 AdaGrad153
      • 5.5.3 RMSProp154
      • 5.5.4 ADAM155
      • 5.6 Optimiser les poids dans TensorFlow avec Keras158
      • 5.6.1 Compilation du modèle158
      • 5.6.2 Entraînement du modèle159
      • 5.6.3 Surveiller le processus d'entraînement avec TensorBoard160
      • 6. Fonctions d'activation164
      • 6.1 Caractéristiques des fonctions d'activation164
      • 6.2 Fonctions d'activation courantes164
      • 6.3 Spécifier une fonction d'activation dans Keras168
      • 7. Surapprentissage170
      • 7.1 Définition170
      • 7.2 Détection du surapprentissage par visualisation de la courbe d'apprentissage171
      • 7.3 Quatre pistes pour limiter le surapprentissage173
      • 7.3.1 Augmentation de la quantité de données173
      • 7.3.2 Diminution de la complexité du modèle173
      • 7.3.3 Interruption prématurée de l'entraînement173
      • 7.3.4 Extinction de neurones176
      • 8. Sélection des hyperparamètres178
      • 8.1 Différents types d'hyperparamètres178
      • 8.2 Ordre et stratégie de sélection des hyperparamètres179
      • 8.3 Sélection du taux d'apprentissage181
      • 8.3.1 Diagnostic du taux d'apprentissage d'après la courbe d'apprentissage181
      • 8.3.2 Stratégie de sélection du taux d'apprentissage182
      • 8.3.3 Décroissance du taux d'apprentissage183
      • 8.4 Sélection des hyperparamètres en pratique185
      • 8.5 Sélection automatique des hyperparamètres186
      • 9. De la création à l'entraînement d'un réseau de neurones profond avec Keras187
      • 10. Conclusion187
      • Chapitre 6
      • Réseaux de neurones à convolution
      • 1. Objectifs du chapitre et prérequis189
      • 2. Motivation, historique et applications des réseaux de neurones à convolution190
      • 2.1 Motivation190
      • 2.2 Historique192
      • 2.2.1 Structure inspirée par le fonctionnement du cortex visuel192
      • 2.2.2 Du premier réseau aux réseaux de neurones modernes.193
      • 2.2.3 Réseaux modernes196
      • 3. Fonctionnement détaillé de chaque type de couche196
      • 3.1 Architecture générale d'un réseau de neurones à convolution196
      • 3.2 Couches de convolution197
      • 3.2.1 Fonctionnement d'un filtre de convolution197
      • 3.2.2 Signification de la convolution199
      • 3.2.3 Valeurs aux bords201
      • 3.2.4 Images couleur204
      • 3.2.5 Définition du pas d'un filtre de convolution205
      • 3.2.6 Organisation des filtres de convolution dans la couche de convolution206
      • 3.2.7 Ajouter une couche de convolution à un modèle séquentiel dans Keras207
      • 3.2.8 Couche de convolution en résumé209
      • 3.3 Couche d'activation209
      • 3.3.1 Principe209
      • 3.3.2 Ajouter une couche d'activation à un modèle séquentiel dans Keras210
      • 3.4 Couches d'agrégation211
      • 3.4.1 Principe211
      • 3.4.2 Ajouter une couche d'agrégation à un modèle séquentiel dans Keras214
      • 3.5 Couche d'extinction de neurones215
      • 3.5.1 Principe215
      • 3.5.2 Ajouter une couche d'extinction de neurones dans Keras216
      • 3.6 Couche de normalisation par lots217
      • 3.6.1 Principe217
      • 3.6.2 Ajouter une couche de normalisation par lots dans Keras219
      • 3.7 Couche complètement connectée219
      • 3.7.1 Principe219
      • 3.7.2 Ajouter une couche complètement connectée dans Keras220
      • 3.8 Résumé des différents types de couches221
      • 3.9 Architecture classique d'un réseau de neurones222
      • 3.10 Interprétation d'un réseau oenvolutionnel224
      • 4. Étapes de l'apprentissage des réseaux de neurones convolutionnels225
      • 5. Sélection des hyperparamètres227
      • 5.1 Liste des hyperparamètres et stratégie de sélection227
      • 5.2 Choix de la structure du réseau228
      • 5.2.1 Facteur de sous-échantillonnage et nombre de couches228
      • 5.2.2 Taille des filtres229
      • 5.3 Choix de la taille de lot229
      • 6. Prétraitement des images230
      • 6.1 Augmentation de données230
      • 6.2 Normalisation232
      • 7. Mise en pratique : créer et entraîner un réseau de neurones avec Tensorflow et Keras233
      • 8. Conclusion234
      • Chapitre 7
      • Bonnes pratiques pour l'entraînement
      • 1. But du chapitre et prérequis235
      • 2. Objectifs des bonnes pratiques236
      • 3. Améliorer la performance236
      • 3.1 Avant toute chose, définir la performance nécessaire236
      • 3.2 Tour d'horizon des actions à mener lorsque le réseau ne présente pas les performances attendues237
      • 3.3 Vérification de l'implémentation : bonnes pratiques et surapprentissage programmé238
      • 3.4 Gestion des classes déséquilibrées238
      • 3.5 Surveiller et limiter le surapprentissage240
      • 3.6 Utiliser des ensembles de modèles241
      • 3.7 Comment choisir le réseau le plus performant ?243
      • 4. Encourager la généralisabilité245
      • 5. Assurer la reproductibilité de l'entraînement246
      • 6. Limiter le biais248
      • 6.1 Définition et origine des biais248
      • 6.2 Des jeux de données biaisés par défaut249
      • 6.3 Une amplification des biais présents dans les données d'entraînement250
      • 6.4 Anticiper les biais éventuels250
      • 6.5 Limiter les biais anticipés avant l'entraînement251
      • 6.6 Détecter et corriger les biais éventuels du modèle entraîné252
      • 6.7 Comment faire s'il est impossible de construire un jeu de données non biaisé ?252
      • 7. Impact carbone et consommation d'eau de l'apprentissage profond253
      • 7.1 Impact grandissant253
      • 7.2 Questionner l'utilité du modèle avant son développement, et à chaque étape254
      • 7.3 Limiter la consommation électrique255
      • 7.4 Sensibiliser les protagonistes à l'impact carbone de l'apprentissage profond257
      • 8. Conclusion258
      • Chapitre 8
      • Adapter un réseau existant
      • 1. Objectifs du chapitre et prérequis259
      • 2. Apprentissage par transfert260
      • 2.1 Principe et motivation260
      • 2.2 Fonctionnement détaillé -.262
      • 2.3 Où trouver des modèles pré-entraînés ?264
      • 2.4 Comment choisir quel modèle utiliser ?265
      • 2.4.1 Deux critères de choix : la complexité et la précision265
      • 2.4.2 Sources d'informations pour la complexité et la performance sur le jeu de données original265
      • 3. Réseaux classiques269
      • 3.1 AlexNet270
      • 3.1.1 Architecture270
      • 3.1.2 Amélioration des performances d'AlexNet : augmentation de données et ensemble de modèles273
      • 3.2 VGG275
      • 3.2.1 Réseaux plus profonds275
      • 3.2.2 Architecture de VGG276
      • 3.2.3 Différences entre AlexNet et VGG et motivations279
      • 3.3 GoogLeNet282
      • 3.3.1 Présentation générale282
      • 3.3.2 Module d'inception283
      • 3.3.3 Agrégation par moyennage global284
      • 3.3.4 Classifieurs auxiliaires286
      • 3.3.5 Architecture globale286
      • 3.3.6 Autres versions288
      • 3.4 ResNet289
      • 3.4.1 Révolution de la profondeur289
      • 3.4.2 Connexions résiduelles290
      • 3.4.3 Architecture de ResNet291
      • 3.4.4 InceptionResNet294
      • 3.4.5 DenseNet294
      • 3.5 EfficientNet295
      • 3.5.1 Présentation générale295
      • 3.5.2 Mise à l'échelle combinée295
      • 3.5.3 Blocs résiduels inversés296
      • 3.5.4 Architecture d'EfficientNet-BO298
      • 3.6 Comparaison des performances300
      • 4. Exercice pratique : améliorer notre classifieur de chats et chiens301
      • 5. Conclusion301
      • Chapitre 9
      • Détection
      • 1. But du chapitre et prérequis303
      • 2. Définition de la détection et spécificités304
      • 2.1 Définition de la détection304
      • 2.2 Apport de l'apprentissage profond pour la détection305
      • 2.3 Spécificités de la détection306
      • 3. Métriques de la détection307
      • 3.1 Indice de Jaccard307
      • 3.2 Vrais et faux positifs, faux négatifs309
      • 3.3 Précision, rappel et score F1310
      • 3.4 Courbe de rappel de précision et moyenne de la précision moyenne311
      • 3.5 Images par seconde313
      • 3.6 Résumé des métriques de la détection313
      • 4. Ingrédients généraux des réseaux de détection314
      • 4.1 Localisation et classification314
      • 4.2 Représentation des détections315
      • 4.2.1 Ancres315
      • 4.2.2 Images matricielles317
      • 4.3 Fonctions-coût319
      • 4.3.1 Format général319
      • 4.3.2 Fonction-coût de localisation320
      • 4.3.3 Fonction-coût de classification325
      • 5. Réseaux basés sur la proposition de régions326
      • 5.1 Premières versions326
      • 5.2 Faster R-CNN327
      • 5.2.1 Architecture générale327
      • 5.2.2 Réseau de base329
      • 5.2.3 Détection.329
      • 5.2.4 Suppression des régions non optimales332
      • 5.2.5 Réseau de convolution basé sur les régions333
      • 5.2.6 Suppression des régions non optimales335
      • 5.2.7 Entraînement et fonction-coût335
      • 5.3 Performances et coût de calcul336
      • 6. Réseaux en une seule passe basés sur des ancres336
      • 6.1 YOLO336
      • 6.1.1 Principe général.337
      • 6.1.2 Boîtes englobantes préliminaires337
      • 6.1.3 Couches de détection339
      • 6.1.4 Détection multiéchelle341
      • 6.1.5 Architecture complète du réseau341
      • 6.1.6 Sortie du réseau344
      • 6.1.7 Post-traitement344
      • 6.1.8 Fonction-coût346
      • 6.1.9 Limitations346
      • 6.1.10 Autres versions347
      • 6.1.11 YOLOv7348
      • 6.2 SSD349
      • 6.2.1 Présentation349
      • 6.2.2 Architecture globale350
      • 6.2.3 Fonction-coût353
      • 6.3 RetinaNet353
      • 6.3.1 Perte focale353
      • 6.3.2 Architecture de RetinaNet356
      • 7. Réseaux en une seule passe n'utilisant pas d'ancres359
      • 7.1 Problèmes des ancres359
      • 7.2 CenterNet359
      • 7.2.1 Représentation de la vérité terrain360
      • 7.2.2 Architecture362
      • 7.2.3 Fonctions de perte364
      • 7.2.4 Performance du réseau365
      • 7.3 FCOS365
      • 8. Comparaison des réseaux de détection367
      • 8.1 Récapitulatif des réseaux rencontrés368
      • 8.2 Comparaison des performances369
      • 8.3 Comment choisir un réseau de détection ?370
      • 9. API de détection d'objet de TensorFlow372
      • 10. Conclusion373
      • Chapitre 10
      • Segmentation
      • 1. But du chapitre et prérequis375
      • 2. Segmentation sémantique, d'instances et panoptique376
      • 2.1 Différents types de segmentation376
      • 2.2 Apport de l'apprentissage profond pour la segmentation378
      • 2.3 Difficultés de la segmentation380
      • 3. Métriques de la segmentation381
      • 3.1 Justesse381
      • 3.2 Indice de Jaccard382
      • 3.3 Coefficient de Dice384
      • 3.4 Vrais positifs, faux positifs et faux négatifs386
      • 3.5 Précision, rappel et score Fl388
      • 3.6 Résumé des différentes métriques389
      • 4. Fonctions-coût390
      • 4.1 Erreur de classification390
      • 4.1.1 Entropie croisée390
      • 4.1.2 Perte de Dice392
      • 4.2 Erreur de détection392
      • 5. Segmentation sémantique par U-Net393
      • 5.1 Architecture393
      • 5.1.1 Contraction et expansion393
      • 5.1.2 Connexions394
      • 5.1.3 Types de couches394
      • 5.2 Suréchantillonnage395
      • 5.2.1 Suréchantillonnage par convolution transposée395
      • 5.2.2 Remplissage399
      • 5.2.3 Pas401
      • 5.2.4 Gestion de la profondeur403
      • 5.2.5 Effets d'échiquier404
      • 5.3 Dimensions et détails405
      • 5.4 Architectures dérivées de U-Net409
      • 5.5 nnU-Net410
      • 6. Segmentation d'instances410
      • 6.1 MaskR-CNN411
      • 6.1.1 Rappel de l'architecture de Faster R-CNN411
      • 6.1.2 Architecture de Mask R-CNN413
      • 6.1.3 Fonction-coût416
      • 6.1.4 Avantages et limites.416
      • 6.2 YOLACT416
      • 6.2.1 Rappel de l'architecture de YOLO416
      • 6.2.2 Principe de YOLACT418
      • 6.2.3 Séparation delà segmentation en deux opérations plus simples418
      • 6.2.4 Réseau de pyramide de caractéristiques422
      • 6.2.5 Architecture globale424
      • 6.2.6 Fonction-coût426
      • 6.2.7 Avantages et limites426
      • 7. Segmentation panoptique427
      • 7.1 Principe global427
      • 7.2 EfficientPS428
      • 7.2.1 Principe428
      • 7.2.2 Fusion des segmentations sémantique et d'instances429
      • 7.3 Défis de la segmentation panoptique430
      • 8. Choisir et trouver un modèle de segmentation431
      • 9. Exercice pratique : implémentation, entraînement et application de U-Net431
      • 10. Conclusion432
      • Chapitre 11
      • Applications spécifiques
      • 1. But du chapitre et prérequis433
      • 2. Des réseaux très polyvalents434
      • 3. Amélioration d'images436
      • 3.1 Principe de la restauration d'images436
      • 3.2 Principe général de la restauration d'images avec des réseaux de neurones convolutionnels437
      • 3.3 Fonctions-coût438
      • 3.3.1 Erreur quadratique moyenne438
      • 3.3.2 Erreur moyenne absolue439
      • 3.3.3 Indice de similarité structurale440
      • 4. Régression441
      • 4.1 Définition de la régression et exemples d'applications441
      • 4.2 Fonctionnement.441
      • 5. Utilisation d'informations hétérogènes443
      • 5.1 Applications443
      • 5.2 Concaténation directe des informations444
      • 5.3 Concaténation des caractéristiques issues des images et des autres informations445
      • 5.4 Ajout d'un canal à l'image446
      • 6. Conclusion448
      • Chapitre 12
      • Ouvrir la boîte noire
      • 1. But du chapitre et prérequis449
      • 2. Pourquoi ouvrir la boîte noire ?450
      • 3. Visualiser directement le modèle entraîné450
      • 3.1 Poids des filtres451
      • 3.2 Cartes d'activation454
      • 4. Réduire la dimension de la représentation latente de l'image455
      • 4.1 Représentation latente de l'image455
      • 4.2 Réduction de dimension par t-SNE456
      • 4.3 Visualisation des représentations latentes avec t-SNE458
      • 5. Visualiser les pixels importants460
      • 5.1 Occlusion461
      • 5.2 LIME463
      • 5.3 Grad-CAM467
      • 5.4 Gradients intégrés469
      • 5.5 Autres méthodes de détermination des pixels importants473
      • 6. Visualiser les modèles de classe ou de neurone473
      • 6.1 Visualisation de modèle de classe474
      • 6.2 Visualisation de modèle-de neurone475
      • 7. Explicabilité des réseaux de segmentation et de détection478
      • 7.1 Prévalence des méthodes d'explicabilité pour la classification.478
      • 7.2 Visualisation du fonctionnement du réseau encodeur479
      • 7.3 Visualisation des pixels importants480
      • 7.3.1 Visualisation des pixels importants pour la segmentation480
      • 7.3.2 Explicabilité des réseaux de détection480
      • 8. Bibliothèques et paquets pour l'explicabilité481
      • 9. Exemple d'utilisation de la bibliothèque tf_explain482
      • 10. Conclusion483
      • Chapitre 13
      • Maintenance après déploiement du modèle
      • 1. But du chapitre et prérequis485
      • 2. Dérive du modèle486
      • 3. Causes de la baisse de performance486
      • 3.1 Modification des images.486
      • 3.2 Modification des étiquettes487
      • 3.3 Biais488
      • 4. Détecter et quantifier la dérive488
      • 4.1 Surveillance des images489
      • 4.1.1 Inspection visuelle489
      • 4.1.2 Distance de Fréchet490
      • 4.1.3 Appliquer la distance de Fréchet en pratique496
      • 4.1.4 Entraînement d'un classifieur binaire497
      • 4.1.5 Conclusion à propos de la surveillance des images498
      • 4.2 Surveillance des prédictions498
      • 4.2.1 Surveillance de la répartition des classes prédites498
      • 4.2.2 Comparaison de la distribution des prédictions à leur distribution attendue500
      • 4.3 Surveillance de la performance501
      • 4.4 Conclusion sur la détection de la dérive globale502
      • 4.5 Surveillance spécifique du biais503
      • 5. Corriger ou compenser la dérive505
      • 5.1 Réentraînement périodique505
      • 5.2 Modèles spécifiques507
      • 6. Conclusion508
      • Chapitre 14
      • Intelligence artificielle responsable
      • 1. But du chapitre et prérequis509
      • 2. Sept principes majeurs de l'IA responsable510
      • 3. Régulation officielle pour le futur proche512
      • 3.1 AI Act512
      • 3.2 Produits interdits512
      • 3.3 Produits réglementés513
      • 3.4 Autres produits513
      • 4. Facteur humain et contrôle humain514
      • 5. Robustesse technique et sécurité515
      • 5.1 Robustesse technique515
      • 5.2 Sécurité516
      • 6. Respect de la vie privée et gouvernance des données516
      • 7. Transparence517
      • 8. Diversité, non-discrimination et équité517
      • 9. Bien-être sociétal et environnemental519
      • 10. Responsabilisation520
      • 11. Conclusion520
      • Conclusion
      • 1. Ce que vous avez appris521
      • 2. Pour aller plus loin522
      • 2.1 S'entraîner sur des cas pratiques522
      • 2.2 Élargir ses connaissances théoriques523
      • 2.3 Se tenir au courant des dernières avancées théoriques et pratiques524

  • Origine de la notice:
    • Electre
  • Disponible - 681.7 WAL

    Niveau 3 - Informatique