Découvrez comment la validation croisée améliore la généralisation des modèles et empêche le surapprentissage. Découvrez comment mettre en œuvre l'évaluation K-Fold avec Ultralytics pour un ML robuste.
La validation croisée est une procédure de rééchantillonnage statistique robuste utilisée pour évaluer les performances des modèles d'apprentissage automatique (ML) sur un échantillon de données limité . Contrairement à une méthode standard de mise en réserve, qui divise les données en un seul ensemble d'apprentissage et de test, la validation croisée consiste à partitionner l'ensemble de données en plusieurs sous-ensembles afin de garantir que chaque point de données est utilisé à la fois pour l'apprentissage et la validation. Cette technique est essentielle pour évaluer comment les résultats d'une analyse statistique se généraliseront à un ensemble de données indépendant, ce qui permet de detect le surajustement lorsqu'un modèle mémorise des exemples d'entraînement plutôt que d'apprendre des modèles généralisables.
La variante la plus couramment utilisée de cette technique est la validation croisée K-Fold. Dans ce processus, l' ensemble des données est divisé de manière aléatoire en k groupes de taille égale, ou « plis ». Le processus d'apprentissage est ensuite répété k fois. À chaque itération, un seul pli sert de données de validation pour tester le modèle, tandis que les k-1 plis restants servent de données d'apprentissage.
La mesure de performance finale est généralement calculée en faisant la moyenne des scores (tels que la précision, la précision ou la précision moyenne moyenne (mAP)) obtenus à partir de chaque boucle. Cette approche réduit considérablement la variance associée à un seul essai d'une division train-test, fournissant une estimation plus fiable de l' erreur de généralisation. Elle garantit que l'évaluation n'est pas biaisée par une sélection arbitraire des données de test.
La validation croisée est particulièrement utile lorsque l'on travaille avec des ensembles de données plus petits ou lorsque l'on effectue un réglage rigoureux des hyperparamètres. Alors que les cadres d'apprentissage profond modernes tels que PyTorch facilitent la boucle d'apprentissage , la gestion des plis nécessite une préparation minutieuse des données.
L'exemple suivant montre comment parcourir des fichiers de configuration YAML pré-générés pour une expérience de validation croisée à 5 volets utilisant le modèle YOLO26. Cela suppose que vous ayez déjà divisé votre ensemble de données en cinq fichiers de configuration distincts.
from ultralytics import YOLO
# List of dataset configuration files representing 5 folds
fold_yamls = [f"dataset_fold_{i}.yaml" for i in range(5)]
for i, yaml_file in enumerate(fold_yamls):
# Load a fresh YOLO26 Nano model for each fold
model = YOLO("yolo26n.pt")
# Train the model, saving results to a unique project directory
results = model.train(data=yaml_file, epochs=20, project="cv_experiment", name=f"fold_{i}")
Pour en savoir plus sur l'automatisation de la génération de fractionnement, consultez le guide sur la validation croisée K-Fold.
La validation croisée est indispensable dans les secteurs où les données sont rares, coûteuses à collecter ou lorsque la fiabilité est essentielle à la sécurité .
L'intégration de la validation croisée dans le cycle de vie du développement de l'IA fournit des informations cruciales sur le compromis biais-variance.
Il est important de distinguer la validation croisée d'autres termes d'évaluation :
La gestion des artefacts, des métriques et des modèles provenant de plusieurs plis peut s'avérer complexe. Ultralytics simplifie cette tâche en proposant un suivi centralisé des expériences , ce qui permet aux équipes de comparer les performances entre différents plis et de visualiser facilement les informations issues de l'évaluation des modèles.