IA centrée sur les données : un guide pour améliorer les performances de la ML grâce aux données

IA centrée sur les données : un guide pour améliorer les performances de la ML grâce aux données

Les données sont le nouveau pétrole, et la façon dont nous raffinons ce pétrole est la nouvelle science !

L'IA centrée sur les données est un nouveau paradigme pour la science des données et l'apprentissage automatique.

Dans cet article, nous verrons ce qu'est l'IA centrée sur les données, comment vous pouvez mettre en œuvre une approche centrée sur les données pour la vision par ordinateur, et nous explorerons ses avantages à travers un exemple de codage de la vision par ordinateur. 

Qu'est-ce que l'IA centrée sur les données ?

L'IA centrée sur les données, terme inventé par le célèbre Andrew Ng, est l'une des dernières tendances dans le monde de l'apprentissage automatique. L'IA centrée sur les données est un vaste sujet mais, pour cet article, nous nous concentrerons sur la vision par ordinateur. 

Pour les lecteurs qui souhaiteraient en savoir plus sur l'IA centrée sur les données, nous fournirons une liste de ressources utiles à la fin de cet article.

Les systèmes d'IA fonctionnent à la fois sur le code et sur les données. "Tous ces progrès en matière d'algorithmes signifient qu'il est temps de passer plus de temps sur les données", a déclaré Andrew Ng lors de la récente conférence EmTech Digital organisée par la MIT Technology Review.

L'IA centrée sur les données est la discipline qui consiste à concevoir systématiquement les données nécessaires pour construire des systèmes d'IA performants. 

En général, les ensembles de données d'apprentissage sont traités comme quelque chose de fixe. Une fois qu'un ensemble de données d'apprentissage est formé et qu'il passe par l'ETL, il reste généralement figé et utilisé tel quel dans le cadre de plusieurs projets. Ensuite, l'accent est mis sur la formation du "meilleur" modèle possible. 

L'approche centrée sur les données remet en question ce paradigme en plaçant les données au centre de l'attention et en traitant les ensembles de données comme des citoyens de première classe dans l'apprentissage automatique. Les ensembles de données gagnent une place dans la boucle de rétroaction de l'apprentissage automatique et les méthodologies qui augmentent les performances et la généralisation d'un modèle à travers les données sont considérées comme plus importantes que le réglage fin des paramètres d'un modèle.

Le nettoyage, la conservation et l'enrichissement des données pour rendre les ensembles de données plus représentatifs de la réalité sont les principaux piliers d'une approche centrée sur les données.

IA centrée sur les données et IA centrée sur les modèles

L'IA centrée sur le modèle se concentre sur

  • Sélection du modèle : quel algorithme utiliser ?
  • Architecture du modèle : combien de couches dans un CNN, combien de têtes d'attention dans un Visual Transformer
  • Ingénierie des caractéristiques : création/sélection de caractéristiques
  • Réglage des hyperparamètres : Trouver l'ensemble optimal d'hyperparamètres pour un modèle.

L'IA centrée sur les données se concentre sur :

  • Nettoyage des ensembles de données : suppression des doublons, sélection des images les plus appropriées d'une vidéo.
  • Curation des ensembles de données : découverte des erreurs d'étiquetage, y compris les cas limites.
  • Correction des préjugés : inclusion d'un plus grand nombre d'exemples de cas sous-représentés, suppression des exemples "contraires à l'éthique".
  • Augmentation des ensembles de données de formation : utilisation de données synthétiques, imitation du scénario de déploiement (par exemple, ajout de neige sur les images).
  • Corriger les erreurs d'étiquetage.
  • Définir une approche systématique de l'annotation des données.
  • Conservation des données pour les ensembles de données de test : création de points de référence représentatifs de l'environnement de déploiement.

Défis centrés sur les données dans le domaine de la vision par ordinateur 

Les étiquettes sont imparfaites

Nous avons l'habitude de considérer les étiquettes comme l'ultime "vérité de terrain". Nos modèles doivent être capables d'apprendre ces étiquettes et de propager leurs connaissances à de nouveaux ensembles de données inédits. 

Cependant, de nombreuses études intéressantes [1, 2, 3] ont prouvé que même les ensembles de données de référence les plus populaires en matière de vision par ordinateur contiennent de nombreuses erreurs ! 

Parfois, ces erreurs sont accidentelles, tandis que d'autres fois, les experts humains ne parviennent pas à se mettre d'accord sur leur étiquetage. 

                        

Fig. 1 : Exemples d'étiquettes incorrectes dans divers ensembles de données d'images trouvées et corrigées à l'aide de cleanlab

Les choses se compliquent de plus en plus pour les applications de vision par ordinateur les plus avancées, telles que la détection d'objets et la segmentation d'images. Non seulement nous constatons des erreurs de classification, mais les annotations des boîtes englobantes et des pixels peuvent être inexactes, incohérentes ou bruyantes. La mise en place de méthodes systématiques d'annotation des données est essentielle pour garantir la qualité des ensembles de données de vision par ordinateur.

Cette combinaison d'étiquetage inexact, incomplet et imprécis diminue la qualité du signal de supervision dans les ensembles de données étiquetés. Une incertitude se forme dans l'ensemble de données, qui se propage naturellement dans les prédictions du modèle.

           

Fig.2 : Les erreurs et les imperfections dans l'ensemble de données d'apprentissage créent une incertitude qui se propage inévitablement dans le modèle et ses prédictions.

Les données du monde réel sont imparfaites

Les ensembles de données de formation sont incomplets et limités. Nos ensembles de données sont limités, mais les scénarios du monde réel ne le sont pas. Il n'y a qu'un nombre limité d'informations que l'on peut obtenir avec un seul ensemble de données de formation. 

Pour ajouter à la complexité, les changements de données et de domaines sont également des problèmes importants. Une voiture autonome est entraînée dans une ville américaine au climat chaud. L'algorithme peut très bien se comporter dans le domaine sur lequel il a été formé. Cependant, des conditions météorologiques neigeuses peuvent sérieusement dégrader ses performances, ce qui constitue une forme de changement de données. En outre, le même algorithme n'ira sans doute pas très loin dans les villes asiatiques surpeuplées aux heures de pointe.

Pourquoi ai-je besoin d'une approche centrée sur les données ?

De nos jours, il existe une vaste disponibilité de modèles d'apprentissage automatique et d'apprentissage profond pré-entraînés. Les deux principaux frameworks d'apprentissage profond - TensorFlow et PyTorch - offrent des modèles pré-entraînés à travers leurs hubs de modèles, que vous pouvez utiliser pour l'inférence en seulement quelques lignes de code. Sans parler du nombre impressionnant de modèles Transformer disponibles via Hugging Face.

En outre, un nombre croissant de chercheurs ouvrent leurs modèles sur GitHub. Un rapide coup d'œil aux articles contenant du code vous aidera à découvrir le bon dépôt pour de nombreux domaines de la vision par ordinateur, qu'il s'agisse de la détection d'objets en 3D, de la segmentation sémantique autosupervisée ou des modèles d'images génératifs.

Avec une telle disponibilité de modèles pré-entraînés, toutes les organisations n'ont pas besoin de développer des modèles de vision par ordinateur à partir de zéro. Nous devrions nous efforcer de tirer parti de ce qui a déjà été développé par la communauté, puis d' ajuster et d'affiner les modèles pour qu'ils servent les cas d'utilisation de notre entreprise. 

L'IA centrée sur les données met l'accent sur l'amélioration du carburant sur lequel fonctionnent les modèles d'apprentissage profond : les données.

Avantages de l'IA centrée sur les données 

  • Le temps consacré au développement et à la formation de nouveaux modèles est minime. Ce développement consiste souvent à réinventer la roue.
  • Chaque modèle finit par devenir obsolète. L'amélioration des données d'apprentissage est une méthode indépendante du modèle.
  • L'accumulation de la dette technique et la maintenance sont moindres lorsque l'on travaille avec des modèles facilement disponibles.
  • Les méthodologies qui améliorent la qualité des données peuvent être transférées d'un modèle à l'autre, d'un projet à l'autre et d'une organisation à l'autre.
  • Les biais du modèle, la confidentialité des données et l'éthique de l'IA ne sont généralement résolus que par l'"autoroute des données" et non en affinant le modèle lui-même.
  • La constitution et la correction d'ensembles de données de test (benchmarks) permettent une évaluation plus réaliste des performances après le déploiement.

Comment améliorer la qualité des données dans le domaine de la vision artificielle

Voici une liste non exhaustive de conseils pour améliorer la qualité des données : 

  1. Visualisez, explorez et soyez toujours vigilant quant aux erreurs commises dans vos ensembles de données de formation et de test.
  2. Explorez les outils centrés sur les données pour améliorer vos ensembles de données.
  3. Mettre en place des pipelines de données robustes.
  4. Mettre en œuvre des tests de pipeline pour détecter les erreurs lors du traitement des données.
  5. Définir des règles d'étiquetage et d'annotation strictes à respecter et réduire les incohérences.
  6. Examinez souvent vos modèles pour détecter d'éventuels biais. Cela vous aidera à mettre à jour vos ensembles de données.

Si vous pensez que vos ensembles de données d'évaluation contiennent des étiquettes bruyantes, considérez les points suivants :

  1. Corrigez vos étiquettes de test. Techniques comme l'apprentissage en confiance [2] (cleanlab ) peuvent vous aider à découvrir vos erreurs. Cela est utile parce que :
  • vous évaluez la validité de vos critères de référence ; 
  • La performance sur des ensembles de tests corrigés est plus représentative de la réalité, ce qui permet d'éviter les mauvaises surprises lors du déploiement[1].
  1. Soyez très prudent en ce qui concerne l'ajustement excessif. Il est possible d'"augmenter" les performances d'un ensemble de tests simplement en effectuant un surajustement sur le bruit d'un ensemble de tests plutôt que sur le signal réel.
  • Envisager d'utiliser des modèles plus petits. [1, 2] ont constaté que ResNet18 est plus performant que ResNet50 si un bruit de 6 % est ajouté à l'ensemble de test ImageNet. Ce résultat n'est pas surprenant si l'on considère que les modèles plus grands surajoutent davantage les caractéristiques bruitées.
  • Vos ensembles de données peuvent être beaucoup plus bruyants que ces ensembles de données de référence hautement contrôlés.

Expériences de codage 

Nous avons réalisé pour vous quelques expériences centrées sur les données. La théorie, c'est bien, mais l'apprentissage automatique est un domaine très pratique, alors mettons les mains dans le cambouis !

Pour nos expériences, nous utiliserons l'ensemble de données commun CIFAR-10. Il s'agit d'un ensemble de données très populaire avec des milliers de citations. J'ai également exploré la version de l'ensemble de tests publiée ici

Une méta-annotation avec des annotateurs du Mechanical Turk n'a trouvé que 7 erreurs. Nous pouvons donc considérer qu'il s'agit d'un ensemble de données très bien conçu. 

En ce qui concerne le modèle, j'utilise un MobileNetV2 typique pré-entraîné sur ImageNet avec une couche de classification à 10 classes par-dessus. Le modèle comporte environ 2,2 millions de paramètres entraînables. MovileNetV2 est considéré comme un modèle léger qui atteint une précision moyenne à élevée sur la plupart des ensembles de données de référence de vision par ordinateur. 

Le modèle reste statique tout au long des expériences. Les paramètres d'apprentissage restent également figés. Je m'entraîne pour un maximum de 100 époques en utilisant l'arrêt anticipé surveillé sur val_loss (patience=5), avec l'optimiseur adam, un taux d'apprentissage typique de 1e-4 avec décroissance (patience=2), et une taille de lot de 180. Une configuration assez standard dans l'ensemble.

Les seules modifications que je suis autorisé à apporter sont liées aux données, par exemple l'inclusion de données supplémentaires, la suppression de données, l'ajout de bruit dans les étiquettes, l'utilisation de techniques d'augmentation, etc. 

Performance de référence

Dans ma première expérience, j'ai défini la performance de base en utilisant seulement 50 % des données disponibles

Vous verrez ensuite les effets de l'augmentation des données d'entraînement !

L'ensemble de données de formation de base est très bien équilibré. La fréquence des classes se situe autour de 10 % pour chacune des 10 classes.

         

Fig. 3 : Chargement de l'ensemble de données de référence, en utilisant seulement 50 % des échantillons d'entraînement CIFAR-10 disponibles.

     

Fig. 4 : Distribution de la fréquence des classes de notre ensemble de données d'entraînement de base avec 20 000 échantillons. 

1. Nous entraînons le modèle sur l'ensemble de données ci-dessus. Les courbes d'entraînement ne présentent pas d'anomalies graves, à l'exception d'un écart assez important entre les ensembles d'entraînement et les ensembles de valeurs.

   

 

Fig. 5 : Courbes d'apprentissage du modèle de base.

2. Nous évaluons les performances du modèle sur l'ensemble de données de validation. Dans l'ensemble, nous obtenons une performance moyenne à élevée, avec une marge d'amélioration ouverte.

Le réseau semble surtout avoir du mal à classer correctement les classes 2 , 3, 4 et 5, à savoir les "oiseaux", les "chats", les "cerfs" et nos meilleurs amis les "chiens". 

               

Fig. 6 : Résultats du modèle de base sur l'ensemble de données de validation.

3. Le tracé de la matrice de confusion nous donne plus d'informations sur les biais potentiels et les erreurs courantes.

  1. Nous observons un biais en faveur de la classe 4, les jolis "cerfs". De nombreuses erreurs de classification visent la classe 4. Des problèmes similaires se posent pour les classes 2, 3 et 7.
  2. Il y a une grande confusion entre les classes 3 et 5, l'éternelle guerre des "chats" contre les "chiens". Un schéma similaire apparaît également pour les classes 0 ("avion") et 1 ("automobile").

    

Fig. 7 : Matrice de confusion du modèle de base sur l'ensemble de données de validation de base.

Les effets de la qualité des données - Formation avec des étiquettes bruyantes 

Nous connaissons tous la citation : "Les déchets entrent, les déchets sortent". Voyons si elle tient vraiment la route !

J'introduis délibérément du bruit dans les étiquettes d'apprentissage de notre ensemble de données de base, en modifiant de manière aléatoire l'étiquette d'un échantillon.

Gardez à l'esprit que nous ne changeons rien aux ensembles de validation et de test. Les figures ci-dessous montrent le nombre d'erreurs que nous avons introduites dans chaque classe. 

Fig. 8 : Fréquence des erreurs délibérément introduites dans l'ensemble de données de formation. La figure de gauche s'applique à un bruit d'erreur de 1 % tandis que la figure de droite s'applique à un bruit d'erreur de 10 %. L'axe des x représente l'identifiant de la classe tandis que l'axe des y représente la fréquence des erreurs.

Malgré ces changements, la distribution globale des classes reste équilibrée. Étant donné que les erreurs sont introduites de manière aléatoire avec une probabilité homogène, nous ne nous attendons pas à un déséquilibre important.

                        

Fig. 9 : Distribution des classes de l'ensemble de données d'apprentissage bruitées (10 % de bruit sur les étiquettes).

Le bruit dans les étiquettes de l'ensemble de données d'apprentissage perturbe gravement les performances d'un modèle d'apprentissage automatique. Nos expériences nous ont permis de constater que l'introduction d'un bruit d'à peine 1 % dans les étiquettes d'apprentissage dégrade les performances de validation de près de 2 %. La baisse des performances de validation varie de 2 % à 10 %. Il est intéressant de noter que la pente de la courbe n'est pas constante. 

      Fig. 10 : Performance sur l'ensemble de validation lorsque les étiquettes d'apprentissage contiennent du bruit.

Nous pouvons observer un effet similaire dans les performances de l'ensemble de tests. Les effets du bruit des étiquettes sont plus qu'évidents, les performances chutant de 1 % à près de 10 %. Remarquez à quel point la dégradation des performances des ensembles de tests est radicale lorsque le bruit des étiquettes passe de 1 % à 2 % !

Fig. 11 : Performance sur l'ensemble de test lorsque les étiquettes d'apprentissage contiennent du bruit.

Idée d'amélioration 1 - Augmentation des données 

La première amélioration centrée sur les données qui me vient à l'esprit consiste à utiliser des méthodes d'augmentation des données. En gardant le modèle et les paramètres d'entraînement figés, j'inclus quelques couches d'augmentation avant d'alimenter les entrées. Il est à noter que les ensembles d'entraînement et de validation restent exactement les mêmes.

Le réseau a désormais du mal à suradapter les données d'apprentissage. Aucune amélioration visible, cependant, malgré les coûts de formation supplémentaires dus à la surcharge d'augmentation. Pour éviter cette surcharge, vous pouvez créer des ensembles de données augmentées et les stocker sur disque au lieu de procéder à l'augmentation à la volée.

         

                            

Fig. 12 : Performance après utilisation des méthodes d'augmentation.

Dans notre cas, les augmentations que nous avons appliquées n'ont apporté aucun bénéfice. Il est possible que différents paramètres d'augmentation permettent d'obtenir des résultats plus favorables. Cependant, la recherche d'une combinaison optimale nécessite un réglage fin des paramètres d'augmentation.

L'adaptation des augmentations à votre scénario de déploiement est essentielle pour réussir !

       

Fig. 13 : Matrice de confusion pour le modèle d'augmentation. Aucun avantage n'a été obtenu.

            

Idée d'amélioration 2 - Recueillir des données plus spécifiques

Dans le modèle de base, nous avons constaté que le modèle confondait souvent les "chats" et les "chiens". J'ai pensé que le fait de fournir plus d'échantillons de ces deux classes confuses pourrait peut-être aider le réseau à tracer de meilleures limites. 

J'ai donc décidé de créer un ensemble de données artificiellement biaisé et de l'améliorer en y incluant 1000 exemples plus spécifiques de chacune des deux classes.

           

  Fig. 14 : Un ensemble de données artificiellement "biaisé" créé en échantillonnant davantage d'exemples de "chats" et de "chiens". 

Les performances du réseau n'ont pas connu d'amélioration particulière, bien au contraire. À ma grande surprise, les deux classes ont été affectées négativement !

Non seulement la confusion ne s'est pas améliorée, mais la performance globale a chuté. 

À ma grande surprise, les deux classes ont été affectées négativement !

      Fig. 15 : Performance sur l'ensemble de données "biaisé".

La confusion entre les chats et les chiens n'a pas été corrigée et la mauvaise classification ciblant les "cerfs" s'est aggravée. Le déséquilibre de l'ensemble des données a créé plus de problèmes qu'il n'en a résolu. J'appellerais cela un "retour à la case départ".

Fig. 16 : Matrice de confusion de l'ensemble de données "biaisé".

Les effets du Big Data - Se former avec plus de données

Pouvons-nous augmenter les performances de notre modèle en utilisant simplement plus de données ? Je pense que oui, mais comme pour beaucoup d'autres choses dans l'apprentissage profond, vous ne pouvez pas vraiment le savoir tant que vous ne l'avez pas testé. 

J'ai entraîné la même configuration exacte tout en augmentant progressivement la taille de mon ensemble de données d'entraînement. Les résultats sont résumés dans le graphique ci-dessous. Comme nous nous y attendions, plus nous utilisons de données, plus les performances sont élevées, atteignant environ 81 % de score F1 et 80 % de précision lorsque nous utilisons l'ensemble des données propres. 

Dans l'ensemble, nous avons obtenu une augmentation d'environ 13 % de nos mesures en doublant la taille de l'ensemble de données de formation.

Fig. 17 : Amélioration des performances grâce à l'augmentation de la taille de l'ensemble de données d'apprentissage.

Conclusions

Les expériences ci-dessus ont montré que l'augmentation de la taille d'un ensemble de données peut considérablement améliorer les performances. Cependant, la collecte de données supplémentaires est souvent coûteuse, longue, voire impossible dans certains scénarios réels !

Au lieu de cela, vous pouvez vous assurer que votre ensemble de données existant est exempt d'erreurs d'étiquetage et qu'il respecte des principes d'annotation cohérents. L'amélioration de la qualité des données peut considérablement améliorer les performances, en particulier si un ensemble de données est déjà de faible qualité. 

Dernières réflexions sur l'IA centrée sur les données

L'apprentissage automatique centré sur les données est une nouvelle voie prometteuse pour les entreprises. L'amélioration de la qualité des données, de la taille des ensembles de données et de leur pertinence peut avoir un impact considérable sur les performances de vos modèles. Les approches centrées sur les données peuvent éventuellement vous aider à lutter plus efficacement contre les biais et les dérives des données, ce qui rendra vos modèles de production plus robustes. 

"L'IA centrée sur les données ou l'IA centrée sur les modèles" est un débat courant. Toutefois, ces deux paradigmes ne s'excluent pas mutuellement et peuvent coexister. Aujourd'hui, nous avons la chance d'avoir facilement accès à certains des modèles d'apprentissage automatique les plus étonnants jamais créés. Cela nous donne plus de temps à consacrer à l'amélioration de nos pipelines de données et de nos opérations. Une fois que vous avez consacré suffisamment de temps à la conservation de vos ensembles de données, il est logique de se concentrer sur l'affinement de votre modèle d'apprentissage profond

Paraphrasant les mots d'Andrew Ng, le pionnier de l'IA centrée sur les données, 

"Au lieu de seulement de se concentrer sur le code, les entreprises devraient s'attacher à développer des pratiques d'ingénierie systématique pour améliorer les données de manière fiable, efficace et systématique".

Références

  1. Les erreurs d'étiquetage omniprésentes dans les ensembles de tests déstabilisent les repères d'apprentissage automatique
  2. Apprentissage en toute confiance : Estimation de l'incertitude dans les étiquettes de base de données 
  3. Apprendre avec des exemples sûrs : L'élagage des rangs pour une classification robuste avec des étiquettes bruitées 
  4. https://datacentricai.org/
  5. https://datacentricai.community/
  6. Une vaste collection de ressources d'IA centrées sur les données 

Commencez à gérer vos données d'IA de la bonne façon.

Demander une démonstration

Recommandé pour vous :