Overfitting (Surapprentissage)
L’overfitting (ou surapprentissage) est un phénomène en machine learning où un modèle apprend les données d’entraînement trop fidèlement, incluant le bruit et les anomalies, au point de perdre sa capacité à généraliser à des données nouvelles et inédites.
Un modèle qui overfitte est comme un étudiant qui mémorise les réponses d’un examen passé au lieu de comprendre les concepts sous-jacents. Il obtient 100% sur les exercices qu’il a déjà vus, mais échoue face à une question formulée différemment. En machine learning, cela se traduit par un écart significatif entre une performance excellente sur le training set et une performance médiocre sur le test set ou en production. L’overfitting est le problème le plus courant et le plus insidieux en ML : il donne l’illusion du succès pendant le développement et ne révèle son impact qu’au déploiement.
- Aussi appelé
- Surapprentissage, surajustement
- Opposé
- Underfitting (sous-apprentissage)
- Symptôme
- Training loss basse + validation loss haute = écart croissant
- Cause principale
- Modèle trop complexe par rapport à la quantité de données
- Détection
- Courbes d’apprentissage (training vs validation), cross-validation
- Solutions
- Régularisation, dropout, early stopping, plus de données, data augmentation
Signal vs bruit : la racine du problème
Tout dataset contient deux composantes : le signal (les patterns réels et généralisables qui relient les features aux labels) et le bruit (les variations aléatoires, les erreurs de mesure, les anomalies ponctuelles). Un bon modèle apprend le signal et ignore le bruit. Un modèle qui overfitte apprend les deux, traitant le bruit comme s’il faisait partie du signal.
Prenez un exemple concret : vous entraînez un modèle pour prédire les prix immobiliers. Le signal, c’est que la surface, la localisation et le nombre de pièces influencent le prix. Le bruit, c’est que l’appartement A a été vendu un jour où le vendeur était pressé (prix bas) et l’appartement B a fait l’objet d’une surenchère émotionnelle (prix haut). Un modèle qui overfitte « apprend » ces particularités et ajuste ses prédictions en conséquence, ce qui n’a aucune valeur prédictive pour de nouveaux biens.
Les causes de l’overfitting
Modèle trop complexe
C’est la cause numéro un. Un modèle avec trop de paramètres par rapport au volume de données dispose d’une capacité de mémorisation qui dépasse la complexité réelle du problème. Un réseau de neurones avec des millions de paramètres entraîné sur quelques milliers d’exemples peut facilement mémoriser chaque exemple individuel plutôt que d’en extraire les tendances générales.
La règle empirique : plus le ratio paramètres/exemples est élevé, plus le risque d’overfitting est grand. Un modèle de régression linéaire avec 10 features a peu de risque d’overfitter sur 10 000 exemples. Un réseau de neurones profond avec 10 millions de paramètres sur les mêmes 10 000 exemples, si.
Données d’entraînement insuffisantes
Quand le training set est trop petit, le modèle n’a pas assez d’exemples pour distinguer le signal du bruit. Les corrélations accidentelles dans un petit échantillon sont traitées comme des patterns réels. C’est pourquoi la collecte de données de qualité est souvent plus efficace contre l’overfitting que le tuning du modèle.
Entraînement trop prolongé
En deep learning, chaque epoch supplémentaire permet au modèle d’affiner ses poids. Au début, cette amélioration correspond à un meilleur apprentissage du signal. Mais après un point optimal, le modèle commence à ajuster ses poids aux particularités du training set (le bruit), ce qui dégrade sa généralisation. C’est précisément ce que l’early stopping détecte et empêche.
Bruit dans les données et les labels
Des labels erronés, des outliers non traités ou des features bruitées poussent le modèle à apprendre des patterns inexistants. Un taux d’erreur de labeling de 5% peut sembler faible, mais si le modèle est assez complexe pour capturer ces erreurs, il le fera, au détriment de la performance sur des données propres.
Trop de features non pertinentes
Des features qui ne sont pas réellement liées au label ajoutent du bruit dimensionnel. Le modèle peut trouver des corrélations fortuites entre ces features et le label dans le training set, qui ne se reproduiront pas dans de nouvelles données. La sélection de features (feature selection) et la réduction de dimensionnalité aident à éliminer ce problème.
Détecter l’overfitting
Courbes d’apprentissage
Le diagnostic le plus fiable repose sur la comparaison de la loss (ou de toute métrique de performance) entre le training set et le validation set au fil des epochs.
| Pattern observé | Training loss | Validation loss | Diagnostic |
|---|---|---|---|
| Bon apprentissage | Diminue | Diminue de façon similaire | Le modèle généralise bien |
| Overfitting | Continue à diminuer | Stagne puis remonte | Le modèle mémorise le training |
| Underfitting | Reste élevée | Reste élevée (proche du train) | Le modèle est trop simple |
| Données bruitées | Basse | Haute et instable | Labels erronés ou données hétérogènes |
Le point de divergence entre les deux courbes marque le début de l’overfitting. C’est à ce point que l’early stopping doit intervenir.
Écart training/test
Un indicateur simple et fiable : si l’accuracy (ou toute autre métrique) sur le training set est significativement supérieure à celle sur le test set (écart de plus de 10-15%), le modèle overfitte. Exemple : 98% d’accuracy en training et 75% en test est un signal d’alarme clair. L’objectif est que les deux valeurs soient proches.
Validation croisée
La cross-validation k-fold fournit une estimation plus robuste de la performance réelle. Si la variance des scores entre les folds est élevée (par exemple, un F1 de 0,92 sur un fold et 0,65 sur un autre), c’est un signe que le modèle est sensible aux données spécifiques de chaque fold, donc qu’il overfitte.
Les solutions contre l’overfitting
Régularisation (L1, L2)
La régularisation ajoute un terme de pénalité à la fonction de loss pour décourager les poids trop grands. L’idée : un modèle avec des poids proches de zéro est plus « simple » et moins susceptible de mémoriser le bruit.
L2 (Ridge / weight decay). Pénalise la somme des carrés des poids. Réduit uniformément la magnitude de tous les poids sans les mettre à zéro. C’est la forme de régularisation la plus courante en deep learning (souvent appelée « weight decay » dans les optimizers).
L1 (Lasso). Pénalise la somme des valeurs absolues des poids. Tend à mettre certains poids exactement à zéro, ce qui a un effet de sélection automatique de features. Utile quand vous soupçonnez que beaucoup de features sont non pertinentes.
Dropout
Le dropout désactive aléatoirement une fraction des neurones à chaque étape d’entraînement (typiquement 20 à 50%). Cela force le réseau à ne pas s’appuyer sur des neurones spécifiques et à distribuer l’information de façon plus robuste. C’est comme obliger un étudiant à répondre aux questions en changeant de main : il doit comprendre le concept, pas mémoriser un geste. Le dropout est l’une des techniques de régularisation les plus efficaces pour les réseaux de neurones profonds.
Early stopping
Arrêter l’entraînement dès que la performance sur le validation set cesse de s’améliorer. C’est la technique de régularisation la plus simple à implémenter et la plus universelle. Le paramètre « patience » définit combien d’epochs sans amélioration sont tolérées avant l’arrêt (typiquement 5 à 20). Le modèle sauvegardé est celui du meilleur point de validation, pas celui de la dernière epoch.
Plus de données
La solution la plus directe. Un modèle qui overfitte sur 1 000 exemples peut très bien généraliser sur 100 000 exemples. Plus le training set est grand et diversifié, plus il est difficile pour le modèle de mémoriser les particularités individuelles. Si collecter plus de données réelles est impossible, la data augmentation et les données synthétiques offrent des alternatives.
Data augmentation
La data augmentation crée des variantes des données existantes (rotation, flip, crop pour les images ; synonymes, back-translation pour le texte). Le modèle ne voit jamais exactement le même exemple deux fois, ce qui rend la mémorisation beaucoup plus difficile. C’est l’une des armes les plus efficaces contre l’overfitting en computer vision.
Simplifier le modèle
Réduire le nombre de couches, de neurones ou de features. En arbres de décision, limiter la profondeur maximale (pruning). Le principe d’Occam (Occam’s razor) s’applique : entre deux modèles de performance similaire sur la validation, choisissez le plus simple. Il généralisera mieux.
Batch normalization
La batch normalization normalise les activations de chaque couche pendant l’entraînement, ce qui a un léger effet régularisant en plus de ses bénéfices sur la vitesse de convergence. Ce n’est pas un substitut au dropout ou à la régularisation L2, mais un complément utile.
Méthodes d’ensemble
Le bagging (Random Forest) et le boosting (XGBoost, LightGBM) réduisent l’overfitting en combinant les prédictions de plusieurs modèles. Chaque modèle individuel peut overfitter, mais la moyenne de leurs prédictions tend à annuler les erreurs idiosyncratiques et à conserver le signal commun.
Le compromis biais-variance
L’overfitting s’inscrit dans le cadre plus large du compromis biais-variance (bias-variance tradeoff), un concept fondamental en ML.
Biais (bias). L’erreur due aux hypothèses simplificatrices du modèle. Un modèle avec un biais élevé (trop simple) rate des patterns importants. C’est l’underfitting.
Variance. L’erreur due à la sensibilité du modèle aux fluctuations du training set. Un modèle avec une variance élevée (trop complexe) capture le bruit. C’est l’overfitting.
Erreur totale = Biais² + Variance + Bruit irréductible. L’objectif est de trouver le point de complexité du modèle qui minimise l’erreur totale, c’est-à-dire le bon équilibre entre biais et variance. Augmenter la complexité réduit le biais mais augmente la variance, et inversement.
L’overfitting dans le contexte des LLM
Les grands modèles de langage présentent des cas d’overfitting spécifiques.
Contamination des benchmarks. Quand un LLM est pré-entraîné sur un corpus qui contient les données d’un benchmark de test (MMLU, HumanEval), ses scores sur ce benchmark sont artificiellement gonflés. C’est l’équivalent de l’overfitting au test set à l’échelle industrielle. La communauté crée régulièrement de nouveaux benchmarks pour contourner ce problème.
Overfitting au fine-tuning. Lors du fine-tuning d’un LLM sur un petit dataset spécialisé, le modèle peut perdre ses capacités générales (catastrophic forgetting) en s’ajustant trop étroitement aux données de fine-tuning. Les techniques comme LoRA (qui ne modifie qu’un petit nombre de paramètres) et l’early stopping aident à prévenir ce problème.
Mémorisation de données d’entraînement. Les LLM peuvent mémoriser et régurgiter des portions exactes de leur corpus de pré-entraînement (noms, adresses, numéros de téléphone). C’est une forme d’overfitting qui pose des problèmes de confidentialité et de droits d’auteur. La régularisation et la déduplication du corpus d’entraînement aident à atténuer ce risque.
Exemples concrets par domaine
Santé. Un modèle de diagnostic qui overfitte peut apprendre à reconnaître l’appareil de scan (un artefact de l’image) plutôt que la pathologie. Il fonctionnera parfaitement sur les images provenant du même hôpital que le training set et échouera sur des images d’un autre hôpital.
Finance. Un modèle de prévision boursière qui overfitte apprend des patterns historiques spécifiques (une crise unique, une bulle ponctuelle) et les traite comme des règles générales. Il obtient des rendements spectaculaires sur le backtesting et perd de l’argent en trading réel.
NLP. Un classificateur de sentiment qui overfitte peut associer certains noms propres (présents dans le training set) à un sentiment positif ou négatif, au lieu d’apprendre les patterns linguistiques de sentiment.
Computer vision. Un modèle de reconnaissance de chiens entraîné sur des photos prises en extérieur peut apprendre que « herbe = chien ». Confronté à un chien dans un salon, il échoue. Ce problème est documenté dans la littérature comme un cas classique d’overfitting aux corrélations spurieuses.
Questions fréquentes sur l’overfitting
Quelle est la différence entre overfitting et underfitting ?
L’overfitting se produit quand le modèle est trop complexe : il apprend le bruit et les particularités du training set, obtenant d’excellents résultats en entraînement mais de mauvais résultats en test. L’underfitting se produit quand le modèle est trop simple : il ne capture pas les patterns réels et obtient de mauvais résultats partout, en entraînement comme en test. L’overfitting correspond à une variance élevée et un biais faible ; l’underfitting correspond à un biais élevé et une variance faible. L’objectif est de trouver le point d’équilibre entre les deux.
Comment savoir si mon modèle overfitte ?
Le signe le plus fiable est l’écart entre la performance sur le training set et sur le validation set ou le test set. Si l’accuracy en training est de 97% et celle en validation de 72%, votre modèle overfitte. Tracez les courbes d’apprentissage (loss en fonction des epochs) : si la training loss continue à baisser tandis que la validation loss remonte, c’est l’overfitting en action. La validation croisée k-fold peut aussi révéler le problème si les scores varient beaucoup entre les folds.
Quelle est la meilleure technique contre l’overfitting ?
Il n’y a pas de technique unique universelle. Les plus efficaces, dans l’ordre de priorité pratique : (1) plus de données de qualité (la solution la plus directe), (2) data augmentation (si plus de données réelles est impossible), (3) early stopping (simple, universel, coûte zéro), (4) dropout (standard en deep learning, 20-50%), (5) régularisation L2/weight decay (souvent activé par défaut dans les optimizers), (6) simplification du modèle (moins de couches, moins de features). En pratique, on combine plusieurs techniques pour un effet maximal.
L’overfitting est-il toujours un problème ?
Oui, c’est toujours un risque à surveiller, mais sa gravité varie. Un modèle légèrement overfitté (2-3% d’écart entre train et test) peut être acceptable si la performance absolue sur le test set est satisfaisante. Un overfitting sévère (20%+ d’écart) indique que les résultats en production seront bien pires que ce que vous observez en développement. Le phénomène de double descent en deep learning montre aussi que les très grands modèles peuvent surmonter l’overfitting « classique », mais cela ne dispense pas de la surveillance et de la validation.
L’overfitting existe-t-il dans les modèles non supervisés ?
Oui, même si le terme est moins souvent utilisé. Un algorithme de clustering peut créer trop de clusters, chacun ne contenant que quelques exemples spécifiques, au lieu de trouver des groupes naturels dans les données. Un autoencoder peut mémoriser les données au lieu d’en apprendre une représentation compressée utile. Le principe est le même : le modèle capture des particularités qui ne se généralisent pas. Les solutions sont similaires : régularisation, réduction de complexité et validation sur des données hors entraînement.