Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Surapprentissage

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.

Comprendre le phénomène

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.

Exemples concrets

L'ajustement excessif peut avoir de graves conséquences en fonction de l'application :

  • Véhicules autonomes : Considérons un système de vision pour véhicules autonomes formés exclusivement sur des images d'autoroutes prises par temps ensoleillé. Le modèle pourrait être surajouté à ces conditions d'éclairage spécifiques et aux textures de la route. textures de la route. Par conséquent, il risque de ne pas réussir à détecter correctement les objets lorsqu'il y a de la pluie, de l'eau ou de la poussière. détection précise des objets en cas de pluie, d'ombre ou d'environnement urbain, ce qui pose un risque pour la sécurité, d'ombres ou d'environnements urbains, ce qui constitue un risque pour la sécurité.
  • Diagnostic médical : En l 'IA dans le domaine de la santé, un modèle peut être entraîné à identifier des pathologies sur des radiographies. Si l'ensemble des données provient d'un seul hôpital, le modèle risque de s'adapter de manière excessive aux artefacts spécifiques de l'équipement d'imagerie de cet hôpital. spécifiques de l'équipement d'imagerie de cet hôpital. Lorsqu'il est appliqué à à l 'analyse d'images médicales provenant d'un d'un autre établissement, les performances du modèle pourraient chuter de manière significative parce qu'il a appris le bruit de l'équipement plutôt que les caractéristiques biologiques de la maladie. caractéristiques biologiques de la maladie.

Identifier et prévenir le surajustement

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 :

  • Augmentation des données : Il s'agit d'augmenter artificiellement la diversité de l'ensemble de formation. En en appliquant des transformations aléatoires telles que la rotation ou l'inversion, l'augmentation des données empêche le modèle de de mémoriser la disposition exacte des pixels.
  • Régularisation : Les méthodes telles que la régularisation L1/L2 ou l'ajout d'une couche d'exclusion pénalisent les modèles trop complexes. couche d'exclusion pénalisent les modèles trop complexes en en ignorant effectivement un pourcentage de neurones pendant les passes d'apprentissage, forçant le réseau neuronal à apprendre des caractéristiques redondantes et redondantes et robustes.
  • Arrêt précoce : Cette technique arrête le processus de formation dès que la métrique de validation cesse de s'améliorer, ce qui empêche le modèle d'apprendre du bruit dans les phases ultérieures de l'apprentissage. de validation cesse de s'améliorer, ce qui empêche le modèle d'apprendre du bruit dans les époques ultérieures. époques.

Surapprentissage vs. Sous-apprentissage

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.

Mise en œuvre pratique

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
)

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant