Explorez les causes du biais des ensembles de données dans l'IA et apprenez à atténuer les distorsions. Découvrez comment utiliser la Ultralytics et Ultralytics pour améliorer l'équité.
Le biais des ensembles de données se produit lorsque les informations utilisées pour entraîner les modèles d'apprentissage automatique (ML) contiennent des erreurs systématiques ou des distributions biaisées, ce qui conduit 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 données d'entrée ; 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 se traduit souvent par une mauvaise généralisation, où une IA peut obtenir des scores élevés lors des tests, mais échoue 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 .
Les biais peuvent s'infiltrer dans un ensemble de données à plusieurs étapes du cycle de vie du développement, résultant souvent de décisions humaines pendant la collecte ou l'annotation.
L'impact du biais des ensembles de données est significatif dans divers secteurs, en particulier lorsque des systèmes automatisés prennent des décisions à haut risque ou interagissent avec le monde physique.
Dans l'industrie automobile, l'IA s'appuie sur des caméras pour identifier les piétons et les obstacles. Si une voiture autonome est principalement entraînée à partir de données collectées dans des climats ensoleillés et secs, elle peut présenter une dégradation de ses performances lorsqu'elle fonctionne sous la neige ou sous une pluie battante. Il s'agit là d'un exemple classique où la distribution de l'entraînement ne correspond pas à la distribution opérationnelle, ce qui entraîne des risques pour la sécurité.
De même, dans l'analyse d'images médicales, les modèles de diagnostic sont souvent entraînés à partir de données historiques sur les patients. Si un modèle conçu pour detect des affections detect est entraîné à partir d'un ensemble de données dominé par des teints de peau clairs, il peut se révéler nettement moins précis lorsqu'il s'agit de diagnostiquer des patients à la peau plus foncée. Pour remédier à cela, il faut un effort concerté pour constituer des ensembles de données diversifiés qui garantissent l' équité de l'IA pour tous les groupes démographiques.
Les développeurs peuvent réduire les biais dans les ensembles de données en recourant à des stratégies rigoureuses d'audit et de formation avancée. Des techniques telles que l' augmentation des données permettent d'équilibrer les ensembles de données en créant artificiellement des variations d'exemples sous-représentés (par exemple, en les retournant, en les faisant pivoter ou en ajustant leur luminosité). De plus, la génération de données synthétiques peut combler les lacunes lorsque les données réelles sont rares ou difficiles à collecter.
Il est essentiel de gérer efficacement ces ensembles de données. Ultralytics permet aux équipes de visualiser la répartition des classes et d' identifier les déséquilibres avant le début de la formation. De plus, le respect de directives telles que le cadre de gestion des risques liés à l'IA du NIST aide les organisations à structurer leur approche pour identifier et atténuer ces risques de manière systématique.
Il est utile de distinguer le biais des ensembles de données des termes similaires afin de comprendre d'où provient l'erreur :
L'exemple suivant montre comment appliquer l'augmentation des données pendant l'entraînement avec YOLO26. En augmentant les augmentations géométriques, le modèle apprend à mieux généraliser, ce qui peut réduire le biais envers des orientations ou des positions spécifiques d'objets présentes dans l' ensemble 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
)