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 surapprentissage est un concept fondamental de l'apprentissage automatique (AA) qui se produit lorsqu'un modèle apprend les détails et le bruit dans les données d'entraînement à un point tel qu'il a un impact négatif sur les performances du modèle sur de nouvelles données non vues. En substance, le modèle mémorise l'ensemble d'entraînement au lieu d'apprendre les modèles sous-jacents. Cela se traduit par un modèle qui atteint une précision élevée sur les données sur lesquelles il a été entraîné, mais qui ne parvient pas à se généraliser aux données du monde réel, ce qui le rend peu fiable pour les applications pratiques. La réalisation d'une bonne généralisation est un objectif primordial dans le développement de l'IA.
Comment identifier le surapprentissage
Le surapprentissage est généralement identifié en surveillant les performances du modèle à la fois sur l'ensemble de données d'entraînement et sur un ensemble de données de validation distinct pendant le processus d'entraînement. Un signe courant de surapprentissage est lorsque la valeur de la fonction de perte pour l'ensemble d'entraînement continue de diminuer, tandis que la perte pour l'ensemble de validation commence à augmenter. De même, si la précision de l'entraînement continue de s'améliorer, mais que la précision de la validation se stabilise ou s'aggrave au fil des époques suivantes, le modèle est susceptible de surapprendre. Des outils comme TensorBoard sont excellents pour visualiser ces métriques et diagnostiquer ces problèmes à un stade précoce. Des plateformes comme Ultralytics HUB peuvent également aider à suivre les expériences et à évaluer les modèles pour détecter le surapprentissage.
Surapprentissage vs. Sous-apprentissage
Le surapprentissage et le sous-apprentissage sont deux problèmes courants en apprentissage automatique qui représentent l'incapacité d'un modèle à se généraliser. Ce sont essentiellement des problèmes opposés.
- Surapprentissage : Le modèle est trop complexe pour les données (variance élevée). Il capture le bruit et les fluctuations aléatoires dans les données d'entraînement, ce qui conduit à d'excellentes performances pendant l'entraînement, mais à de mauvaises performances sur les données de test.
- Sous-apprentissage (Underfitting) : Le modèle est trop simple pour capturer la structure sous-jacente des données (biais élevé). Il fonctionne mal sur les données d'entraînement et de test, car il ne peut pas apprendre les modèles pertinents.
Le défi de l'apprentissage profond est de trouver le bon équilibre, un concept souvent décrit par le compromis biais-variance.
Exemples concrets de surapprentissage
- Détection d'objets pour véhicules autonomes : Imaginez que vous entraînez un modèle Ultralytics YOLO pour un véhicule autonome en utilisant un ensemble de données qui ne contient que des images de conditions ensoleillées et diurnes. Le modèle pourrait devenir très spécialisé dans la détection des piétons et des voitures en pleine lumière, mais échouer de façon spectaculaire la nuit ou par temps pluvieux ou brumeux. Il s'est suradapté aux conditions spécifiques d'éclairage et météorologiques des données d'entraînement. L'utilisation d'ensembles de données diversifiés comme Argoverse peut aider à prévenir cela.
- Analyse d'images médicales : Un modèle de CNN est entraîné pour détecter les tumeurs à partir d'images IRM provenant d'un seul hôpital. Le modèle pourrait par inadvertance apprendre à associer des artefacts spécifiques ou des motifs de bruit de la machine IRM particulière de cet hôpital à la présence d'une tumeur. Lorsqu'il est testé sur des images provenant d'un autre hôpital avec une machine différente, ses performances pourraient chuter considérablement car il s'est suradapté au bruit de l'ensemble d'entraînement d'origine, et non aux marqueurs biologiques réels des tumeurs. Il s'agit d'un problème critique dans des domaines comme l'IA dans le domaine de la santé.
Comment prévenir le surapprentissage
Plusieurs techniques peuvent être employées pour lutter contre le surapprentissage et construire des modèles plus robustes.
- Obtenir plus de données : Augmenter la taille et la diversité de l'ensemble de données d'entraînement est l'un des moyens les plus efficaces d'éviter le surapprentissage. Plus de données aident le modèle à apprendre les véritables modèles sous-jacents plutôt que le bruit. Vous pouvez explorer une variété d'ensembles de données Ultralytics pour améliorer vos projets.
- Augmentation de données : Cela implique d'étendre artificiellement l'ensemble de données d'entraînement en créant des copies modifiées des données existantes. Des techniques telles que les rotations aléatoires, la mise à l'échelle, le recadrage et les décalages de couleur sont appliquées. Les techniques d'augmentation de données Ultralytics YOLO sont intégrées pour améliorer la robustesse du modèle.
- Simplifier l'architecture du modèle : Parfois, un modèle est trop complexe pour l'ensemble de données donné. L'utilisation d'une architecture plus simple avec moins de paramètres peut l'empêcher de mémoriser les données. Par exemple, le choix d'une variante de modèle plus petite comme YOLOv8n au lieu de YOLOv8x peut être bénéfique pour les ensembles de données plus petits.
- Régularisation : Cette technique ajoute une pénalité à la fonction de perte en fonction de la complexité du modèle, décourageant ainsi les poids de modèle importants. Les méthodes courantes sont la régularisation L1 et L2, dont vous pouvez en savoir plus ici.
- Dropout : Une forme spécifique de régularisation où une fraction aléatoire de neurones est ignorée à chaque étape de l'entraînement. Cela force le réseau à apprendre des représentations redondantes et empêche tout neurone individuel de devenir trop influent. Le concept de Dropout est expliqué en détail ici.
- Arrêt précoce : Cela implique de surveiller les performances du modèle sur un ensemble de validation et d'arrêter le processus d'entraînement dès que les performances de validation commencent à décliner, même si les performances d'entraînement continuent de s'améliorer. Vous pouvez consulter une explication de l'arrêt précoce dans Keras pour plus de détails.
- Validation croisée : En utilisant des techniques telles que la validation croisée K-Fold, les données sont divisées en plusieurs plis, et le modèle est entraîné et validé sur différents sous-ensembles. Cela fournit une estimation plus robuste de la capacité du modèle à généraliser.
- Élagage de modèle : Cela implique de supprimer les paramètres ou les connexions d'un réseau entraîné qui ont peu d'impact sur ses performances, réduisant ainsi la complexité. Des entreprises comme Neural Magic proposent des outils spécialisés dans l'élagage des modèles pour un déploiement efficace.