Pourquoi un modèle d'IA sans erreur à l'entraînement peut échouer ensuite

Baies de serveurs de la Wikimedia Foundation photographiées en 2012.

Serveurs de la Wikimedia Foundation, photographie d'archive du 16 juillet 2012. Photo : Wikimedia Foundation Servers-8055 02, © Victorgrigas / Wikimedia Commons, CC BY-SA 3.0. Image redimensionnée et compressée.

Reproduire parfaitement des exemples ne suffit pas à bien prédire les suivants. Derrière ce piège se trouve le compromis entre biais et variance, qui explique pourquoi une erreur d'entraînement peut être acceptable et pourquoi le vrai examen doit porter sur des cas encore inconnus.

Imaginons une équipe qui veut prévoir le temps de réponse d'un serveur selon sa charge. Elle rassemble des mesures, puis entraîne un modèle à retrouver la relation entre les deux. Sur un graphique, la charge figure à l'horizontale et le temps de réponse à la verticale. Chaque mesure devient un point, le modèle dessine une courbe.

Un premier résultat paraît imbattable : la courbe passe exactement par tous les points. Aucune erreur sur les exemples fournis. Pourtant, au relevé suivant, elle peut annoncer un temps de réponse très éloigné de la mesure réelle. Qu'a-t-elle appris ? Peut-être la relation recherchée. Peut-être aussi les accidents particuliers de cette série. La perfection sur les données connues ne tranche pas entre les deux.

Trop rigide pour comprendre, trop souple pour généraliser

Prenons d'abord le problème dans l'autre sens. L'équipe impose une droite alors que, dans notre exemple, le serveur ralentit brutalement à l'approche de la saturation. Même bien placée, cette droite ne peut pas représenter le coude. Le modèle se trompe déjà sur les mesures qui lui servent à apprendre, parce que la forme autorisée est trop rigide. C'est le sous-apprentissage.

Autorisons maintenant une courbe beaucoup plus flexible. Elle peut représenter le ralentissement, mais aussi se tordre pour rejoindre chaque mesure isolée. Un temps de réponse inhabituel suffit alors à créer une bosse qui ne réapparaîtra pas nécessairement lors des prochains relevés. Le modèle ajuste sa prédiction à des particularités de l'échantillon au détriment de sa capacité à généraliser, c'est-à-dire à réussir sur de nouveaux cas. C'est le surapprentissage, illustré dans les exemples de courbes de validation de scikit-learn.

Le serveur rappelle aussi pourquoi toutes les erreurs ne disparaissent pas forcément. À charge mesurée identique, son temps de réponse peut varier avec des facteurs absents des données fournies au modèle. Avec cette seule information, une part de la variation reste imprévisible. Chercher à la reproduire coûte que coûte revient à transformer des fluctuations en règles.

Biais et variance : ce qui se passe quand les exemples changent

Pour comprendre le compromis, imaginons que l'équipe puisse recommencer son entraînement avec de nombreuses séries de mesures comparables. On examine alors deux choses : ce que les modèles prédisent en moyenne et combien leurs prédictions changent d'une série à l'autre.

Le biais désigne l'écart entre cette prédiction moyenne et la meilleure prédiction possible avec les informations disponibles. Ici, le mot ne désigne pas un préjugé social. Notre droite trop rigide illustre un biais élevé : même en changeant les exemples d'entraînement, elle manque la courbure du phénomène.

La variance, elle, décrit la sensibilité des prédictions au choix des exemples. Si quelques mesures différentes suffisent à remodeler fortement la courbe, la prédiction pour une même charge devient instable. Ce n'est donc pas la dispersion des temps de réponse du serveur, mais celle des prédictions obtenues après différents entraînements. La présentation de la décomposition biais-variance par scikit-learn distingue ces deux composantes du bruit qui reste imprévisible.

Dans notre exemple, davantage de souplesse aide à représenter le ralentissement, mais peut aussi rendre le modèle plus sensible aux fluctuations. Tout l'enjeu consiste à conserver la première capacité sans laisser la seconde dicter les prévisions.

Le modèle doit passer un examen qu'il n'a pas préparé

Comment choisir, sans disposer de toutes ces séries imaginaires ? En séparant les rôles des données réellement disponibles.

Une partie sert à l'entraînement, pour apprendre la relation entre charge et temps de réponse. Une autre sert à la validation, pour comparer les modèles et leurs réglages sur des exemples qu'ils n'ont pas utilisés pour cet apprentissage. L'équipe peut ainsi confronter la droite, la courbe très flexible et les options intermédiaires.

Des erreurs importantes dès l'entraînement peuvent signaler un modèle trop limité. Une très faible erreur d'entraînement accompagnée d'une erreur nettement plus élevée en validation signale plutôt un surapprentissage. Ce sont des indices pour orienter le diagnostic, pas des mesures directes du biais et de la variance définis plus haut.

Mais la validation finit elle aussi par influencer le choix. À force d'essayer des réglages et de retenir celui qui y réussit le mieux, l'équipe utilise ses résultats pour améliorer le système. Il faut donc réserver un jeu de test final, resté à l'écart de l'apprentissage comme du choix des réglages, afin d'évaluer la solution retenue. C'est la distinction explicitée dans la documentation de scikit-learn sur l'évaluation des modèles.

Si l'équipe consulte ce test après chaque modification pour décider de la suivante, il cesse de jouer ce rôle indépendant. Le bon score n'a plus la même force : il porte sur un examen auquel on s'est progressivement adapté.

Accepter une courbe moins parfaite pour mieux prévoir

La régularisation offre un moyen de limiter les ajustements excessifs. Au lieu de chercher uniquement à réduire les erreurs sur les exemples connus, l'apprentissage tient aussi compte d'une contrainte ou d'une pénalité. Certaines méthodes pénalisent ainsi les coefficients trop grands, ces nombres qui règlent le poids des informations dans le calcul de la prédiction. Le modèle ne peut alors plus s'ajuster aussi librement aux fluctuations.

Cette contrainte peut améliorer les prévisions malgré une moins bonne réussite à l'entraînement. Trop forte, elle rend de nouveau le modèle incapable de représenter la relation utile. L'exemple de régularisation proposé par scikit-learn montre ce passage entre surapprentissage et sous-apprentissage. La validation sert précisément à choisir le niveau adapté. Davantage de données peut aussi réduire l'instabilité, mais ne transformera pas notre droite en courbe capable de suivre le coude.

Faut-il alors se méfier systématiquement des modèles complexes ? Non. Les travaux de Belkin et de ses coauteurs sur la « double descente » montrent que certains modèles peuvent de nouveau mieux généraliser lorsque leur capacité augmente au-delà du seuil permettant de reproduire parfaitement l'entraînement. Une erreur nulle n'est donc pas, à elle seule, une preuve de surapprentissage.

Pour notre équipe, le critère décisif reste le temps de réponse prévu sur les mesures tenues à l'écart. Une courbe qui manque quelques points connus mais prédit mieux ces nouveaux relevés est plus utile qu'une courbe impeccable sur son passé. Face à une performance spectaculaire, la question à poser est alors simple : quels exemples le modèle et ceux qui l'ont réglé n'avaient-ils encore jamais utilisés ?