La dérive des données se produit lorsque l'ensemble de données utilisé pour former votre modèle ne reproduit pas les données que vous recevez en production. C'est à ce moment-là que votre modèle commence à se comporter de manière étrange et à être moins performant.
La différence entre les données de formation et de production peut être causée par de multiples facteurs. Il peut s'agir de la création d'un jeu de données inexact, comme l'utilisation de données ouvertes non adaptées à votre cas d'utilisation. Par exemple, si vous utilisez un jeu de données sur les routes construit en Europe, il sera très différent des routes américaines. Si vous exécutez vos modèles de vision par ordinateur sur des routes américaines, cela entraînera probablement une dérive des données.
Une autre raison pourrait être l'intervalle de temps entre la collecte des données à des fins de test et de validation et leur déploiement dans des scénarios en temps réel. Il peut s'agir, par exemple, d'une erreur dans la collecte de l'ensemble de données initial ou de cas de saisonnalité qui dépendent de la saison à laquelle vous avez collecté votre ensemble de données initial (par exemple, données d'hiver/données d'été).
Comment détecter la dérive des données
Lorsque vous déployez un modèle de vision par ordinateur, il est important de surveiller régulièrement ses performances. Si les données utilisées pour former votre modèle changent ou deviennent obsolètes, son efficacité peut être affectée. C'est ce qu'on appelle la dérive des données.
Supposons que nous ayons un modèle de vision par ordinateur construit à partir d'un ensemble de données de 100 types différents de races de chiens, et que nous voulions savoir si notre précision diminue en raison de la dérive des données. Pour cela, nous devrons enregistrer toutes les nouvelles images et prédictions ingérées par notre système de boucle de rétroaction. Ensuite, nous devrons revoir, modifier ou valider ces prédictions.
Vous disposez maintenant de toutes les données nécessaires pour comparer les prédictions initiales aux prédictions modifiées et calculer vos mesures de performance pour voir si elles sont supérieures à vos mesures de performance moyennes. EASY, RIGHT ?
Eh bien... Bien que ce soit l'approche idéale, cela signifie que vous devez donner accès à un grand nombre de personnes afin de valider toutes vos prédictions en temps réel. En d'autres termes, vous aurez besoin d'une main-d'œuvre suffisante pour examiner toutes les prédictions.
Cela suggère que nous devrions envisager des méthodes heuristiques pour détecter la dérive des données de manière non supervisée. Pour ce faire, nous allons introduire une métrique qui est prête à l'emploi si vous utilisez le déploiement et monitoring de Picsellia.
Détection de la dérive de Kolmogorov-Smirnov
Le test de Kolmogorov-Smirnov (test KS) est un test statistique qui ne nécessite aucune entrée de la part de l'utilisateur et qui est utilisé pour comparer des distributions de probabilité continues ou discontinues, à une dimension. Il peut être appliqué soit à la comparaison de la distribution de l'échantillon avec la distribution de probabilité de référence (KS à un échantillon), soit à deux échantillons de distributions de populations ayant une variabilité égale, afin de déterminer s'ils sont tirés de différentes distributions de population de paramètres inconnus.
La méthode porte le nom d'Andrey Kolmogrov et Nikolai Smirnov, qui l'ont d'abord proposée pour être utilisée dans de très larges tables de chiffres aléatoires générées par des humains.
La statistique de Kolmogorov-Smirnov est utilisée pour quantifier la distance entre les fonctions de distribution des données du monde réel des échantillons et les distributions des données de l'ensemble d'apprentissage.
Vous pouvez trouver plus d'informations sur la détection de la dérive de KS dans la documentation très détaillée de la bibliothèque de seldon ici.
En gros, vous obtiendrez une liste de valeurs p pour votre ensemble d'entraînement et vos données du monde réel, et la distance entre ces deux courbes vous indiquera s'il y a une dérive.
Comment gérer la dérive des données ?
Comme nous l'avons dit précédemment, la dérive des données se produit lorsque vous entraînez vos modèles sur des images trop différentes des données du monde réel que votre modèle de vision par ordinateur voit en production. Maintenant que nous savons comment la détecter, comment la corriger le plus rapidement possible ?
Il y a de multiples éléments à prendre en compte avant de prendre une quelconque mesure. Supposons que vous ayez des annotations pour toutes ces nouvelles images détectées comme étant des dérives de données. Dans ce cas, il est bon de ne pas appuyer aveuglément sur "retrain".
La dérive des données indique que le flux d'images d'entrée a changé, mais comment et pourquoi ?
La première chose à vérifier, ce sont les données qui entrent dans votre boucle de retour. La pire chose qui puisse arriver serait d'ingérer des images vierges ou détériorées dans votre pipeline de données, à cause d'une erreur. Cependant, vérifier cela est facile si vous avez mis en place un processus efficace de visualisation de la boucle de retour.
Si la qualité de vos données est bonne, vous devez alors vérifier la performance de votre modèle pour votre cas spécifique.
Lorsque nous parlons de dérive des données et des prédictions, nous pensons généralement à la diminution des performances du modèle. Le modèle est-il toujours capable de généraliser ses prédictions ? Ou la dérive des données détériore-t-elle complètement les performances de votre modèle d'apprentissage profond ?
Il peut y avoir deux scénarios différents concernant les performances de votre modèle.
- Si le modèle fonctionne toujours comme prévu
→ Envisagez d'ajouter un pourcentage des nouvelles images ingérées par votre boucle de rétroaction à l'intérieur de votre ensemble d'entraînement et de réentraîner votre modèle. De cette façon, vous aurez une meilleure représentation de la réalité tout en conservant votre précision passée.
- Si le modèle ne fonctionne plus comme prévu
→ Cela signifie que les données que vous avez utilisées pour la formation et la validation n'étaient pas du tout représentatives de la réalité de votre cas d'utilisation. Dans cette situation, je suis désolé, mais vous devrez reconstruire un jeu de données entier avec les images nouvellement ingérées (si vous en avez suffisamment), ou simplement attendre d'avoir une quantité décente de données pour réentraîner vos modèles.
Principaux enseignements
La dérive des données et la dérive des concepts sont deux des problèmes les plus courants dans les applications de vision par ordinateur. Alors que la dérive des données fait référence aux changements dans la distribution des données d'apprentissage, la dérive des concepts fait référence aux changements dans la distribution sous-jacente du problème lui-même. Ces problèmes peuvent entraîner la défaillance des modèles d'apprentissage supervisé. Heureusement, il existe des outils pour détecter et atténuer ces problèmes.
Si vous recherchez une plateforme qui vous aide à surveiller et à automatiser votre boucle de rétroaction afin de toujours détecter les dérives des données, restez à l'écoute. Chez Picsellia, nous allons sortir une nouvelle version améliorée qui vous permettra de faire cela, dans une seule et même plateforme. Si vous souhaitez en savoir plus sur nos fonctionnalités de monitoring et de pipelines automatisés, contactez-nous !