Éviter l'overfitting & l'underfitting : Guide de débogage de l'IA

dans ,

sur le site

De nombreuses personnes sont enthousiasmées par l'apprentissage automatique, mais tout le monde ne comprend pas les défis complexes qui empêchent l'utilisation de l'apprentissage automatique (ML) dans la pratique. Même si les algorithmes d'apprentissage automatique sont parfaitement adaptés à certaines tâches, ils peuvent néanmoins présenter des erreurs et devenir un problème majeur. Les sources d'erreurs sont par exemple l'overfitting ou l'underfitting sur l'ensemble de données utilisé ou encore une fonction de perte qui ne diminue pas.

La clé du succès pour Apprentissage automatique est donc de trouver où ces erreurs sont potentiellement présentes dans les modèles que nous utilisons - et de les corriger avant même qu'elles ne posent problème.

Qu'est-ce que l'overfitting ?

L'overfitting décrit le phénomène par lequel un modèle d'apprentissage automatique apprend les données d'apprentissage avec une précision excessive, y compris le bruit et les détails spécifiques qu'elles contiennent. Il en résulte une performance altérée sur des données nouvelles et inconnues. Un modèle suradapté donne certes d'excellents résultats sur les données d'apprentissage, car il les a quasiment apprises par cœur, mais il échoue à traiter de nouvelles informations, car il ne peut pas généraliser efficacement les modèles généraux.

Quand l'overfitting se produit-il ?

L'overfitting se produit lorsqu'un modèle d'apprentissage automatique est entraîné sur des données d'entraînement à un point tel qu'il apprend non seulement les modèles généraux, mais aussi le bruit non pertinent et les exceptions spécifiques de ces données. Cela se produit souvent lorsque la durée d'entraînement est trop longue, lorsque la complexité du modèle est excessive par rapport à la quantité de données ou lorsque les données d'entraînement ne sont pas représentatives des cas d'application réels.

Cette description rappelle un peu la préparation à un examen. Cependant, la préparation à l'examen consiste uniquement à apprendre par cœur des questions d'examen antérieures - sans pour autant développer une compréhension plus profonde de la matière.

Pourquoi l'overfitting est-il problématique ?

Le surajustement limite l'applicabilité d'un modèle d'apprentissage automatique, car il perd sa capacité à réagir correctement à de nouvelles données. Un modèle suradapté, trop fixé sur les données d'entraînement, échoue souvent dans les tâches réelles - parce qu'il ne peut pas reconnaître les modèles généraux. Ce manque de flexibilité conduit à des prédictions peu fiables en dehors de l'environnement d'entraînement, ce qui limite considérablement l'utilité du modèle en situation réelle.

Overfitting vs. Underfitting (surdimensionnement)

Le tableau suivant offre une comparaison claire entre l'overfitting et l'underfitting. Il résume les principales caractéristiques, causes et conséquences de ces deux défis dans le domaine de l'apprentissage machine :

CaractéristiqueOverfittingUnderfitting
DéfinitionAdaptation trop précise aux données d'entraînement, y compris le bruit et les exceptions.Adaptation insuffisante à la structure des données de formation.
CauseModèle trop complexe, durée d'entraînement trop longue.Modèle trop simple, formation insuffisante.
ProblèmePerd la capacité de généralisation, prédictions peu fiables.Mauvaise performance sur les données d'entraînement et les nouvelles données.
ReconnaissanceHaute précision sur les données d'entraînement, mais mauvaise performance sur les nouvelles données.Mauvaise performance générale.
Comportement sur les données de formationHaute performanceMauvaise performance
Comportement sur les nouvelles donnéesMauvaise performanceMauvaise performance

Débogage de modèles d'IA

Si nous ne corrigeons pas les modèles qui ne fonctionnent pas bien ou qui ne sont pas fiables, cela peut nuire gravement à l'efficacité de l'apprentissage automatique dans une entreprise à long terme. De même, si nous ignorons des problèmes tels que l'overfitting ou l'underfitting dans les modèles qui ne fonctionnent pas bien ou qui sont imprévisibles, cela peut réduire considérablement la capacité d'une entreprise à utiliser efficacement le ML à long terme.

Cela montre à quel point il est important de déboguer correctement les modèles.

Mais qu'est-ce que le débogage de modèles d'IA exactement et en quoi se distingue-t-il du débogage de code ?

Débogage du modèle d'IA vs. débogage du code

Le débogage des modèles d'IA consiste à identifier et à corriger les erreurs ou les incohérences dans les modèles d'apprentissage automatique. Il nécessite un examen approfondi de la qualité d'un ensemble de données, de l'ingénierie des fonctionnalités, de l'architecture du modèle ainsi que des processus et des données d'apprentissage afin d'améliorer les performances globales.

Contrairement au débogage de code traditionnel, qui se concentre sur la recherche et la correction d'erreurs dans le code logiciel, le débogage de modèles d'IA s'intéresse aux interactions et aux modèles de comportement complexes des algorithmes formés sur des données. Dans le débogage de code, les erreurs sont souvent uniques et peuvent être directement attribuées à une ligne ou un bloc de code.

Cependant, le débogage des modèles d'IA implique de comprendre comment les entrées de données et les décisions algorithmiques interagissent pour produire des résultats, ce qui peut compliquer le suivi et le diagnostic. En outre, le débogage des modèles d'IA nécessite souvent des connaissances spécifiques au domaine et une compréhension approfondie des données et des algorithmes sous-jacents. Des facteurs tels que la qualité des données, l'ingénierie des fonctionnalités, l'architecture du modèle, les processus d'entraînement et les ensembles de données sont examinés afin d'identifier les sources d'erreur et d'améliorer les performances du modèle.

Débogage du code

  • Trouve et corrige les erreurs dans le code logiciel.
  • Les erreurs sont généralement uniques et peuvent être retracées jusqu'à des lignes spécifiques.
  • Utilise des IDE et des outils de débogage tels que les points d'arrêt et la vérification des variables.

Débogage de modèles d'IA

  • Identifie et corrige les erreurs dans les modèles d'apprentissage automatique.
  • S'occupe des interactions complexes entre les données et les algorithmes.
  • Nécessite une compréhension de la qualité des ensembles de données, de l'architecture des modèles et des processus de formation.
  • Utilise des outils tels que la visualisation des données et l'analyse des métriques de performance.
Débogage de modèle AI vs. débogage de code Overfitting Underfitting

Débogage de l'apprentissage automatique - "how to" (comment)

Comment déboguer un modèle d'apprentissage automatique ?

Recherchez les erreurs de calcul

Commencez toujours par un petit échantillon de votre jeu de données. Il s'agit d'une méthode de débogage inestimable, comme si vous partiez en voyage avec un prototype réduit de votre projet. Cette approche présente plusieurs avantages, car elle vous permet de tester chaque composant de votre Pipeline pour l'apprentissage automatique examiner attentivement les erreurs et les incohérences potentielles.

Détection des erreurs dans l'implémentation du modèle
En vous entraînant avec un petit ensemble de données, vous pouvez rapidement identifier les erreurs d'implémentation qui se traduisent par un comportement irrégulier ou des prédictions erronées. Qu'il s'agisse d'une erreur de syntaxe dans votre code ou d'une erreur logique dans votre algorithme, si vous commencez petit, vous pouvez rapidement identifier ces problèmes et prévenir la menace d'une sous-adaptation ou d'une suradaptation.

Erreurs possibles lors de la mise en œuvre du modèle

  • dimensions entrées-sorties non concordantes
  • configurations de couches incorrectes
  • couches manquantes

etc.

Valider le prétraitement et la création de data loaders
Le prétraitement et la création de chargeurs de données sont des étapes cruciales dans le pipeline du Machine Learning, qui constituent la base de l'entraînement du modèle. L'entraînement sur un ensemble de données réduit vous permet de vérifier précisément ces étapes et de vous assurer que les pipelines de transformation des données fonctionnent comme prévu et que les chargeurs de données fournissent des paquets de données au format attendu.

Evaluer le calcul des pertes et des métriques
Le calcul des métriques de perte et d'évaluation constitue la base de l'entraînement du modèle, guide le processus d'optimisation et évalue la performance du modèle. En vous entraînant sur un petit échantillon de données d'entraînement, vous pouvez vérifier l'exactitude de votre implémentation de la fonction de perte et des calculs de métriques et vous assurer qu'ils reflètent fidèlement les performances du modèle pour la tâche en question.

Affinement itératif
Grâce aux enseignements tirés des données d'entraînement sur un petit échantillon, vous pouvez affiner et déboguer votre pipeline d'apprentissage automatique de manière itérative. Chaque itération vous rapproche d'un modèle robuste et fiable, car vous pouvez découvrir et corriger des pièges potentiels qui seraient peut-être passés inaperçus autrement.

Essentiellement, commencer par un petit échantillon d'entraînement sert de pierre de touche pour tester la robustesse et l'intégrité de votre pipeline pour le ML et fournit une approche pragmatique pour le débogage et le raffinement. Au fur et à mesure que vous progressez dans les subtilités du développement de modèles, n'oubliez pas que des tests et des validations approfondis à petite échelle ouvrent la voie à la réussite à plus grande échelle.

Outils de suivi des expériences

Les outils de suivi des expériences sont essentiels pour enregistrer votre processus de développement de modèles. Ces outils vous aident à suivre les hyperparamètres, les métriques et d'autres informations pertinentes pour chaque expérience. Grâce à ces outils, vous pouvez facilement comparer différents modèles, suivre les effets des modifications et identifier les configurations les plus performantes. Voici quelques outils populaires pour le suivi des expériences :

TensorBoard
TensorBoard est une boîte à outils de visualisation incluse dans TensorFlow qui vous permet de suivre et de visualiser différents aspects de vos expériences de machine learning, y compris les graphes de modèles, les métriques d'entraînement et les encapsulations.

MLflow
MLflow est une plateforme open source pour la gestion de l'ensemble du cycle de vie de l'apprentissage automatique. Elle fournit des composants pour le suivi des expériences, le conditionnement du code en exécutions reproductibles et le partage et la mise à disposition de modèles.

L'utilisation d'outils de suivi des expériences vous permet d'assurer la reproductibilité, de suivre les performances du modèle au fil du temps et d'optimiser la collaboration au sein de votre équipe. Ces outils jouent un rôle important dans le débogage des modèles d'apprentissage automatique, en vous donnant un aperçu du comportement de différentes configurations et en vous aidant à identifier les causes d'erreurs telles que le surajustement et le sous-ajustement ou un comportement inattendu.

Suivi d'expérience Surdétermination AI Débogage

Vérification de la capacité d'apprentissage

Ici aussi, il est recommandé d'utiliser un petit échantillon de votre ensemble de formation. Assurez-vous que votre modèle peut sur-remplir ce petit échantillon afin de confirmer sa capacité à capturer des modèles à partir des données.

Convergence des pertes de formation
Surveillez la perte d'apprentissage et visez des valeurs proches de zéro pour le petit ensemble de données, ce qui indique que le modèle est capable d'assimiler des modèles à partir des données.

Observation de la dynamique de la formation
Sur le modèle, faites attention aux fluctuations rapides des pertes sur les époques, qui indiquent l'adaptation du modèle aux plus petits détails de données.

Si le modèle ne parvient pas à surfaire, vous devez augmenter la complexité ou explorer des architectures alternatives. Vérifier la capacité de surajustement permet de s'assurer que votre modèle apprend efficacement des modèles et pose ainsi les bases d'un apprentissage automatique robuste.

Éviter la suradaptation

Il est vrai que, sur la base de 3, vous devriez vous assurer que votre modèle est réellement capable de capturer des modèles à partir des données et de surajuster un petit échantillon, mais : le surajustement de l'ensemble de l'entraînement et l'incapacité à bien fonctionner dans des scénarios réels est une erreur de modèle d'IA.

Stratégies pour atténuer l'overfitting

La suradaptation est une erreur fréquente dans l'apprentissage automatique, où un modèle apprend à mémoriser les données d'apprentissage au lieu de bien les généraliser à des données non vues. Cela entraîne une faible perte d'apprentissage et une forte perte de test. Voici quelques stratégies pour atténuer l'overfitting :

Validation croisée
Divisez votre ensemble de données en ensembles d'apprentissage et de validation. Les techniques de validation croisée, telles que la k-validation croisée, peuvent fournir une meilleure estimation de la performance du modèle pour les données non vues.

Régularisation
Les techniques de régularisation telles que la régularisation L1 et L2 pénalisent les grandes valeurs de paramètres dans le modèle et empêchent ainsi l'overfitting.

Rejeter
L'abandon est une technique fréquemment utilisée dans les réseaux neuronaux, qui consiste à ignorer des neurones choisis au hasard pendant la formation. De cette manière, la coadaptation des neurones est empêchée et le réseau est encouragé à apprendre des caractéristiques plus robustes.

Abandon précoce
Pendant la formation, surveillez les performances de votre modèle sur un kit de validation. Interrompez la formation si les performances se dégradent, ce qui indique un surajustement du modèle.

Simplification du modèle
Il est parfois plus facile de généraliser un modèle simple à des données non vues. Envisagez de réduire la complexité de votre modèle en diminuant le nombre de paramètres ou en utilisant une architecture plus simple.

Extension des données
Augmentez la diversité de vos données d'entraînement en appliquant des transformations telles que la rotation, la mise en miroir ou la mise à l'échelle. Cela peut contribuer à exposer le modèle à un plus large éventail de variations dans les données.

Méthodes d'ensemble
Combiner plusieurs modèles pour faire des prédictions. Les méthodes d'ensemble telles que le bagging et le boosting peuvent réduire le surajustement en faisant la moyenne des prédictions de plusieurs modèles.

En mettant en œuvre ces techniques, vous vous assurez que vos modèles d'IA peuvent être bien généralisés à de nouvelles données non vues, ce qui permet d'obtenir des prédictions plus fiables et plus robustes.

Interprétez et expliquez votre modèle

Votre modèle d'apprentissage automatique fonctionne comme une boîte noire énigmatique et vous rend probablement curieux de connaître les raisons de ses décisions. Comprendre les raisons de ces décisions peut offrir un aperçu du problème, de l'ensemble de données et des points d'erreur potentiels. L'interprétabilité éclaire la nature énigmatique de nos modèles d'apprentissage automatique en révélant la logique derrière leurs décisions et en fournissant un contexte précieux. Voici quelques outils d'explication populaires utilisés dans l'interprétation et l'explication des modèles d'IA :

SHAP (SHapley Additive exPlanations)

Fonctionnement
SHAP est une méthode basée sur la théorie des jeux coopérative qui attribue à chaque caractéristique une valeur d'importance pour une prédiction donnée. Elle fournit des explications pour des prédictions individuelles en attribuant le résultat de la prédiction à différentes caractéristiques.

Utilisation
Les valeurs SHAP peuvent être visualisées à l'aide de diagrammes de synthèse, de diagrammes de force ou de diagrammes de dépendance, et permettent de comprendre comment chaque caractéristique contribue aux prédictions du modèle.

Débogage SHAP Overfitting

LIME (Local Interpretable Model-agnostic Explanations)

Fonctionnement
LIME produit des explications localement fidèles pour des prédictions individuelles en approximant des modèles complexes par des modèles de remplacement interprétables autour de la prédiction d'intérêt. L'accent est mis sur la compréhension du comportement du modèle pour certaines instances.

Utilisation
LIME produit des explications sous forme de pondérations de caractéristiques ou d'explications textuelles qui permettent à l'utilisateur de comprendre pourquoi une prédiction donnée a été faite.

Débogage LIME Overfitting
Source : GitHub

Dans cette image, la méthode LIME explique la prédiction de "chat". En vert, les zones qui ont le plus contribué à cette prédiction, en rouge celles qui y ont le moins contribué.

Conclusion

Un débogage efficace des modèles d'IA est essentiel pour leur fiabilité et leurs performances. Contrairement au débogage du code, ce processus consiste à identifier et à corriger les interactions complexes entre les données et les algorithmes. Commencer par un petit ensemble de données permet une inspection approfondie, utile pour la détection des erreurs, la validation avant traitement et l'évaluation des performances.

Les outils de suivi des expériences permettent de conserver des enregistrements et de comparer les configurations. Des stratégies telles que la validation croisée et la régularisation réduisent l'overfitting, garantissent des performances robustes et protègent contre l'underfitting. L'interprétation et l'explication des modèles augmentent la confiance en donnant un aperçu. Globalement, le débogage systématique, le suivi des expériences et les stratégies d'atténuation des dommages sont essentiels pour garantir la fiabilité des performances des modèles d'IA.

Vous avez des questions sur le débogage de l'IA ou vous souhaitez partager des suggestions sur le guide ? Nous nous réjouissons de l'échange professionnel :








    AI debugging data overfitting underfitting performanceAI debugging data overfitting underfitting performance
    lets work together
    fr_FRFR