Dataset Bias
Explore les causes du biais dans les jeux de données en IA et apprends comment atténuer le déséquilibre. Découvre comment utiliser la plateforme Ultralytics et Ultralytics YOLO26 pour améliorer l'équité.
Le biais de jeu de données survient lorsque les informations utilisées pour entraîner des modèles de machine learning (ML) contiennent des erreurs systématiques ou des distributions biaisées, conduisant le système d'IA résultant à privilégier certains résultats par rapport à d'autres. Comme les modèles fonctionnent comme des moteurs de reconnaissance de formes, ils dépendent entièrement de leurs entrées ; si les données d'entraînement ne reflètent pas fidèlement la diversité de l'environnement réel, le modèle héritera de ces angles morts. Ce phénomène entraîne souvent une mauvaise généralisation, où une IA peut obtenir des scores élevés lors des tests, mais échouer de manière significative lorsqu'elle est déployée pour une inférence en temps réel dans des scénarios divers ou inattendus.
Link to this sectionSources courantes de biais des données#
Le biais peut infiltrer un jeu de données à plusieurs étapes du cycle de vie du développement, découlant fréquemment de décisions humaines lors de la collecte ou de l'annotation.
- Biais de sélection: Il survient lorsque les données collectées ne représentent pas de manière aléatoire la population cible. Par exemple, créer un jeu de données de reconnaissance faciale en utilisant principalement des images de célébrités peut biaiser le modèle vers un maquillage prononcé et un éclairage professionnel, le faisant échouer sur des images de webcam ordinaires.
- Erreurs d'étiquetage: La subjectivité lors de l'étiquetage des données peut introduire des préjugés humains. Si les annotateurs classent systématiquement mal des objets ambigus par manque de directives claires, le modèle traite ces erreurs comme une vérité terrain.
- Biais de représentation: Même s'ils sont sélectionnés au hasard, les groupes minoritaires peuvent être statistiquement noyés par la classe majoritaire. En détection d'objets, un jeu de données contenant 10 000 images de voitures mais seulement 100 images de vélos aboutira à un modèle biaisé en faveur de la détection de voitures.
Link to this sectionApplications et conséquences dans le monde réel#
L'impact du biais de jeu de données est significatif dans divers secteurs, en particulier là où les systèmes automatisés prennent des décisions à enjeux élevés ou interagissent avec le monde physique.
Dans l'industrie automobile, l'IA dans l'automobile repose sur des caméras pour identifier les piétons et les obstacles. Si une voiture autonome est entraînée principalement sur des données collectées dans des climats ensoleillés et secs, elle peut présenter une dégradation des performances lors d'une utilisation sous la neige ou une pluie battante. Il s'agit d'un exemple classique de distribution d'entraînement ne correspondant pas à la distribution opérationnelle, ce qui entraîne des risques de sécurité.
De même, dans l'analyse d'images médicales, les modèles de diagnostic sont souvent entraînés sur des données historiques de patients. Si un modèle conçu pour détecter des affections cutanées est entraîné sur un jeu de données dominé par des tons de peau clairs, il peut démontrer une précision nettement inférieure lors du diagnostic de patients à la peau plus foncée. Remédier à cela nécessite un effort concerté pour organiser des jeux de données diversifiés garantissant l'équité en IA pour tous les groupes démographiques.
Link to this sectionStratégies d'atténuation#
Les développeurs peuvent réduire le biais des jeux de données en employant des audits rigoureux et des stratégies d'entraînement avancées. Des techniques telles que l'augmentation de données aident à équilibrer les jeux de données en créant artificiellement des variations d'exemples sous-représentés (par exemple, retournement, rotation ou ajustement de la luminosité). De plus, la génération de données synthétiques peut combler les lacunes là où les données réelles sont rares ou difficiles à collecter.
La gestion efficace de ces jeux de données est cruciale. La Plateforme Ultralytics permet aux équipes de visualiser les distributions de classes et d'identifier les déséquilibres avant le début de l'entraînement. De plus, le respect de directives telles que le NIST AI Risk Management Framework aide les organisations à structurer leur approche pour identifier et atténuer systématiquement ces risques.
Link to this sectionBiais de jeu de données vs concepts connexes#
Il est utile de distinguer le biais de jeu de données de termes similaires pour comprendre d'où provient l'erreur :
- vs. Biais algorithmique: Le biais de jeu de données est centré sur les données ; cela implique que les « ingrédients » sont défectueux. Le biais algorithmique est centré sur le modèle ; il découle de la conception de l'algorithme lui-même ou de l'algorithme d'optimisation, qui pourrait privilégier les classes majoritaires pour maximiser les mesures globales au détriment des groupes minoritaires.
- vs. Dérive de modèle: Le biais de jeu de données est un problème statique présent au moment de l'entraînement. La dérive de modèle (ou dérive des données) survient lorsque les données du monde réel changent au fil du temps après le déploiement du modèle, nécessitant un suivi de modèle continu.
Link to this sectionExemple de code : Augmentation pour réduire le biais#
L'exemple suivant démontre comment appliquer l'augmentation de données pendant l'entraînement avec YOLO26. En augmentant les augmentations géométriques, le modèle apprend à mieux généraliser, réduisant potentiellement le biais envers des orientations ou positions d'objets spécifiques présentes dans le jeu d'entraînement.
from ultralytics import YOLO
# Load YOLO26n, a high-efficiency model ideal for edge deployment
model = YOLO("yolo26n.pt")
# Train with increased augmentation to improve generalization
# 'fliplr' (flip left-right) and 'scale' help the model see diverse variations
results = model.train(
data="coco8.yaml",
epochs=50,
fliplr=0.5, # 50% probability of horizontal flip
scale=0.5, # +/- 50% image scaling
)





