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...
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 support 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.
Révolution de modèles d'apprentissage profond en traitement d'images
Structure du livre
Langue utilisée pour les termes techniques
Intelligence artificielle et apprentissage profond
Objectifs du chapitre
Définitions de l'intelligence artificielle, apprentissage automatique et apprentissage profond
1. Intelligence artificielle
2. Apprentissage automatique
3. Apprentissage profond
Fonctionnement général d'un modèle d'apprentissage
1. Processus d’apprentissage et ingrédients
2. Processus général de résolutiond’un problème en apprentissage profond
3. Types de problèmes en traitement d’images
Bref historique de l’intelligence artificielle et de l'apprentissage profond
1. Naissance de l’intelligence artificielle
2. Apprentissage automatique
3. Grandes ruptures de 2011
Promesses, limites et risques
1. Apports de l’intelligence artificielle pour le traitement d’images
2. Limites et risques de l’intelligence artificielle
a. Vision idéalisée des prouesses possibles
b. Bonnes pratiques souvent peu connues et appliquées
c. Généralisabilité limitée
d. Performances limitées par les donnéesd’entraînement
3. Questions éthiques
4. Impact carbone et consommation d’eau
Conclusion
Outils indispensables à la pratique
Objectifs de ce chapitre
Ordinateurs et cartes graphiques
1. GPU et CPU
2. Taille de la mémoire vive
3. Investir dans un ordinateur performant ou réalisertous les calculs sur des plateformes déportées ?
Jeux de données ouverts
1. Fondamentaux d’un jeu de données d’entraînement
2. Avantages d’utiliser un jeu de données ouvert
3. Ensembles de référence
a. Iris
b. MNIST
c. CIFAR-10
d. Cats vs dogs
e. ImageNet
f. COCO
4. Où trouver d’autres ensembles de données ?
Langages, librairies et frameworks
1. Python
2. Librairies spécifiques
3. Frameworks pour l’apprentissage profond
4. TensorFlow, Keras et TensorBoard
a. Keras
b. TensorBoard
5. Jupyter notebook et Google Colab
a. Jupyter notebook
b. Google Colab
Comment utiliser les exemples de ce livre ?
1. Ouvrir les exemples de ce livre dans Google Colab
2. Ouvrir les exemples de ce livre localement
a. Récupérer le code
b. S’assurer que Python est installé, l’installerle cas échéant
c. Créer un environnement virtuel
d. Activer l’environnement virtuel
e. Installer Jupyter Notebook
f. Installer TensorFlow
g. Ouvrir et exécuter un notebook
Conclusion
Classifieurs linéaires
Objectifs du chapitre
Vocabulaire et notations
1. Étiquettes
2. Caractéristiques
3. Exemples
4. Modèle
Modèle paramétrique du classifieur linéaire
1. Définition du modèle
2. Interprétation d’un classifieurlinéaire comme une mise en correspondance avec un motif
3. Interprétation d’un classifieurlinéaire comme un ensemble de plans de séparation
Étapes de l’entraînement
Séparation des données
1. Principe
2. Proportions
3. Validation croisée
4. Types de séparation
a. Séparation aléatoire
b. Séparation stratifiée
c. Séparation groupée
5. Mise en œuvre de la séparation desdonnées avec la bibliothèque scikit-learn
a. Validation croisée
b. Séparation aléatoire
c. Séparation stratifiée
d. Séparation groupée
Optimisation des paramètres
1. Fonction-coût
a. Erreur quadratique moyenne
b. Softmax et entropie croisée
c. Entropie croisée binaire
2. Descente de gradient
a. Définition
b. Descente de gradient stochastique et par lots
Métriques permettant d'évaluer un modèle de classification
1. Classification binaire
a. Matrice de confusion
b. Justesse
c. Sensibilité et spécificité,précision et rappel
d. Score F1
e. Courbe précision-rappel
f. Courbe ROC
2. Classification multiclasse
De l’apprentissage automatique aux réseaux de neurones
1. Sélection automatique des caractéristiques
2. Ajout de non-linéarité
Exemple pratique : entraîner un classifieur linéaire à distinguer les chats des chiens
Conclusion
Réseaux de neurones profonds
Objectifs du chapitre et prérequis
Neurone formel
1. Définition du neurone formel
2. Neurone formel comme la généralisationdes classifieurs linéaires
3. Neurone formel comme la modélisation d’unneurone biologique
Réseaux de neurones profonds
1. Fonctionnement d’un réseau de neurones profond
2. Intérêt des réseaux deneurones profonds
3. Spécifier un réseau de neuronesdans Keras
Étapes de l'apprentissage des réseaux de neurones profonds
Optimisation des poids
1. Descente de gradient
2. Calcul du gradient
3. Descente de gradient par rétropropagation
4. Inconvénients de la descente de gradient
5. Variantes de la descente de gradient
a. Descente de gradient avec inertie
b. AdaGrad
c. RMSProp
d. ADAM
6. Optimiser les poids dans TensorFlow avec Keras
a. Compilation du modèle
b. Entraînement du modèle
c. Surveiller le processus d’entraînement avecTensorBoard
Fonctions d’activation
1. Caractéristiques des fonctions d’activation
2. Fonctions d’activation courantes
3. Spécifier une fonction d’activation dansKeras
Surapprentissage
1. Définition
2. Détection du surapprentissage par visualisationde la courbe d’apprentissage
3. Quatre pistes pour limiter le surapprentissage
a. Augmentation de la quantité de données
b. Diminution de la complexité du modèle
c. Interruption prématurée de l’entraînement
d. Extinction de neurones
Sélection des hyperparamètres
1. Différents types d’hyperparamètres
2. Ordre et stratégie de sélectiondes hyperparamètres
3. Sélection du taux d’apprentissage
a. Diagnostic du taux d’apprentissage d’aprèsla courbe d’apprentissage
b. Stratégie de sélection du taux d’apprentissage
c. Décroissance du taux d’apprentissage
4. Sélection des hyperparamètres enpratique
5. Sélection automatique des hyperparamètres
De la création à l'entraînement d'un réseau de neurones profond avec Keras
Conclusion
Réseaux de neurones à convolution
Objectifs du chapitre et prérequis
Motivation, historique et applications des réseaux de neurones à convolution
1. Motivation
2. Historique
a. Structure inspirée par le fonctionnementdu cortex visuel
b. Du premier réseau aux réseaux deneurones modernes
c. Réseaux modernes
Fonctionnement détaillé de chaque type de couche
1. Architecture générale d’un réseaude neurones à convolution
2. Couches de convolution
a. Fonctionnement d’un filtre de convolution
b. Signification de la convolution
c. Valeurs aux bords
d. Images couleur
e. Définition du pas d’un filtre de convolution
f. Organisation des filtres de convolution dans la couchede convolution
g. Ajouter une couche de convolution à un modèleséquentiel dans Keras
h. Couche de convolution en résumé
3. Couche d’activation
a. Principe
b. Ajouter une couche d’activation à un modèleséquentiel dans Keras
4. Couches d’agrégation
a. Principe
b. Ajouter une couche d’agrégation à unmodèle séquentiel dans Keras
5. Couche d’extinction de neurones
a. Principe
b. Ajouter une couche d’extinction de neurones dans Keras
6. Couche de normalisation par lots
a. Principe
b. Ajouter une couche de normalisation par lots dans Keras
7. Couche complètement connectée
a. Principe
b. Ajouter une couche complètement connectéedans Keras
8. Résumé des différents typesde couches
9. Architecture classique d’un réseaude neurones
10. Interprétation d’un réseau convolutionnel
Étapes de l'apprentissage des réseaux de neurones convolutionnels
Sélection des hyperparamètres
1. Liste des hyperparamètres et stratégiede sélection
2. Choix de la structure du réseau
a. Facteur de sous-échantillonnage et nombrede couches
b. Taille des filtres
3. Choix de la taille de lot
Prétraitement des images
1. Augmentation de données
2. Normalisation
Mise en pratique : créer et entraîner un réseau de neurones avec Tensorflow et Keras
Conclusion
Bonnes pratiques pour l'entraînement
But du chapitre et prérequis
Objectifs des bonnes pratiques
Améliorer la performance
1. Avant toute chose, définir la performancenécessaire
2. Tour d’horizon des actions à mener lorsquele réseau ne présente pas les performances attendues
3. Vérification de l’implémentation :bonnes pratiques et surapprentissage programmé
4. Gestion des classes déséquilibrées
5. Surveiller et limiter le surapprentissage
6. Utiliser des ensembles de modèles
7. Comment choisir le réseau le plus performant?
Encourager la généralisabilité
Assurer la reproductibilité de l'entraînement
Limiter le biais
1. Définition et origine des biais
2. Des jeux de données biaisés pardéfaut
3. Une amplification des biais présents dansles données d’entraînement
4. Anticiper les biais éventuels
5. Limiter les biais anticipés avant l’entraînement
6. Détecter et corriger les biais éventuelsdu modèle entraîné
7. Comment faire s’il est impossible de construire unjeu de données non biaisé ?
Impact carbone et consommation d'eau de l'apprentissage profond
1. Impact grandissant
2. Questionner l’utilité du modèleavant son développement, et à chaque étape
3. Limiter la consommation électrique
4. Sensibiliser les protagonistes à l’impactcarbone de l’apprentissage profond
Conclusion
Adapter un réseau existant
Objectifs du chapitre et prérequis
Apprentissage par transfert
1. Principe et motivation
2. Fonctionnement détaillé
3. Où trouver des modèles pré-entraînés ?
4. Comment choisir quel modèle utiliser ?
a. Deux critères de choix : la complexité etla précision
b. Sources d’informations pour la complexité etla performance sur le jeu de données original
Réseaux classiques
1. AlexNet
a. Architecture
b. Amélioration des performances d’AlexNet :augmentation de données et ensemble de modèles
2. VGG
a. Réseaux plus profonds
b. Architecture de VGG
c. Différences entre AlexNet et VGG et motivations
3. GoogLeNet
a. Présentation générale
b. Module d’inception
c. Agrégation par moyennage global
d. Classifieurs auxiliaires
e. Architecture globale
f. Autres versions
4. ResNet
a. Révolution de la profondeur
b. Connexions résiduelles
c. Architecture de ResNet
d. InceptionResNet
e. DenseNet
5. EfficientNet
a. Présentation générale
b. Mise à l’échelle combinée
c. Blocs résiduels inversés
d. Architecture d’EfficientNet-B0
6. Comparaison des performances
Exercice pratique : améliorer notre classifieur de chats et chiens
Conclusion
Détection
But du chapitre et prérequis
Définition de la détection et spécificités
1. Définition de la détection
2. Apport de l’apprentissage profond pour la détection
3. Spécificités de la détection
Métriques de la détection
1. Indice de Jaccard
2. Vrais et faux positifs, faux négatifs
3. Précision, rappel et score F1
4. Courbe de rappel de précision et moyennede la précision moyenne
5. Images par seconde
6. Résumé des métriques dela détection
Ingrédients généraux des réseaux de détection
1. Localisation et classification
2. Représentation des détections
a. Ancres
b. Images matricielles
3. Fonctions-coût
a. Format général
b. Fonction-coût de localisation
c. Fonction-coût de classification
Réseaux basés sur la proposition de régions
1. Premières versions
2. Faster R-CNN
a. Architecture générale
b. Réseau de base
c. Détection
d. Suppression des régions non optimales
e. Réseau de convolution basé sur lesrégions
f. Suppression des régions non optimales
g. Entraînement et fonction-coût
3. Performances et coût de calcul
Réseaux en une seule passe basés sur des ancres
1. YOLO
a. Principe général
b. Boîtes englobantes préliminaires
c. Couches de détection
d. Détection multiéchelle
e. Architecture complète du réseau
f. Sortie du réseau
g. Post-traitement
h. Fonction-coût
i. Limitations
j. Autres versions
k. YOLOv7
2. SSD
a. Présentation
b. Architecture globale
c. Fonction-coût
3. RetinaNet
a. Perte focale
b. Architecture de RetinaNet
Réseaux en une seule passe n'utilisant pas d'ancres
1. Problèmes des ancres
2. CenterNet
a. Représentation de la vérité terrain
b. Architecture
c. Fonctions de perte
d. Performance du réseau
3. FCOS
Comparaison des réseaux de détection
1. Récapitulatif des réseaux rencontrés
2. Comparaison des performances
3. Comment choisir un réseau de détection ?
API de détection d'objet de TensorFlow
Conclusion
Segmentation
But du chapitre et prérequis
Segmentation sémantique, d'instances et panoptique
1. Différents types de segmentation
2. Apport de l’apprentissage profond pour la segmentation
3. Difficultés de la segmentation
Métriques de la segmentation
1. Justesse
2. Indice de Jaccard
3. Coefficient de Dice
4. Vrais positifs, faux positifs et faux négatifs
5. Précision, rappel et score F1
6. Résumé des différentesmétriques
Fonctions-coût
1. Erreur de classification
a. Entropie croisée
b. Perte de Dice
2. Erreur de détection
Segmentation sémantique par U-Net
1. Architecture
a. Contraction et expansion
b. Connexions
c. Types de couches
2. Suréchantillonnage
a. Suréchantillonnage par convolution transposée
b. Remplissage
c. Pas
d. Gestion de la profondeur
e. Effets d’échiquier
3. Dimensions et détails
4. Architectures dérivées de U-Net
5. nnU-Net
Segmentation d’instances
1. Mask R-CNN
a. Rappel de l’architecture de Faster R-CNN
b. Architecture de Mask R-CNN
c. Fonction-coût
d. Avantages et limites
2. YOLACT
a. Rappel de l’architecture de YOLO
b. Principe de YOLACT
c. Séparation de la segmentation en deux opérationsplus simples
d. Réseau de pyramide de caractéristiques
e. Architecture globale
f. Fonction-coût
g. Avantages et limites
Segmentation panoptique
1. Principe global
2. EfficientPS
a. Principe
b. Fusion des segmentations sémantique et d’instances
3. Défis de la segmentation panoptique
Choisir et trouver un modèle de segmentation
Exercice pratique : implémentation, entraînement et application de U-Net
Conclusion
Applications spécifiques
But du chapitre et prérequis
Des réseaux très polyvalents
Amélioration d'images
1. Principe de la restauration d’images
2. Principe général de la restaurationd’images avec des réseaux de neurones convolutionnels
3. Fonctions-coût
a. Erreur quadratique moyenne
b. Erreur moyenne absolue
c. Indice de similarité structurale
Régression
1. Définition de la régression et exemplesd’applications
2. Fonctionnement
Utilisation d'informations hétérogènes
1. Applications
2. Concaténation directe des informations
3. Concaténation des caractéristiquesissues des images et des autres informations
4. Ajout d’un canal à l’image
Conclusion
Ouvrir la boîte noire
But du chapitre et prérequis
Pourquoi ouvrir la boîte noire ?
Visualiser directement le modèle entraîné
1. Poids des filtres
2. Cartes d’activation
Réduire la dimension de la représentation latente de l'image
1. Représentation latente de l’image
2. Réduction de dimension par t-SNE
3. Visualisation des représentations latentesavec t-SNE
Visualiser les pixels importants
1. Occlusion
2. LIME
3. Grad-CAM
4. Gradients intégrés
5. Autres méthodes de déterminationdes pixels importants
Visualiser les modèles de classe ou de neurone
1. Visualisation de modèle de classe
2. Visualisation de modèle de neurone
Explicabilité des réseaux de segmentation et de détection
1. Prévalence des méthodes d’explicabilité pourla classification
2. Visualisation du fonctionnement du réseauencodeur
3. Visualisation des pixels importants
a. Visualisation des pixels importants pour la segmentation
b. Explicabilité des réseaux de détection
Bibliothèques et paquets pour l'explicabilité
Exemple d'utilisation de la bibliothèque tf_explain
Conclusion
Maintenance après déploiement du modèle
But du chapitre et prérequis
Dérive du modèle
Causes de la baisse de performance
1. Modification des images
2. Modification des étiquettes
3. Biais
Détecter et quantifier la dérive
1. Surveillance des images
a. Inspection visuelle
b. Distance de Fréchet
c. Appliquer la distance de Fréchet en pratique
d. Entraînement d’un classifieur binaire
e. Conclusion à propos de la surveillance desimages
2. Surveillance des prédictions
a. Surveillance de la répartition des classesprédites
b. Comparaison de la distribution des prédictions à leurdistribution attendue
3. Surveillance de la performance
4. Conclusion sur la détection de la dériveglobale
5. Surveillance spécifique du biais
Corriger ou compenser la dérive
1. Réentraînement périodique
2. Modèles spécifiques
Conclusion
Intelligence artificielle responsable
But du chapitre et prérequis
Sept principes majeurs de l'IA responsable
Régulation officielle pour le futur proche
1. AI Act
2. Produits interdits
3. Produits réglementés
4. Autres produits
Facteur humain et contrôle humain
Robustesse technique et sécurité
1. Robustesse technique
2. Sécurité
Respect de la vie privée et gouvernance des données
Transparence
Diversité, non-discrimination et équité
Bien-être sociétal et environnemental
Responsabilisation
Conclusion
Conclusion
Ce que vous avez appris
Pour aller plus loin
1. S’entraîner sur des cas pratiques
2. Élargir ses connaissances théoriques
3. Se tenir au courant des dernières avancéesthéoriques et pratiques
Daphné WALLACH
Diplômée d’un doctorat en intelligence artificielle pour le traitement d’images médicales, Daphné Wallach exerce depuis plus de 10 ans dans ce domaine. Elle est ingénieure en recherche et développement dans la start-up Intradys, qui développe des outils d’intelligence artificielle pour la neuroradiologie interventionnelle. Elle met également son expertise au bénéfice de formations sur l’intelligence artificielle et sur le traitement d’images, qu’elle dispense à l’université de Rennes et en entreprise.