Comment gérer les ensembles de données déséquilibrés dans le domaine de la vision par ordinateur ?

Comment gérer les ensembles de données déséquilibrés dans le domaine de la vision par ordinateur ?

Qu'est-ce qu'un ensemble de données déséquilibré ?

Un ensemble de données déséquilibré désigne une situation dans laquelle il y a un nombre disproportionné de cas d'une classe par rapport à une autre. 

 

Par exemple ici, dans un ensemble de données de 2 000 images, il y a environ 20 fois plus de voitures que de bus dans l'ensemble d'entraînement. ( voir ci-dessous ) C'est ce que nous appelons un ensemble de données déséquilibré, lorsque toutes les classes ne sont pas représentées de manière égale.

 

Les chercheurs utilisent souvent des ensembles de données déséquilibrés lorsqu'ils conçoivent des expériences, car ils leur permettent de contrôler plus facilement les biais expérimentaux. Cela dit, il existe des situations où un ensemble de données déséquilibré peut poser un sérieux problème aux modèles d'apprentissage automatique. Dans de telles situations, les modèles seront enclins à un surajustement et à une faible précision. En d'autres termes, les ensembles de données déséquilibrés sont problématiques car ils peuvent conduire à des résultats biaisés et inexacts.

 

  

Pourquoi les ensembles de données déséquilibrés posent-ils problème ?

Les modèles de vision par ordinateur reposent sur une grande quantité de données pour l'apprentissage, mais pour certains types d'images, il n'y a pas assez d'exemples pour fournir une représentation robuste des données. 

 

Par exemple, si nous formons un modèle pour identifier des images de panneaux de signalisation, il existe de nombreuses images de panneaux d'arrêt, mais relativement peu d'images d'autres types de panneaux de signalisation. Disons que la répartition est de 80 % de panneaux de stop et de 20 % de panneaux de signalisation. 

 

Les modèles d'apprentissage profond sont juste des idiots très sophistiqués. 

 

Ainsi, au cours du processus d'apprentissage, le modèle déduira que s'il prédit les panneaux stop en permanence, il aura raison dans 80 % des cas. Plutôt cool, non ? En fait, ça ne l'est pas !

 

Cela signifie que le processus de formation peut conduire à une représentation inefficace des données, ce qui se traduit par des modèles très spécifiques et moins robustes. Dans notre cas, les modèles seront très précis pour le panneau d'arrêt, mais moins précis pour tous les autres panneaux de signalisation.

 

3 stratégies pour surmonter les ensembles de données déséquilibrés

Nous pouvons nous attaquer au problème de trois manières. 

 

La première stratégie est l'augmentation des données. Il s'agit de créer des exemples supplémentaires à partir de l'ensemble de données original, mais en y apportant de légères modifications, par exemple en retournant les images verticalement ou en créant des images en miroir. Cela permet d'augmenter le nombre d'images dans les classes sous-représentées et d'obtenir un ensemble de données plus équilibré.

 

Cependant, l'augmentation des données ne suffit pas toujours. C'est alors que la pondération des classes entre en jeu. Ajouter des pondérations à chaque classe peut être une stratégie utile. Je vais m'y plonger sous peu en utilisant quelques exemples :) 

 

La troisième option consiste à effectuer une classification hiérarchique. L'idée principale est de construire plusieurs ensembles de données binaires pour s'assurer que nos ensembles de données sont toujours équilibrés. L'inconvénient est que vous accumulerez des erreurs en cours de route.

 

Augmentation des données

L'augmentation des données est une technique qui peut être utilisée pour améliorer la robustesse et la précision d'un modèle d'apprentissage automatique en créant des exemples supplémentaires à partir de l'ensemble de données original. L'augmentation des données est utile dans les situations où l'ensemble de données d'origine est déséquilibré. Plusieurs techniques peuvent être utilisées pour l'augmentation des données, notamment le retournement des exemples, la création d'exemples en miroir, la rotation des exemples, la coloration des images de différentes manières et l'ajout de bruit. L'objectif de l'augmentation des données est d'accroître le nombre d'exemples pour chaque classe, ce qui peut être utile dans les situations où l'ensemble de données original comporte un nombre disproportionné de points de données pour une classe par rapport à une autre. Cela peut créer des problèmes pendant le processus de formation et rendre le modèle moins précis et plus enclin à l'ajustement excessif.

Si vous voulez expérimenter l'augmentation des données, voici une démo sympa pour les développeurs d'Albumentations : https://demo.albumentations.ai/.

 

Pondération des classes

La pondération des classes consiste à attribuer un poids plus élevé aux exemples d'une classe particulière. Elle peut contribuer à équilibrer les données et à réduire le biais associé à un ensemble de données déséquilibré. La pondération des classes peut être utile dans les situations où il y a beaucoup moins d'exemples d'une classe par rapport à une autre. Cela peut être problématique pour les modèles d'apprentissage automatique qui s'appuient fortement sur des exemples pour la formation. La pondération des classes est utile dans les situations où un modèle est utilisé pour identifier une classe particulière, comme le type de fleur dans une image. Il peut y avoir beaucoup moins d'images d'un type spécifique de fleur - comme les orchidées - par rapport aux autres types de fleurs. Lors de la formation d'un modèle pour ce type de classification, il peut être utile d'augmenter le poids des exemples associés à la classe des orchidées. Cela peut aider à équilibrer les données et à réduire le biais associé à un ensemble de données déséquilibré.

Classification hiérarchique

La classification hiérarchique est une technique d'apprentissage automatique qui utilise une hiérarchie de catégories pour classer les données. Elle est particulièrement utile pour les applications de vision par ordinateur, ainsi que pour la classification d'ensembles de données déséquilibrés. Ce type de classification implique la formation de plusieurs modèles, chacun à un niveau différent de la hiérarchie. Par exemple, si vous avez un ensemble de données sur les animaux, le niveau le plus élevé de la hiérarchie pourrait être "animal", suivi de "mammifère", puis de "chien". Chaque modèle est entraîné sur les données de ce niveau, et les résultats sont ensuite combinés pour former la prédiction globale. La classification hiérarchique peut être utilisée pour classer avec précision des données, même lorsqu'il existe une grande variation ou lorsque l'ensemble de données est déséquilibré. Il s'agit d'un outil puissant qui peut être utilisé pour améliorer la précision des modèles d'apprentissage automatique.

 

Conclusion

La vision par ordinateur peut être difficile à mettre en œuvre, surtout lorsqu'il s'agit d'ensembles de données déséquilibrés. Un ensemble de données déséquilibré est un ensemble dans lequel le nombre de points de données pour une classe est nettement inférieur au nombre de points de données pour les autres classes. Cela peut entraîner des problèmes de précision, de surajustement et de biais. Heureusement, il existe certaines stratégies qui peuvent aider à surmonter ces problèmes. Il est essentiel de comprendre comment utiliser correctement des techniques telles que l'augmentation des données, la pondération des classes et le suréchantillonnage. Un modèle de vision par ordinateur formé sur des ensembles de données équilibrés vous permettra d'améliorer la précision et de réduire les biais.

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

Demander un essai gratuit

Recommandé pour vous :