Polydesk-logotype
Polydesk.ai — Header

Underfitting (Sous-apprentissage)

L’underfitting (ou sous-apprentissage) est un phénomène en machine learning où un modèle est trop simple pour capturer les patterns réels dans les données, produisant des performances médiocres aussi bien sur le training set que sur le test set.

Si l’overfitting est l’élève qui mémorise les réponses sans comprendre, l’underfitting est l’élève qui ne fait aucun effort : il ne capte ni les détails ni les concepts généraux. Un modèle qui underfitte n’a pas appris à représenter la relation entre les features et le label. Il échoue partout, sur les données d’entraînement comme sur les données nouvelles. C’est un problème moins médiatisé que l’overfitting mais tout aussi coûteux : un modèle qui ne capture rien est un modèle inutile.

Fiche rapide : Underfitting
Aussi appelé
Sous-apprentissage, sous-ajustement
Opposé
Overfitting (surapprentissage)
Symptôme
Training loss élevée + validation loss élevée (les deux proches)
Caractéristique
Biais élevé, variance faible
Causes
Modèle trop simple, features insuffisantes, entraînement trop court, régularisation excessive
Solutions
Complexifier le modèle, ajouter des features, entraîner plus longtemps, réduire la régularisation

Comprendre l’underfitting

Tout problème de machine learning contient une relation sous-jacente entre les entrées (features) et la sortie (label). Cette relation peut être simple (quasi-linéaire) ou complexe (non linéaire avec des interactions). L’underfitting survient quand le modèle choisi n’a pas la capacité de représenter cette relation.

Imaginez un problème où la relation réelle entre X et Y est une courbe quadratique. Si vous utilisez un modèle de régression linéaire (une droite), il ne pourra jamais épouser la courbe. La droite passera « au milieu » des données, mais l’erreur sera systématiquement élevée. Peu importe combien d’exemples vous fournissez ou combien de temps vous entraînez : la droite restera une droite. C’est l’underfitting par insuffisance de complexité du modèle.

En termes du compromis biais-variance : l’underfitting correspond à un biais élevé. Le modèle fait des hypothèses trop restrictives sur la forme de la relation (par exemple, qu’elle est linéaire alors qu’elle ne l’est pas). Ces hypothèses le rendent incapable de capturer le signal réel, quelle que soit la quantité de données disponible.

Les causes de l’underfitting

Modèle trop simple

C’est la cause la plus fréquente. Une régression linéaire sur des données non linéaires, un arbre de décision avec une profondeur maximale de 2 sur un problème complexe, ou un réseau de neurones avec trop peu de couches ou de neurones : tous ces cas limitent la capacité du modèle à représenter les patterns réels.

La capacité d’un modèle (sa « complexité » ou « expressivité ») doit correspondre à la complexité du problème. Un modèle linéaire a une faible capacité (il ne peut représenter que des relations linéaires). Un réseau de neurones profond a une très grande capacité (il peut approximer des fonctions arbitrairement complexes). Le défi est de trouver le bon niveau de complexité.

Features insuffisantes ou non pertinentes

Même un modèle complexe ne peut rien apprendre si les features fournies ne contiennent pas l’information nécessaire pour prédire le label. Si vous essayez de prédire le prix d’une maison uniquement à partir de sa couleur, aucun modèle ne réussira, car la couleur n’a pas de pouvoir prédictif sur le prix. Le feature engineering (création de features pertinentes) et la sélection de features sont des étapes critiques pour éviter ce type d’underfitting.

Entraînement trop court

En deep learning, un modèle a besoin de suffisamment d’epochs pour converger. Arrêter l’entraînement trop tôt (early stopping prématuré avec une patience trop faible, ou nombre d’epochs insuffisant) peut produire un modèle qui n’a pas eu le temps d’apprendre. C’est un underfitting « temporaire » : le modèle a la capacité, mais pas le temps d’entraînement.

Piège : confondre underfitting temporaire et structural Si votre modèle underfit parce qu’il n’a pas assez été entraîné, augmenter le nombre d’epochs résoudra le problème. Mais si le modèle underfit parce qu’il est structurellement trop simple (une régression linéaire sur un problème non linéaire), aucune durée d’entraînement ne changera quoi que ce soit. Distinguez les deux cas en observant si la training loss continue à descendre (underfitting temporaire) ou si elle a convergé à un plateau élevé (underfitting structural).

Régularisation excessive

Les techniques anti-overfitting (régularisation L1/L2, dropout, weight decay) contraignent la complexité du modèle. Appliquées avec des coefficients trop forts, elles empêchent le modèle d’apprendre même les patterns réels. Un taux de dropout de 90% ou un coefficient de régularisation L2 de 10 écrasent les poids du modèle vers zéro, le rendant incapable de représenter quoi que ce soit.

C’est une erreur courante : quelqu’un détecte un léger overfitting, applique une régularisation massive, et se retrouve avec un modèle qui underfit. La régularisation est un curseur, pas un interrupteur. Elle doit être calibrée, pas maximisée.

Données trop bruitées

Si les labels sont massivement erronés ou si les données contiennent trop de bruit, même un modèle de complexité adéquate peut « donner l’impression » d’underfitter : la loss d’entraînement reste élevée parce que le bruit rend le problème intrinsèquement difficile. Dans ce cas, c’est la qualité des données qu’il faut améliorer, pas la complexité du modèle.

Learning rate inadapté

Un learning rate trop faible fait que le modèle converge extrêmement lentement, donnant l’impression d’un underfitting alors qu’il lui faudrait simplement plus de temps (ou un LR plus élevé). À l’inverse, un learning rate trop élevé empêche la convergence : la loss oscille ou diverge au lieu de descendre. Le tuning du learning rate est souvent la première chose à vérifier face à un underfitting apparent.

Détecter l’underfitting

Courbes d’apprentissage

Le diagnostic repose sur la comparaison des courbes de loss (ou de toute métrique) entre training et validation.

Observation Training loss Validation loss Interprétation
Underfitting structural Élevée, convergée à un plateau Élevée, proche du training Le modèle ne peut pas capturer les patterns
Underfitting temporaire En descente mais pas encore convergée En descente, proche du training Entraîner plus longtemps
Overfitting Très basse Remonte après un minimum Trop complexe ou pas assez de données
Bon fit Basse Basse, proche du training Le modèle généralise bien

La caractéristique clé de l’underfitting : les deux courbes (training et validation) sont élevées et proches l’une de l’autre. Contrairement à l’overfitting, il n’y a pas d’écart significatif, mais le niveau absolu de performance est insuffisant.

Performance absolue

Une accuracy de 55% sur un problème de classification binaire (baseline aléatoire : 50%) sur le training set est un signe clair d’underfitting. Le modèle ne fait guère mieux que le hasard, même sur les données qu’il a vues. Comparez toujours vos résultats à une baseline (prédire la classe majoritaire, prédire la moyenne) pour évaluer si le modèle apprend quelque chose d’utile.

Analyse des résidus

En régression, tracez les résidus (erreurs de prédiction) en fonction des valeurs prédites. Si les résidus montrent un pattern systématique (une courbe, par exemple), c’est que le modèle ne capture pas une composante non linéaire de la relation. Un modèle bien ajusté produit des résidus aléatoirement distribués autour de zéro.

Les solutions contre l’underfitting

Augmenter la complexité du modèle

La solution la plus directe. Concrètement, selon le type de modèle :

Réseaux de neurones. Ajouter des couches (plus de profondeur), des neurones par couche (plus de largeur), ou passer à une architecture plus puissante (Transformer au lieu de RNN, CNN plus profond). Attention cependant : trop complexifier crée le risque inverse d’overfitting.

Arbres de décision. Augmenter la profondeur maximale, réduire le nombre minimum d’exemples par feuille, ou passer à un ensemble d’arbres (Random Forest, gradient boosting).

Modèles linéaires. Ajouter des features polynomiales (X², X×Y, etc.) ou des features d’interaction pour capturer les non-linéarités. Ou passer à un modèle non linéaire.

Améliorer les features

Le feature engineering est souvent la solution la plus efficace. Concrètement :

Créer des features dérivées qui capturent des relations non linéaires (ratios, logarithmes, polynômes). Ajouter des features externes (données météo pour prédire les ventes, données démographiques pour un modèle marketing). Encoder correctement les variables catégorielles (one-hot encoding, target encoding). Extraire des features temporelles (jour de la semaine, heure, saison). Utiliser des embeddings pré-entraînés pour le texte ou les catégories.

Entraîner plus longtemps

Si la training loss n’a pas convergé, augmentez le nombre d’epochs. Vérifiez aussi que le learning rate n’est pas trop faible (ce qui ralentit la convergence). Un learning rate scheduler (comme le cosine annealing ou le reduce-on-plateau) peut aider le modèle à converger plus efficacement.

Réduire la régularisation

Si vous avez appliqué du dropout, du weight decay ou de la régularisation L1/L2, réduisez leurs coefficients. Commencez sans régularisation pour vérifier que le modèle peut apprendre (même s’il overfitte), puis ajoutez progressivement de la régularisation. C’est plus sûr que l’approche inverse.

Nettoyer les données

Si l’underfitting provient de données trop bruitées, nettoyez le dataset : corrigez les labels erronés, traitez les outliers, supprimez les exemples corrompus. Un data labeling de meilleure qualité a souvent plus d’impact que le changement de modèle.

Utiliser le transfer learning

Le transfer learning utilise un modèle pré-entraîné sur un grand dataset générique, puis le fine-tune sur votre dataset spécifique. Le modèle pré-entraîné apporte des features génériques déjà apprises (contours, textures en vision ; syntaxe, sémantique en NLP) que votre petit dataset ne pourrait pas fournir. C’est souvent la solution quand l’underfitting provient d’un manque de données plutôt que d’un manque de complexité du modèle.

Underfitting vs overfitting : trouver l’équilibre

Le développement d’un modèle ML est un balancement constant entre underfitting et overfitting. Le processus itératif typique :

1. Commencez simple. Un modèle de base (régression logistique, petit réseau de neurones). Si les performances sont insuffisantes sur le training set : underfitting.

2. Complexifiez progressivement. Ajoutez des couches, des features, des interactions. Vérifiez que la training performance s’améliore. Si elle stagne : toujours en underfitting, il faut plus de complexité ou de meilleures features.

3. Surveillez la divergence. Dès que la validation performance commence à décrocher par rapport à la training performance : overfitting. Appliquez les techniques de régularisation (dropout, weight decay, early stopping).

4. Itérez. Le point optimal est celui où la validation performance est maximale, avec un écart train/val raisonnable. C’est le « sweet spot » entre biais (underfitting) et variance (overfitting).

La règle pratique Si votre modèle ne performe pas bien sur le training set : c’est un problème d’underfitting. Complexifiez le modèle ou améliorez les features. Si votre modèle performe bien sur le training set mais pas sur le validation set : c’est un problème d’overfitting. Régularisez ou ajoutez des données. Cette distinction simple guide 90% des décisions de debug en ML.

Exemples concrets

Régression linéaire sur des prix immobiliers. Le prix d’un bien dépend de la surface, de la localisation, de l’étage, de l’état du bien et de dizaines d’autres facteurs avec des interactions complexes. Un modèle de régression linéaire simple (prix = a × surface + b) underfitte : il ne capture pas les effets de localisation, les interactions surface/étage, ni les non-linéarités (un appartement de 200m² ne vaut pas deux fois un 100m² dans le même immeuble). Passer à un gradient boosting ou un réseau de neurones avec des features enrichies résout le problème.

Petit réseau de neurones pour ImageNet. Un réseau avec 2 couches convolutives et 64 filtres ne peut pas classifier correctement 1 000 catégories d’images dans ImageNet. Le problème est d’une complexité qui nécessite des architectures profondes (ResNet, EfficientNet, Vision Transformer) avec des dizaines de couches. Ici, l’underfitting est structural : le modèle n’a pas la capacité de représenter la diversité des classes.

LLM fine-tuné trop brièvement. Un LLM fine-tuné pendant seulement 1 epoch sur un petit dataset d’instructions peut ne pas avoir suffisamment absorbé les patterns du fine-tuning. Il répond de façon générique (comme avant le fine-tuning) au lieu de suivre les instructions spécifiques. Augmenter à 3-5 epochs résout généralement ce type d’underfitting temporaire, sauf si le dataset de fine-tuning est lui-même insuffisant.

Modèle de NLP sans embeddings pré-entraînés. Un classifieur de texte entraîné from scratch (embeddings aléatoires) sur 500 exemples underfittera probablement : il n’a pas assez de données pour apprendre simultanément les représentations de mots et la tâche de classification. Utiliser des embeddings pré-entraînés (BERT, sentence-transformers) fournit des représentations linguistiques riches qui éliminent cet underfitting.


Questions fréquentes sur l’underfitting

Comment distinguer l’underfitting d’un problème de données ?

Si un modèle complexe (réseau de neurones profond, gradient boosting avec beaucoup d’arbres) ne parvient pas non plus à obtenir de bonnes performances sur le training set, le problème vient probablement des données, pas du modèle : labels erronés, features non pertinentes, bruit excessif, ou le problème est intrinsèquement difficile à résoudre avec les features disponibles. Testez avec un modèle de complexité maximale. S’il n’arrive pas à overfitter le training set, le problème est dans les données ou la formulation du problème, pas dans le modèle.

L’underfitting est-il moins grave que l’overfitting ?

Pas nécessairement. L’underfitting est plus facile à diagnostiquer (les performances sont mauvaises partout, pas seulement en production) mais tout aussi coûteux. Un modèle qui n’apprend rien est inutile, et le temps passé à le développer est gaspillé. L’overfitting est plus insidieux car il donne l’illusion du succès pendant le développement. Mais en termes d’impact métier, les deux sont également problématiques.

Peut-on avoir de l’underfitting et de l’overfitting en même temps ?

Oui, dans certains cas. Un modèle peut underfitter certaines parties de l’espace des données (classes rares, régions peu couvertes) tout en overfittant d’autres (classes majoritaires, patterns spécifiques du training set). C’est courant avec les datasets déséquilibrés : le modèle mémorise les cas fréquents mais ne capture pas les patterns des cas rares. La solution passe par le rééquilibrage des classes et l’analyse des performances par sous-groupe.

Le transfer learning peut-il résoudre l’underfitting ?

Souvent, oui. Le transfer learning fournit au modèle des features génériques pré-apprises (représentations visuelles, embeddings linguistiques) qui compensent le manque de données ou de complexité. Un modèle pré-entraîné sur ImageNet contient déjà une compréhension riche des formes, textures et objets, ce qui lui permet de bien performer même fine-tuné sur un petit dataset. C’est la solution standard quand l’underfitting provient d’un dataset trop petit pour entraîner un modèle complexe from scratch.

Comment régler le learning rate pour éviter l’underfitting ?

Un learning rate trop faible cause un underfitting apparent (le modèle converge trop lentement). Commencez par le LR par défaut de votre optimizer (1e-3 pour Adam, 1e-2 pour SGD). Si la training loss descend très lentement, augmentez le LR. Si elle oscille ou diverge, diminuez-le. La technique « LR finder » (augmenter progressivement le LR pendant quelques batches et observer à quel point la loss commence à monter) est un excellent outil pour trouver la plage optimale. Pour le fine-tuning de modèles pré-entraînés, des LR beaucoup plus faibles sont nécessaires (1e-5 à 5e-5 typiquement).

Polydesk.ai — Footer