Pour détecter le surapprentissage (overfitting) pendant l’entraînement d’un modèle, vous pouvez créer un callback personnalisé qui surveille les métriques de performance sur les données d’entraînement et de validation. Si la performance sur les données de validation commence à se dégrader alors que la performance sur les données d’entraînement continue de s’améliorer, cela peut indiquer un surapprentissage.
Voici un exemple de callback personnalisé pour détecter le surapprentissage :
Étape 1 : Importer les bibliothèques nécessaires
Tout d’abord, assurez-vous d’importer les bibliothèques nécessaires.
Étape 2 : Définir le callback personnalisé
Définissez une classe de callback personnalisée en héritant de tf.keras.callbacks.Callback. Vous pouvez surcharger les méthodes on_epoch_end pour surveiller les métriques de performance.
Étape 3 : Définir le modèle
Définissez votre modèle. Pour cet exemple, nous utiliserons un modèle simple avec quelques couches de convolution et de dense.
Étape 4 : Instancier et compiler le modèle
Instanciez et compilez votre modèle.
Étape 5 : Préparer les données
Préparez vos données d’entraînement et de test. Pour cet exemple, nous utiliserons le jeu de données MNIST.
Étape 6 : Entraîner le modèle avec le callback personnalisé
Entraînez votre modèle en utilisant le callback personnalisé pour détecter le surapprentissage.
Code complet
Voici le code complet pour définir un modèle, préparer les données, définir le callback personnalisé pour détecter le surapprentissage, et entraîner le modèle avec ce callback.
Explication des paramètres du callback
patience : Le nombre d’époques sans amélioration après lesquelles l’entraînement sera arrêté.
delta : La tolérance pour déterminer si la perte de validation a augmenté de manière significative.
best_val_loss : La meilleure perte de validation observée jusqu’à présent.
wait : Le nombre d’époques consécutives sans amélioration de la perte de validation.
En utilisant ce callback personnalisé, vous pouvez détecter le surapprentissage et arrêter l’entraînement prématurément pour éviter de surajuster le modèle aux données d’entraînement.