top of page
Writer's pictureMaxence Longle

Apprentissage automatique et étiquettes bruyantes dans les sceaux


Récemment, nous avons été contactés au sujet du suivi des phoques à partir d'images aériennes en utilisant l'apprentissage automatique. Comme le suggère le nom Whale Seeker , notre expertise actuelle porte sur les baleines et non sur les phoques. Cependant, le principe est similaire : former un modèle pour détecter des cibles relativement petites dans de grandes images aériennes marines. Nous avons déjà construit les pipelines, tout ce dont nous avions besoin était un ensemble de données pour commencer à construire un modèle préliminaire.


Heureusement pour nous, la NOAA a récemment suivi une mission centrée sur l'IA et a commencé à rendre de nombreuses données accessibles au public, afin que la communauté de l'IA puisse les récupérer et les expérimenter. Parmi ces ensembles de données figure le fantastiqueensemble de données NOAA Arctic Seals 2019 (plus d'informations ici), qui contient 40 000 images avec plus de 14 000 phoques annotés. Le processus d'annotation automatisé a été réalisé en collaboration avec le programme Microsoft AI for Earth et l'Université de Washington. Si 14 000 n'est pas un chiffre énorme selon les normes de l'apprentissage automatique, il l'est selon les normes de la biologie de la faune. C'était plus que suffisant pour commencer à expérimenter.


Ici, vous pouvez voir pourquoi nous voudrions qu'un modèle d'IA traite cette image plutôt qu'un humain ! Le phoque est la toute petite tache brunâtre à droite, à mi-hauteur. Image en pleine résolution ici. Vous ne voyez toujours pas le phoque ? Passez la souris sur l'image ci-dessus pour avoir un indice !


Nous avons appliqué notre pipeline de formation de modèles à cet ensemble de données, nous avons utilisé un ensemble de tests pour valider nos résultats et nous avons mesuré les performances du modèle. Cependant, quelque chose clochait : alors que notre modèle trouvait presque tous les sceaux de l'ensemble de test (rappel élevé), il faisait de nombreuses prédictions faussement positives (précision faible). Il n'est pas rare que les modèles aient la gâchette facile, mais nous avons poussé l'investigation plus loin, afin de comprendre le type d'erreurs commises.


Il s'est avéré que beaucoup de faux positifs étaient en fait de vraies détections! Notre modèle obtenait en fait de bons résultats, mais son score était faible car certaines des annotations originales étaient incorrectes. Nous avons donc relancé le modèle sur l'ensemble des données et demandé à notre biologiste de revoir toutes les "erreurs". Grâce au processus de ré-annotation, plus de 1500 phoques supplémentaires ont été trouvés. Bien qu'il soit surprenant d'en trouver autant, nous ne nous attendions pas à ce que les annotations soient parfaites. Nous avons nous-mêmes beaucoup d'expérience dans l'annotation de grands ensembles de données et nous savons à quel point ce processus est difficile (il suffit de regarder l'image d'exemple ci-dessus !). Et ce n'est pas seulement pour les ensembles de données complexes : Nortcutt et al. (2021) montrent que tous les ensembles de données publics comportent au moins 3,3 % d'erreurs et plus. Il existe d'ailleurs un site web entier consacré à l'affichage des erreurs dans les grands ensembles de données publiques.


"Notre modèle obtenait en fait de bons résultats, mais son score était faible car certaines des annotations originales étaient incorrectes."


Ainsi, avec les annotations corrigées en main, nous avons réévalué les performances de notre modèle et, comme prévu, nous avons mesuré une précision beaucoup plus élevée. Un grand nombre de nos "erreurs" initiales étaient maintenant des points au lieu de pénalités. Afin d'améliorer encore les performances, nous avons réentraîné notre modèle sur l'ensemble de données corrigé, mais nous n'avons pas constaté d'amélioration significative. Que se passe-t-il alors ? Si un modèle formé sur des données bruitées est aussi bon qu'un modèle formé sur un ensemble de données propres, pourrions-nous simplement faire des économies et annoter les ensembles de données rapidement, sans même essayer d'obtenir des annotations parfaites ?


Comme pour tout ce qui concerne l'IA, il s'avère que ce n'est pas une question facile avec une réponse claire et nette. Évidemment, si nous POUVAIENT obtenir des annotations parfaites sur un ensemble de données, nous les prendrions, mais si l'effort nécessaire pour annoter un ensemble de données avec une précision de 99 % est 10 fois supérieur à celui nécessaire pour l'annoter à 90 %, il devient utile de poser la question de ce qui est "suffisamment bon".


Pour aggraver les choses, tous les bruits dans les étiquettes ne sont pas créés égaux. Des études ont ajouté synthétiquement différents types de bruit à une tâche de classification afin d'observer leurs effets sur l'apprentissage. L'effet est clair : différents bruits ajoutés pendant la formation donnent des résultats très différents en termes de précision des tests.


Les différents types de bruit pendant la formation ont des impacts différents sur les performances du test.

Une autre conclusion à laquelle ils parviennent est que, comme prévu, plus vous ajoutez de bruit, plus la performance du test sera mauvaise. Cette conclusion s'aligne sur celle de Xu et al. 2019 qui tire une conclusion similaire (et dans le cas de ce dernier, dans le contexte de la détection d'objets, qui est plus proche de notre application).


Plus la qualité des données est mauvaise, plus les performances attendues du modèle diminuent. Cependant, en examinant ces résultats, ils semblent indiquer quelque chose d'intéressant : bien que ce ne soit pas idéal, tout ce qui est inférieur à 15 % de taux de bruit/manque n'affectera pas de manière significative les performances du modèle! C'est exactement ce que nous avons observé dans la première partie de cette histoire ! Les modèles semblent apprendre relativement bien, semblant noyer les erreurs dans une mer d'étiquettes correctes. Comme on peut s'y attendre de l'IA, elle a toujours la solution à chaque problème ! Même avec des annotations approximatives, nous pouvons encore obtenir de bons résultats sur l'ensemble de test.


C'est peut-être le cas, mais c'est là qu'il est important de vous rappeler POURQUOI vous construisez un modèle : le VRAI objectif n'est pas d'obtenir un score élevé sur l'ensemble de test, mais de construire quelque chose qui puisse être utilisé dans le monde réel. Le premier article mentionné explique très bien pourquoi cette distinction est importante : lorsqu'ils forment un modèle pour résoudre un problème, les chercheurs forment généralement de nombreux modèles, en modifiant les paramètres de formation (c'est ce qu'on appelle le réglage des hyperparamètres) ou la répartition des ensembles de données (c'est la validation croisée). Parmi les dizaines de modèles ainsi formés, ils sélectionnent ensuite le meilleur. Cependant, si votre ensemble de test comporte des erreurs d'annotation, vous ne sélectionnez pas le meilleur modèle ! Ce taux d'erreur de 15 % devient critique dans le monde réel, car il fera la différence entre la sélection d'un modèle qui a vraiment compris les données et un autre modèle qui a simplement appris à faire les mêmes erreurs que vos annotateurs.


"Ce taux d'erreur de 15% devient critique dans le monde réel, car il fera la différence entre la sélection d'un modèle qui a vraiment compris les données et un autre modèle qui a juste appris à faire les mêmes erreurs que vos annotateurs."


En outre, le consensus autour de l'annotation bruyante semble être que sans l'utilisation de techniques spécifiques pour atténuer le bruit dans les étiquettes, la généralisation du modèle souffre généralement. La représentation interne du modèle de ce à quoi ressemble tel ou tel objet est corrompue par les erreurs dans les données. Le modèle peut obtenir de bons résultats sur l'ensemble de test, qui est très similaire aux données d'apprentissage (et présente donc le même type d'erreurs), mais peut s'effondrer dans le contexte de nouvelles données.


Évidemment, il ne s'agit pas d'une revue de littérature exhaustive sur la question, mais j'espère que cette expédition mentale a donné matière à réflexion ! Dans le cas de notre modèle de phoques arctiques, nous espérons vraiment construire un outil qui aidera les gestionnaires de la faune à évaluer les populations, nous voulions donc vraiment avoir les bonnes annotations pour entraîner notre modèle. En outre, c'était l'occasion de redonner à la communauté de l'IA de la faune sauvage et d'aider à améliorer les ensembles de données à code source ouvert disponibles - une fois que nous aurons fini de nettoyer les données, nous les enverrons aux propriétaires des ensembles de données pour qu'ils mettent à jour les liens de téléchargement.

bottom of page