Qu'est-ce que Surapprentissage (overfitting) ?
État dans lequel un modèle a mémorisé jusqu'aux détails des données d'apprentissage et au bruit qu'elles contiennent par hasard, si bien que son erreur est faible sur ces données mais élevée sur de nouvelles données (erreur de généralisation). Il survient facilement quand un modèle complexe à nombreux paramètres est entraîné sur peu de données. On le limite en augmentant les données, en simplifiant le modèle, par la régularisation, le dropout ou l'arrêt précoce.
Nom japonais: 過学習
« Surapprentissage (overfitting) » apparaît dans 3 questions d'entraînement réparties sur 1 thèmes, dont Bases de l'apprentissage automatique.
Domaine: Bases de l'apprentissage automatique
Comment le repérer
On repère le surapprentissage en comparant les performances sur les données d'apprentissage à celles obtenues sur des données de validation mises de côté. Sur une courbe d'apprentissage, qui montre les pertes sur les données d'apprentissage et de validation en fonction du nombre de passes d'apprentissage, la perte d'apprentissage continue de baisser, tandis que la perte de validation se met à remonter à partir d'un certain moment. L'état où cet écart se creuse est le surapprentissage. À l'inverse, si les deux pertes restent élevées sans baisser, il s'agit d'un sous-apprentissage : le modèle, trop simple par exemple, ne capture pas la tendance.
Causes
Si les degrés de liberté du modèle (nombre de paramètres, profondeur d'un arbre de décision, etc.) sont grands par rapport à la quantité de données, le modèle peut s'ajuster non seulement à la tendance réelle, mais aussi au bruit que les données contiennent par hasard. Par exemple, un polynôme de degré 9 ajusté à 10 points d'abscisses différentes peut passer exactement par tous les points, mais il ondule fortement entre eux et prédit très mal les nouveaux points. Régler à de nombreuses reprises les hyperparamètres en regardant les mêmes données améliore aussi les performances apparentes et provoque le surapprentissage.
Comment le limiter
Le moyen le plus sûr est d'augmenter les données d'apprentissage. Si c'est impossible, on augmente le volume apparent des données par augmentation de données, par exemple en faisant pivoter ou en retournant les images. Du côté du modèle, on peut réduire le nombre de paramètres pour le simplifier, utiliser la régularisation, qui ajoute à la perte une pénalité liée à la taille des poids, le dropout, qui désactive au hasard des neurones pendant l'apprentissage, ou l'arrêt précoce, qui stoppe l'apprentissage quand la perte de validation commence à remonter. L'apprentissage ensembliste, qui fait la moyenne des prédictions de plusieurs modèles, réduit aussi la dispersion des prédictions.
Questions fréquentes
Quelle est la différence entre surapprentissage et sous-apprentissage ?
Le surapprentissage est l'état où le modèle s'ajuste trop aux données d'apprentissage, si bien que l'erreur est élevée sur de nouvelles données alors qu'elle est faible sur les données d'apprentissage. Le sous-apprentissage est l'état où l'erreur est élevée même sur les données d'apprentissage, parce que le modèle est trop simple ou insuffisamment entraîné. En termes de biais et de variance, le sous-apprentissage correspond à un biais élevé et le surapprentissage à une variance élevée.
Une exactitude de 100 % sur les données d'apprentissage signifie-t-elle qu'il y a surapprentissage ?
Cela ne suffit pas à le dire. Si les performances sont aussi suffisantes sur les données de validation et de test, il n'y a pas de problème. On soupçonne un surapprentissage quand l'écart de performances entre les données d'apprentissage et de validation est grand.