Double Descent
Découvre comment la double descente fait d’abord baisser, puis augmenter, puis baisser à nouveau l’erreur du modèle à mesure que sa capacité augmente. Explore le seuil d’interpolation, des exemples concrets et les stratégies d’évaluation.
La double descente est un phénomène en apprentissage automatique où l’erreur sur des données non vues diminue, augmente, puis diminue à nouveau à mesure que la capacité du modèle augmente. Intuitivement, un modèle peut empirer avant de s’améliorer : un modèle de complexité modérée peut avoir du mal à généraliser, tandis qu’un modèle beaucoup plus grand peut ajuster les exemples d’entraînement tout en prédisant avec précision de nouveaux exemples.
Fonctionnement de la double descente#
Le compromis biais-variance bien connu suggère une courbe d’erreur en U. Les modèles simples sous-ajustent, car ils ne peuvent pas saisir les motifs importants. Accroître la complexité améliore d’abord les prédictions, mais une flexibilité excessive peut les rendre sensibles aux exemples d’entraînement choisis. La double descente complète ce tableau par une seconde amélioration après le pic d’erreur ; elle ne remet pas en cause la distinction fondamentale entre biais et variance. (scikit-learn.org)
Le point de bascule est le seuil d’interpolation : le point où un modèle devient capable d’ajuster tous les exemples d’entraînement, autrement dit d’atteindre une erreur d’entraînement approximativement nulle. Près de ce seuil, l’ajustement d’étiquettes bruitées ou incorrectes peut produire des prédictions instables. Au-delà, un modèle surparamétré dispose de plus de flexibilité que nécessaire pour ajuster les exemples, ce qui ouvre la voie à plusieurs solutions possibles. Certaines généralisent mieux que d’autres. (openai.com)
Imagine que tu relies des points de mesure dispersés. Une courbe passe par tous les points, mais forme des angles prononcés entre eux ; une autre passe aussi par tous les points, tout en se comportant de façon plus régulière ailleurs. Cette explication visuelle de la double descente montre pourquoi des performances d’entraînement identiques peuvent masquer des comportements prédictifs très différents. Une capacité supérieure permet de trouver de meilleures solutions, mais ne garantit pas que l’entraînement les trouvera. (mlu-explain.github.io)
Variantes et concepts associés#
La double descente selon le modèle concerne les changements de capacité, par exemple l’augmentation de la largeur du réseau. La double descente selon les époques concerne la durée d’entraînement : l’erreur sur les données de validation diminue, augmente, puis diminue à nouveau. Une époque correspond à un passage sur l’ensemble de données d’entraînement. L’explication de la double descente profonde montre également comment une variation de la taille du jeu de données peut déplacer le seuil d’interpolation et parfois dégrader temporairement les performances pour une taille de modèle fixe. Ce n’est pas une raison pour écarter des données utiles. (openai.com)
La double descente diffère du surapprentissage, qui consiste à ajuster le modèle à des détails propres aux données d’entraînement au détriment de la généralisation. Le surapprentissage peut expliquer la partie croissante de la courbe ; la double descente décrit le schéma plus général de diminution, d’augmentation, puis de nouvelle diminution. Une précision parfaite sur les données d’entraînement ne suffit pas, à elle seule, à établir une bonne ou une mauvaise généralisation. (scikit-learn.org)
Elle diffère aussi de la régularisation, une stratégie d’entraînement qui contraint la solution apprise. Par exemple, la régularisation L2 pénalise les poids élevés. Le nombre de paramètres ne décrit donc pas entièrement la complexité effective d’un modèle. Le bruit dans les étiquettes, l’optimisation et les paramètres d’entraînement influencent l’apparition d’une courbe de double descente marquée. (developers.google.com)
Applications concrètes#
Ces scénarios illustratifs montrent pourquoi ce phénomène est important, sans supposer que tous les modèles en production le présentent :
- Détection de défauts industriels : une équipe compare des réseaux qui détectent les rayures sur des composants. Un réseau de taille moyenne peut produire plus de fausses alertes que des modèles plus petits et plus grands. Si des évaluations répétées révèlent une double descente, interrompre les comparaisons de modèles dès la première dégradation pourrait écarter un meilleur système d’inspection.
- Reconnaissance des stocks en magasin : un classificateur d’images de rayons rencontre des étiquettes de produits incohérentes. Pendant l’entraînement, l’erreur de validation peut augmenter avant de diminuer à nouveau. Mettre fin à chaque expérience à la première hausse pourrait faire manquer une amélioration ultérieure ; prolonger aveuglément l’entraînement pourrait au contraire gaspiller des ressources. La comparaison des points de contrôle aide à distinguer ces possibilités.
Évaluation et entraînement pratiques#
Repère ce phénomène à l’aide de comparaisons contrôlées, et non d’un seul essai décevant. Fais varier séparément la capacité du modèle ou la durée d’entraînement, conserve des partitions de données comparables et répète les expériences avec différentes graines aléatoires. Trace ensemble l’erreur d’entraînement et celle sur les données de validation en suivant les principes des courbes de validation. Si tu traces la précision plutôt que l’erreur, le sens de la courbe est inversé. (scikit-learn.org)
Utilise la validation croisée lorsque c’est approprié et réserve un jeu de test intact pour l’évaluation finale. Évite la fuite de données, qui survient lorsque des informations issues des données d’évaluation sont utilisées pendant l’entraînement ou la sélection du modèle. L’arrêt anticipé reste utile, mais sa patience — le nombre d’évaluations autorisées sans amélioration — doit tenir compte des objectifs de l’expérience plutôt que d’une forme de courbe présumée. (scikit-learn.org)
Pour un processus pratique d’évaluation Ultralytics YOLO, installe ultralytics avec pip install ultralytics. Cet exemple utilise YOLO26, le mode d’entraînement documenté et le mode de validation. (docs.ultralytics.com)
from ultralytics import YOLO
if __name__ == "__main__":
model = YOLO("yolo26n.pt")
# A small dataset keeps this workflow demonstration lightweight.
model.train(data="coco8.yaml", epochs=3)
# Evaluate images held out from training.
metrics = model.val(data="coco8.yaml")
print(f"Validation mAP50-95: {metrics.box.map:.3f}")La sortie correspond à la précision moyenne moyenne sur différents seuils de chevauchement de détection ; plus elle est élevée, mieux c’est. COCO8 est un jeu de données destiné à vérifier un processus, et non une preuve de double descente. Pour établir l’existence du phénomène, il faut mener une expérience contrôlée plus vaste sur des données représentatives. En pratique, il faut mesurer la généralisation plutôt que supposer que des modèles plus grands ou un entraînement plus long sont toujours bénéfiques — ou néfastes. (docs.ultralytics.com)









