Early Stopping
L’arrêt anticipé met fin à l’entraînement lorsque les performances sur les données de validation stagnent, réduisant les calculs inutiles et le surapprentissage tout en préservant le meilleur point de contrôle du modèle.
L’arrêt anticipé est une technique d’entraînement qui met fin à une exécution itérative d’apprentissage automatique lorsqu’une mesure de performance surveillée cesse de s’améliorer. Il laisse les performances sur les données de validation déterminer la durée de l’apprentissage, réduisant les calculs superflus et limitant le surapprentissage. En pratique, l’entraînement s’arrête lorsque les étapes supplémentaires n’améliorent plus la capacité du modèle à traiter des exemples mis à l’écart. En dehors de l’apprentissage automatique, « s’arrêter plus tôt » signifie simplement mettre fin à une activité avant la date prévue.
Fonctionnement de l’arrêt anticipé#
Pendant l’entraînement, un optimiseur met à jour un modèle à l’aide des données d’entraînement. À intervalles réguliers, le modèle est évalué sur des données de validation distinctes. La perte d’entraînement peut continuer à diminuer alors que les performances sur les données de validation se détériorent : c’est un signe de surapprentissage, où le modèle s’adapte de plus en plus aux détails propres à ses exemples d’entraînement. L’arrêt anticipé limite ce processus en choisissant le moment de l’arrêt à partir des performances sur les données mises à l’écart.
Une implémentation classique suit le meilleur score de validation, enregistre les poids du modèle correspondants et compte les vérifications consécutives sans amélioration suffisante. Une amélioration remet le compteur à zéro ; lorsque la patience configurée est atteinte, l’entraînement prend fin. Restaurer le meilleur point de contrôle préserve le meilleur résultat de validation observé, qui peut être atteint avant la dernière étape d’entraînement.
Nelson Morgan et Hervé Bourlard ont introduit l’arrêt fondé sur la validation pour les réseaux neuronaux à propagation avant dans leurs travaux de 1989 sur la généralisation et l’estimation des paramètres. Leurs expériences comprenaient la classification de la parole et ont montré qu’il était possible de déterminer la durée d’entraînement en surveillant des données indépendantes.
Métriques, patience et meilleurs poids#
La règle d’arrêt dépend de plusieurs paramètres :
- Métrique surveillée : la perte de validation mesure l’erreur de prédiction et doit être minimisée ; la précision de validation mesure les prédictions correctes et doit être maximisée.
- Patience et durée d’entraînement : la patience définit le nombre de vérifications infructueuses tolérées pendant l’entraînement. Une époque correspond à un passage complet sur le jeu de données d’entraînement.
- Seuil d’amélioration : Keras appelle cela
min_delta, le changement absolu minimal considéré comme un progrès. Son paramètrerestore_best_weights=Truerestaure les poids associés à la meilleure valeur surveillée. - Fréquence des vérifications de validation : PyTorch Lightning compte la patience en nombre de vérifications de validation. Avec une vérification toutes les dix époques et une patience de trois, trois vérifications infructueuses sont autorisées sur trente époques après la meilleure vérification.
La patience et les seuils d’amélioration sont des hyperparamètres : des paramètres définis en dehors du processus de mise à jour des poids. Une patience plus faible met fin plus rapidement aux exécutions qui stagnent ; une patience plus élevée permet des plateaux temporaires plus longs. Une période de préchauffage retarde la surveillance, le temps que l’apprentissage initial se stabilise. Ces paramètres interagissent avec le taux d’apprentissage, qui contrôle l’amplitude des mises à jour de l’optimisation.
Applications et exemple exécutable#
L’arrêt anticipé s’applique aussi bien aux réseaux neuronaux qu’aux arbres entraînés par gradient boosting. Dans le gradient boosting avec scikit-learn, chaque étape ajoute un arbre et l’arrêt fondé sur la validation contrôle le nombre d’étapes. L’exemple California Housing utilise validation_fraction pour réserver des données et n_iter_no_change pour arrêter l’entraînement lorsque les progrès sur les données de validation stagnent.
L’exemple suivant utilise le jeu de données sur le diabète inclus dans scikit-learn et affiche le nombre d’étapes de boosting effectivement entraînées :
from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor
X, y = load_diabetes(return_X_y=True)
# Reserve an internal validation split and monitor progress.
model = GradientBoostingRegressor(
n_estimators=1000,
validation_fraction=0.2,
n_iter_no_change=10,
random_state=42,
)
model.fit(X, y)
print(f"Boosting stages fitted: {model.n_estimators_}/1000")Le nombre d’étapes entraînées indique à quel moment le critère d’arrêt a mis fin à la construction des arbres, par rapport à la limite de 1 000 étapes.
Ultralytics YOLO applique l’arrêt anticipé pendant l’entraînement du modèle, notamment pour YOLO26, au moyen de l’argument patience, qui compte les époques sans amélioration de la valeur de performance sur les données de validation. Pour la détection, cette valeur repose sur le mAP50–95, et l’entraîneur enregistre le meilleur point de contrôle sous le nom best.pt.
Arrêt anticipé et concepts associés#
L’arrêt anticipé est une forme de régularisation qui contrôle la durée de l’entraînement. La décroissance des poids pénalise les poids élevés, tandis que le dropout désactive aléatoirement des unités pendant l’entraînement. Ces mécanismes peuvent être utilisés conjointement. Un arrêt trop précoce entraîne un sous-apprentissage, laissant des motifs utiles non appris.
La sauvegarde de points de contrôle enregistre les états du modèle ; l’arrêt anticipé détermine quand l’optimisation prend fin. La validation croisée fait tourner les partitions mises à l’écart pour évaluer les choix de modèle, tandis que des données de test distinctes servent à l’évaluation finale. Comme la décision d’arrêt sélectionne un modèle à partir des résultats de validation, le score de validation du point de contrôle sélectionné fait partie de la sélection du modèle.
Dans Keras, restore_best_weights utilise False par défaut ; ainsi, activer uniquement l’arrêt anticipé laisse au modèle les poids de la dernière étape.










