L'overfitting est un phénomène courant en machine learning où un modèle fonctionne exceptionnellement bien sur les données d'entraînement mais ne parvient pas à se généraliser efficacement à de nouvelles données (unseen data). Essentiellement, le modèle devient trop spécialisé dans la capture des excentricités et du bruit présents dans le dataset d'entraînement, perdant ainsi sa capacité à discerner les patterns sous-jacents qui devraient bien se généraliser.
Illustration de l'overfitting
Prenons un scénario dans lequel trois chefs, A, B et C, apprennent à cuisiner un plat spécifique. Chaque chef a une approche différente pour apprendre et préparer la recette.
Le chef A se concentre uniquement sur quelques ingrédients et techniques clés et ignore le reste. Ensuite, il devient exceptionnellement compétent dans ces aspects limités de la cuisson du plat. Cependant, si la recette nécessite des ingrédients ou des techniques supplémentaires, le chef A aurait du mal à s'adapter et pourrait produire un plat de qualité inférieure.
Le chef B, quant à lui, mémorise méticuleusement chaque détail de la recette, y compris les mesures et les étapes précises. Il a une mémoire fantastique et peut reproduire le plat exactement tel qu'il est écrit. Cependant, si une légère variation ou un ingrédient inattendu est introduite, le chef B peut avoir du mal à s'adapter et avoir du mal à créer un résultat satisfaisant.
Le chef C adopte une approche globale. Il étudie non seulement la recette, mais expérimente également différentes variantes, techniques et ingrédients. Le chef C pratique intensivement et comprend les principes et les saveurs sous-jacents. En conséquence, il peut toujours bien préparer le plat, même face à de légères modifications ou à des ingrédients inconnus.
Dans cet exemple, le chef A représente le sous-apprentissage (underfitting). Il a des connaissances limitées et ne peut donner de bons résultats que dans des circonstances spécifiques. Le chef B représente un surapprentissage (overfitting), car il a mémorisé la recette mais a du mal avec les variations et les entrées inattendues. Le Chef C représente un modèle bien adapté qui se généralise, fonctionne de manière cohérente, et s'adapte à différentes situations.
De même, en apprentissage automatique, un modèle sous-adapté ne peut pas capturer la complexité des données et fonctionne mal. Un modèle d'overfitting mémorise les données d'entraînement avec trop de précision, sans parvenir à les généraliser à de nouvelles données invisibles. Un modèle bien adapté, comme Chef C, établit un équilibre, capturant les modèles et fonctionnalités essentiels tout en s'adaptant aux variations des données et en performant à la fois sur la formation et sur les ensembles de données invisibles.
Comment se produit le surapprentissage ?
L'overfitting se produit généralement lorsque le modèle devient excessivement complexe, comportant trop de paramètres par rapport aux données d'entraînement disponibles. Avec une complexité excessive, le modèle peut essentiellement mémoriser les exemples d’entraînement, y compris les fluctuations aléatoires et le bruit, plutôt que d’apprendre les caractéristiques sous-jacentes essentielles.
De plus, un surapprentissage peut se produire lorsque les données d'entraînement ne sont pas représentatives de la population cible ou manquent de diversité. Si le set d'entraînement (train set) est biaisé ou ne couvre pas de manière adéquate l’éventail des scénarios potentiels, le modèle peut développer des biais ou des angles morts qui entravent sa capacité de généralisation.
Comment détecter l'overfitting ?
Il y a toujours du bruit et de l’imprécision dans les données. L'overfitting se produit lorsque le modèle commence à apprendre ces bruits et imprécisions, ce qui conduit à des modèles incorrects.
C'est pourquoi, pour détecter le surapprentissage, il faut comparer la perte ("loss") entre les données d'entraînement et les données de validation. Lorsqu’un overfitting se produit, la ("loss") perte augmente et la "loss" des données de validation est bien plus importante que la perte des données du d'entraînement.
Comment éviter l'overfitting ?
- Validation croisée et séparation des données: Il est crucial de diviser les données disponibles en jeux d'entraînement (train set) et de validation (validation set) distincts. Le jeu d'entraînement est utilisé pour entraîner le modèle, tandis que le jeu de validation permet d'évaluer ses performances sur des données non vues (unseen data). En évaluant les performances du modèle sur le jeu de validation, il est possible de détecter un overfitting et de procéder à des ajustements en conséquence.
- Techniques de régularisation : Les méthodes de régularisation, telles que la régularisation L1 et L2, ajoutent des termes de pénalité à la fonction objectif du modèle, décourageant les valeurs de paramètres excessives. Cela permet d'éviter que le modèle ne devienne trop sensible aux points de données individuels et l'encourage à se concentrer sur les fonctionnalités les plus pertinentes.
- Sélection des fonctionnalités et réduction de la dimensionnalité : Une sélection minutieuse des fonctionnalités ou des techniques de réduction de dimensionnalité, telles que l'analyse en composantes principales (ACP) ou le classement par importance des fonctionnalités, peuvent aider à réduire la complexité du modèle et à se concentrer sur les fonctionnalités les plus informatives. En supprimant les fonctionnalités non pertinentes ou redondantes, le risque d'overfitting diminue. Cependant, cette méthode n’a pas vraiment de sens en deep learning en raison de l’utilisation de réseaux de neurones convolutifs (CNN).
- Augmentation des données : L'augmentation des données (data augmentation) implique d'augmenter artificiellement la taille de l'ensemble d'entraînement en appliquant des transformations, telles que des rotations, des translations et une mise à l'échelle, aux données existantes. Cette technique introduit des variations supplémentaires, rendant le modèle plus robuste et moins sujet au surapprentissage (overfitting).
- Arrêt anticipé : La surveillance des performances du modèle sur l'ensemble de validation pendant l'entraînement permet un arrêt précoce lorsqu'un surapprentissage est détecté. L'entraînement peut être interrompu lorsque les performances du modèle sur l'ensemble de validation commencent à se détériorer, l'empêchant de mémoriser excessivement les données d'entraînement.
- Méthodes d'ensemble : Les méthodes d'ensemble combinent des modèles multiples mais simples pour faire des prédictions. En entraînant plusieurs modèles moins complexes avec des conditions initiales ou des algorithmes différents et en combinant leurs prédictions, l'ensemble peut mieux généraliser que n'importe quel modèle individuel, et les modèles sont moins sujets au surapprentissage.
- Validation croisée et réglage des hyperparamètres : Les techniques de validation croisée, telles que la validation croisée k-fold, aident à évaluer les performances d'un modèle sur différents sous-ensembles de données. Le réglage des hyperparamètres, à l'aide de techniques telles que la recherche de grille ou l'optimisation bayésienne, permet de trouver les valeurs d'hyperparamètres optimales qui permettent une meilleure généralisation et minimisent l'overfitting.
Zoom sur la technique de k-Cross-Validation :
Cette technique consiste à diviser l’ensemble de données en k sous-ensembles ou « plis » de taille égale. Le modèle est entraîné et évalué k fois, en utilisant à chaque fois un pli différent comme ensemble de validation et les plis restants pour l'entraînement. Les mesures de performance obtenues à partir de chaque itération sont moyennées pour estimer les performances globales du modèle.
Pour vous aider à lutter contre le surapprentissage, Picsellia fournit des traitements d’augmentation de données prêts à l’emploi et personnalisables. Mais il y a plus, la plateforme dispose d'un système de suivi des expériences qui indique à l'utilisateur quand s'arrêter pour obtenir le meilleur équilibre entre complexité et généralisation, économisant ainsi du temps et des ressources dans le processus.
Conclusion
L'overfitting est un défi habituel dans l'apprentissage automatique, où les modèles deviennent trop spécialisés dans les données d'entraînement et ne parviennent pas à généraliser efficacement. Heureusement, des stratégies existent pour éviter le surapprentissage. Et la plateforme MLops de bout en bout de Picsellia aide à mettre en place ces stratégies car elle offre une solution complète pour atténuer les problèmes de surapprentissage, permettant aux organisations de surmonter les limites posées par une mauvaise généralisation.