Le surapprentissage (overfitting) est un problème courant en machine learning : un modèle capture le bruit aléatoire et les détails idiosyncratiques de ses données d'entraînement plutôt que les véritables relations sous-jacentes. Résultat, le modèle semble obtenir d'excellentes performances sur les données sur lesquelles il a été entraîné, mais fait de mauvaises prédictions lorsqu'il est appliqué à de nouveaux exemples. C'est le compromis classique entre la mémorisation et l'apprentissage véritable.
Comment fonctionne le surapprentissage
Pendant l'entraînement, un modèle ajuste ses paramètres internes pour minimiser l'erreur sur un ensemble d'exemples. Si le modèle possède trop de paramètres par rapport à la taille ou à la diversité du jeu d'entraînement, ou s'il est entraîné trop longtemps, il commence à traiter les fluctuations aléatoires des données comme s'il s'agissait de signaux significatifs. Imaginez l'ajustement d'une courbe lisse à travers un nuage de points : un polynôme de degré peu élevé capture la tendance générale, tandis qu'un polynôme de haut degré peut serpenter à travers chaque point, y compris les valeurs aberrantes. Cette courbe sinueuse est surapprise. Elle a essentiellement mémorisé les données au lieu d'apprendre la tendance, de sorte que tout nouveau point qui tombe en dehors de ses méandres sera mal prédit.
D'un point de vue informationnel, le modèle utilise plus de « capacité » que ce que les données peuvent justifier, ajustant le signal plus le bruit au lieu du signal seul. L'écart entre l'erreur d'entraînement et l'erreur de validation est le symptôme le plus clair : l'erreur d'entraînement continue de baisser tandis que l'erreur de validation stagne ou augmente.
Pourquoi c'est important
Le surapprentissage est l'une des raisons les plus fréquentes pour lesquelles les projets de machine learning échouent à produire de la valeur en production. Un modèle qui obtient 99 % de précision sur un benchmark peut être inutile sur des données réelles s'il a surappris le benchmark. Détecter et contrôler le surapprentissage est donc une préoccupation centrale du développement de modèles, qui touche chaque étape, de la collecte des données au déploiement.
C'est particulièrement crucial dans les domaines où la généralisation est essentielle : diagnostic médical, détection de fraude, conduite autonome, et tout système qui doit traiter des entrées qu'il n'a jamais vues. Comprendre le surapprentissage explique aussi pourquoi plus de données, des modèles plus simples ou une régularisation plus forte surpassent souvent l'idée de jeter un plus grand réseau de neurones sur un problème.
Signes clés et solutions courantes
- Écart entraînement-validation : la précision est élevée sur les données d'entraînement mais nettement plus faible sur un jeu de validation mis de côté.
- Validation croisée : utiliser la validation croisée k-fold pour confirmer que le modèle se généralise à travers différentes tranches de données.
- Régularisation : des techniques comme L1, L2 (weight decay) ou le dropout pénalisent la complexité du modèle et découragent la mémorisation.
- Plus de données : élargir le jeu d'entraînement donne au modèle davantage de signal à apprendre et réduit l'incitation à mémoriser.
- Augmentation des données : enrichir artificiellement les données d'entraînement avec des variations réalistes (rotations, paraphrases, bruit) améliore la robustesse.
- Arrêt précoce : interrompre l'entraînement lorsque l'erreur de validation commence à augmenter empêche le modèle d'ajuster le bruit.
- Modèles plus simples : choisir un modèle avec moins de paramètres relativement aux données réduit la capacité à surapprendre.
Le surapprentissage n'est pas un bug ponctuel à corriger mais une tension permanente que chaque praticien doit gérer. L'objectif n'est pas un modèle parfait sur les données d'entraînement, mais un modèle qui fait des prédictions fiables sur des données qu'il n'a pas encore rencontrées.