Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Le Deep Learning pour le traitement d’images
  3. Bonnes pratiques pour l'entraînement
Extrait - Le Deep Learning pour le traitement d’images Classification, détection et segmentation avec Python et TensorFlow
Extraits du livre
Le Deep Learning pour le traitement d’images Classification, détection et segmentation avec Python et TensorFlow
2 avis
Revenir à la page d'achat du livre

Bonnes pratiques pour l'entraînement

But du chapitre et prérequis

Dans le chapitre précédent, nous avons détaillé le principe et le fonctionnement pratique des réseaux neurones à convolution. Nous avons décrit la manière de le construire et de les entraîner.

En pratique, optimiser les poids d’un réseau de neurones à convolution se révèle plus délicat que pour un réseau de neurones simple.

Du fait de leur complexité, ces réseaux sont de plus difficiles à déboguer.

Enfin, comme nous l’avons mentionné dans l’introduction de ce livre, ces réseaux peuvent souffrir de biais qui ne sont pas détectables à première vue, et leur entraînement a un impact carbone non négligeable.

Certaines bonnes pratiques permettent cependant de limiter ces inconvénients.

Dans ce chapitre, nous listerons ces bonnes pratiques, qui nous permettront d’entraîner un réseau non seulement performant, mais aussi généralisable, résistant aux biais indésirables, de manière reproductible et économe en calculs.

Avant de lire ce chapitre, il est préférable d’avoir lu le chapitre Réseaux de neurones à convolution.

Objectifs des bonnes pratiques

Les bonnes pratiques pour l’entraînement d’un réseau de neurones présentées ici ont plusieurs objectifs.

Leur premier objectif est d’améliorer les performances du modèle : quelles actions mener lorsqu’un modèle ne donne pas les performances attendues ?

Le second objectif vise à encourager la généralisabilité : comment s’assurer que les résultats obtenus sur nos données de test sont représentatifs des résultats qui seraient obtenus sur d’autres données ?

Le troisième objectif est d’encourager la reproductibilité de l’entraînement du modèle, non seulement par d’autres personnes que vous, mais aussi par vous-même à une date ultérieure. Assurer la reproductibilité d’un modèle permet d’augmenter sa fiabilité, et permet également de faire gagner du temps en évitant (à vous ou à d’autres) de réinventer la roue.

Le quatrième objectif est de limiter les biais encodés dans votre modèle, afin qu’il soit capable de généraliser de manière équitable pour tous les types de données.

Enfin, le dernier objectif est de limiter l’impact carbone de l’entraînement.

Améliorer la performance

1. Avant toute chose, définir la performance nécessaire

Comme nous l’avons décrit dans le chapitre Intelligence artificielle et apprentissage profond, avant toute chose, il est indispensable de définir ce qui constituera, pour vous, un modèle performant.

Quelles valeurs de justesse, sensibilité, spécificité, etc., votre modèle devra-t-il atteindre pour le considérer comme utilisable ?

Dans la suite de cette partie, lorsque nous parlons des performances attendues du modèle, ce sont ces valeurs que nous utiliserons comme référence.

2. Tour d’horizon des actions à mener lorsque le réseau ne présente pas les performances attendues

Une des difficultés de l’entraînement des réseaux de neurones profonds est qu’ils sont délicats à déboguer.

Si un réseau ne donne pas les résultats escomptés, est-ce parce qu’il y a une erreur dans son implémentation ? Parce que l’architecture ou les hyperparamètres ne sont pas adaptés ? Parce que les données ne sont pas assez nombreuses ? Ou bien pas assez variées ?

Pour vous aider, voici une liste des vérifications à apporter à votre modèle, classées de la plus impactante à la moins impactante :

  • Vérifier l’implémentation.

  • Vérifier les données (la qualité des images, leur variété, la qualité de leurs étiquettes, et l’équilibre des classes).

  • Récupérer ou générer plus de données.

  • Si le réseau est en sous-apprentissage, augmenter la complexité du réseau, soit en ajoutant des couches tout en augmentant la taille de l’image d’entrée, soit en augmentant le nombre de filtres par couche.

  • Si le réseau est en surapprentissage, appliquer une des mesures de limitation du surapprentissage décrites au chapitre précédent et résumées ci-dessous.

  • Ajuster les autres hyperparamètres du réseau, soit, par influence décroissante :

  • le taux d’apprentissage,

  • la méthode d’optimisation et ses paramètres éventuels,

  • les autres hyperparamètres (type de fonction...

Encourager la généralisabilité

La généralisabilité d’un modèle désigne sa capacité d’un modèle à réaliser des prédictions sur des données qu’il n’a jamais rencontrées auparavant.

La généralisabilité est donc un enjeu crucial lors du développement d’un modèle d’apprentissage profond, et les bonnes pratiques permettant de l’encourager ont déjà été mentionnées dans les chapitres Classifieurs linéaires, Réseaux de neurones profonds et Réseaux de neurones à convolution. Elles sont cependant mentionnées à nouveau dans ce chapitre dans un souci d’exhaustivité. 

Pour cela, le point le plus essentiel est de vous assurer que les données sont bien séparées : ainsi, lorsque vous mesurerez la performance de votre modèle sur des données de test, vous pourrez être certain que ces données n’ont pas été utilisées pour prendre la moindre décision au sujet de votre modèle (que ce soit ses paramètres, son architecture, ou ses hyperparamètres).

Un second point important est de vous assurer que les données utilisées pour l’entraînement, la validation et les tests représentent bien...

Assurer la reproductibilité de l’entraînement

Un code d’entraînement reproductible peut être exécuté plusieurs fois avec des résultats cohérents. Outre le fait que ceci vous permet, à vous et à d’autres, de valider vos résultats et d’augmenter la fiabilité de votre modèle, cela permet également de le comparer avec d’autres modèles ou approches.

Il existe plusieurs bonnes pratiques permettant d’assurer la reproductibilité des résultats d’un réseau de neurones à convolution :

  • Fixer une graine aléatoire (random seed, ou random state en anglais) pour les processus aléatoires dès que c’est possible. Ceci assure que les processus aléatoires donnent le même résultat à chaque nouvelle exécution.

  • Sauvegarder les chemins des images utilisées à chaque pli dans un fichier texte : pour assurer pleinement la reproductibilité de la séparation des données, il est conseillé de n’utiliser les fonctions de séparation des données que pour votre première expérience, et de sauvegarder dans un fichier texte les chemins des images utilisées pour chaque pli. Pour les expériences suivantes, vous utiliserez les images répertoriées dans ce fichier texte. Ainsi, même...

Limiter le biais

1. Définition et origine des biais

Un modèle est dit biaisé lorsque sa performance est moindre pour certains groupes (basés sur le genre, l’âge, la couleur de peau, la catégorie socio-économique, etc.) que pour les autres.

Il existe deux causes possibles à ces biais. La première est la présence de corrélations fallacieuses (on parle de spurious correlations en anglais).

Dans ce cas, il arrive que des éléments dans l’image soient corrélés avec la vérité terrain, et que le modèle utilise ces éléments pour réaliser ses prédictions.

Ainsi, en radiologie, il est possible de citer comme exemple un modèle qui prédit qu’un patient a une maladie grave lorsqu’il reconnaît qu’un scanner portable a été utilisé au lieu d’un appareil à rayons X fixe (ces deux appareils donnent en sortie des images d’apparence différente : celles acquises par les scanners portables sont plus bruitées, et leur champ de vue est réduit par rapport à celles acquises par un scanner fixe). En effet, le patient doit être dans un état stable pour se rendre au service de radiologie et faire une radiographie avec un appareil à rayons X fixe. Les patients pour lesquels un scanner portable a été utilisé ont, statistiquement, plus de probabilité d’être en mauvaise santé. Cet élément n’est cependant pas causal, et un nouveau protocole selon lequel tous les patients sont imagés par un scanner portable dégradera fortement les performances du modèle.

Le modèle utilisé par le gouvernement britannique pour noter automatiquement les étudiants, déjà mentionné dans le chapitre Intelligence artificielle et apprentissage profond, et qui privilégiait les étudiants venant d’écoles privées et de quartiers favorisés, utilisait lui aussi la forte corrélation présente dans les données d’entraînement entre les notes des étudiants et le fait de venir d’une école privée ou d’un quartier...

Impact carbone et consommation d’eau de l’apprentissage profond

1. Impact grandissant

D’après l’étude " Transition(s) 2050. Choisir maintenant. Agir pour le climat " menée par l’ADEME (Agence de l’Environnement et de la Maîtrise de l’Energie), le secteur du numérique est aujourd’hui responsable de 4 % des émissions mondiales de gaz à effet de serre. La même étude prévoit que son empreinte carbone devrait tripler d’ici 2050 si aucune mesure n’est prise.

Même si son impact précis est difficilement calculable, parce que les ressources nécessaires pour entraîner les nouveaux modèles sont rarement rendues publiques, l’apprentissage profond est un des usages dont l’impact carbone augmente le plus. En effet, de plus en plus d’applications utilisent de l’intelligence artificielle, et les modèles développés sont de plus en plus sophistiqués, et requièrent de plus en plus de données et de calculs.

Ainsi, des chercheurs de Google et de l’Université de Californie à Berkeley ont estimé l’impact carbone de l’entraînement de ChatGPT, un agent conversationnel rendu public en 2023 et qui contient près de 200 milliards de paramètres. Les résultats de cette étude, disponibles dans l’article "Carbon Emissions and Large Neural Network Training" sont les suivants : l’entraînement de ChatGPT aurait conduit au rejet de 552 tonnes de CO2 dans l’atmosphère.

Quant à son usage, son impact est presque impossible à mesurer : il dépend de nombreux facteurs tels que la nature de la requête, la source d’énergie qui alimente l’ordinateur de la personne ayant formulé la requête, etc. Cependant, étant donnée l’envergure du déploiement de ce modèle, il est estimé que l’impact de son utilisation est aujourd’hui bien supérieur à celui de son entraînement.

En ce qui concerne l’eau, sa consommation liée à l’entraînement et à l’utilisation de modèles d’intelligence artificielle est elle aussi en augmentation à l’échelle mondiale....

Conclusion

Dans ce chapitre, nous avons décrit de bonnes pratiques à appliquer avant et pendant l’entraînement d’un réseau de neurones convolutionnel.

Les premières bonnes pratiques décrites ont pour but d’améliorer la performance du modèle entraîné.

Une seconde série de bonnes pratiques a pour but d’encourager la généralisabilité du modèle, c’est-à-dire sa performance sur de nouvelles données.

Une troisième série de bonnes pratiques permet d’assurer la reproductibilité du modèle (par vous-même, ou par d’autres personnes), ce qui permet d’augmenter sa fiabilité.

Une quatrième série de bonnes pratiques visent à limiter le biais du modèle. Pour cela, il est nécessaire de réaliser une analyse préliminaire du biais, avant même de constituer l’ensemble de données d’entraînement.

Enfin, les dernières bonnes pratiques décrites permettent de limiter l’impact carbone du réseau lors de son entraînement et de son utilisation.

Vous possédez maintenant tous les outils pour créer, entraîner et optimiser un réseau de neurones convolutionnel, tout en vous assurant que votre réseau est performant, généralisable, non biaisé...