Apprenez à identifier, prévenir et traiter le surapprentissage dans l'apprentissage automatique. Découvrez des techniques pour améliorer la généralisation des modèles et les performances dans le monde réel.
Le surajustement se produit dans l'apprentissage automatique (ML) lorsqu'un modèle apprend les les détails spécifiques et le bruit de ses données d'apprentissage au point de nuire à ses performances sur de nouvelles données. de ses données d'apprentissage au point d'avoir un impact négatif sur ses performances avec de nouvelles données. Essentiellement, le modèle mémorise les exemples d'apprentissage plutôt que d'apprendre les modèles sous-jacents nécessaires à l'apprentissage. plutôt que d'apprendre les modèles sous-jacents nécessaires à la la généralisation. Il en résulte un système qui atteint une précision pendant le développement, mais qui ne parvient pas à fournir des prédictions fiables fiables lorsqu'il est déployé dans des scénarios réels.
Dans le contexte de l'apprentissage supervisé, l'objectif est de créer un modèle qui donne de bons résultats sur des données inconnues. est de créer un modèle qui fonctionne bien sur des données d'entrée inédites, appelées données de test. données d'essai. Le surajustement se produit généralement lorsqu'un modèle est trop complexe par rapport à la quantité de données disponibles, une situation souvent décrite comme une variance élevée. trop complexe par rapport à la quantité de données disponibles, une situation souvent décrite comme ayant une variance élevée. Un tel modèle prend en compte les fluctuations aléatoires ou le "bruit" dans l'ensemble de données comme s'il s'agissait de caractéristiques significatives. Il s'agit là d'un défi central de l'apprentissage profond (deep learning). est un défi central de l'apprentissage profond (DL), qui oblige les développeurs à trouver un équilibre entre complexité et flexibilité, ce que l'on appelle souvent le compromis biais-variance. compromis biais-variance.
L'ajustement excessif peut avoir de graves conséquences en fonction de l'application :
Les développeurs detect généralement detect surajustement en contrôlant les fonctions de perte pendant l'apprentissage. les fonctions de perte au cours de la formation. Un indicateur clair est lorsque la perte d'entraînement continue à diminuer alors que la alors que la perte des données de validation commence à augmenter. Pour lutter contre plusieurs techniques sont utilisées pour lutter contre ce phénomène :
Il est important de distinguer ce concept de l 'underfitting. Alors que l'overfitting implique un modèle trop complexe et qui "essaie trop fort" de s'adapter aux données d'apprentissage (variance élevée), le sous-ajustement se produit lorsqu'un modèle est trop simple pour capturer la tendance sous-jacente des données (biais élevé). modèle est trop simple pour capturer la tendance sous-jacente des données (biais élevé). Ces deux phénomènes entraînent une mauvaise prédictives, mais pour des raisons opposées. Pour obtenir un modèle optimal, il faut naviguer entre ces deux extrêmes.
Les bibliothèques modernes comme ultralytics simplifier la mise en œuvre des stratégies de prévention. Par exemple,
les utilisateurs peuvent facilement appliquer arrêt précoce et l'abandon lors de la
formation YOLO11 modèle.
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest SOTA performance)
model = YOLO("yolo11n.pt")
# Train with 'patience' for early stopping and 'dropout' for regularization
# This helps the model generalize better to new images
results = model.train(
data="coco8.yaml",
epochs=100,
patience=10, # Stop if validation loss doesn't improve for 10 epochs
dropout=0.1, # Randomly drop 10% of units to prevent co-adaptation
)