L'overfitting désigne un modèle de machine learning qui obtient d'excellents résultats sur ses données d'entraînement mais échoue sur des données nouvelles. Le modèle a mémorisé les exemples fournis, y compris le bruit et les anomalies, plutôt que d'en extraire des régularités généralisables.

Les modèles de machine learning ajustent leurs paramètres internes pour minimiser l'écart entre leurs prédictions et les bonnes réponses présentes dans le jeu d'entraînement. Si un modèle dispose de trop de paramètres par rapport au volume de données, il peut atteindre une erreur proche de zéro sur ces données… non pas en identifiant des régularités transférables, mais en mémorisant chaque exemple individuellement, y compris les erreurs d'étiquetage et les cas atypiques.

Prenons un exemple concret : un modèle doit apprendre à distinguer des photos de chiens et de chats. Si toutes les photos de chiens du jeu d'entraînement ont été prises en extérieur, dans un cadre verdoyant, le modèle peut associer « herbe » à « chien ». Il obtiendra 98 % de bonnes réponses sur les données d'entraînement, mais échouera face à une photo de chien prise dans un salon. Le modèle a capté une corrélation accidentelle propre au jeu d'entraînement, pas une caractéristique propre aux chiens.

Ce phénomène peut être exacerbé par plusieurs facteurs :

  • Complexité excessive du modèle : si un réseau de neurones avec des millions de paramètres est entraîné sur quelques milliers d'exemples, il préférera la « mémorisation » des exemples plutôt que la détection et l’application de la logique ;
  • Données d'entraînement insuffisantes ou biaisées : si le jeu d'entraînement ne couvre pas la diversité des situations réelles, le modèle pourrait apprendre des régularités qui n'existent que dans l'échantillon ;
  • Entraînement trop long : à chaque itération, le modèle s'ajuste davantage aux données d'entraînement. Au-delà d'un certain point, il commence à mémoriser le bruit du jeu de données.

Pour détecter l'overfitting, il faudra séparer les données en deux ensembles : celles de l’entraînement et celles du test. Si l'erreur diminue sur l'ensemble d'entraînement mais augmente sur l'ensemble de test, le modèle est probablement en surapprentissage. Dans ce cas, le modèle devra être ajusté par : 

  • Régularisation : ajouter un terme de pénalité pour décourager les valeurs trop élevées. Le modèle est ainsi contraint de rester dans une certaine simplicité plutôt que de s'ajuster à chaque détail des données d'entraînement ; 
  • Dropout : pendant l'entraînement, désactiver aléatoirement une fraction des neurones à chaque itération. Le modèle ne peut pas compter sur un neurone particulier pour mémoriser une information, ce qui le force à distribuer l'apprentissage ; 
  • Augmentation de données : générer des variations artificielles des exemples existants (rotations, recadrages, modifications de luminosité pour des images, par exemple). Le modèle voit davantage de cas différents et capte des régularités plus robustes qu’il pourra ensuite généraliser.

💡 Overfitting et underfitting

L'overfitting a son opposé : l'underfitting (sous-apprentissage). Dans ce cas, le modèle est sous-dimensionné et ne capte pas les régularités présentes dans les données. Il échoue à la fois sur l'ensemble d'entraînement et sur l'ensemble de test. L'enjeu pour les data scientists consiste à trouver le point d'équilibre : un modèle suffisamment complexe pour apprendre les patterns pertinents, mais pas au point de mémoriser le bruit des données.