3 votes

Tensorflow : Comment l'ensemble de validation améliore la courbe d'apprentissage

Dans le tutoriel pour MNIST Il apparaît que l'ensemble de données est divisé en trois ensembles différents : (1) ensembles_de_donnees.train , (2) data_sets.validation et (3) data_sets.test . Cependant, dans la boucle d'apprentissage, seule la ensembles_de_donnees.train est utilisé pour la formation.

# Start the training loop.
for step in xrange(FLAGS.max_steps):
  start_time = time.time()

  # Fill a feed dictionary with the actual set of images and labels
  # for this particular training step.
  feed_dict = fill_feed_dict(data_sets.train,
                             images_placeholder,
                             labels_placeholder)

Et chaque (step + 1) % 1000 == 0 or (step + 1) == FLAGS.max_steps le modèle est évalué de manière à obtenir trois évaluations différentes : (1) évaluation des données d'apprentissage, (2) évaluation des données de validation et (3) évaluation des données de test.

En général, dans l'apprentissage automatique, l'ensemble de validation est utilisé pour affiner les paramètres du modèle et améliorer la courbe d'apprentissage.

Comment l'ensemble de validation est-il utilisé dans Tensorflow afin d'améliorer la courbe d'apprentissage ?

2voto

Thomas Pinetz Points 4234

Parce que la formation en apprentissage profond prend tellement de temps, il est beaucoup trop long d'utiliser quelque chose comme la recherche de grille ou la recherche aléatoire pour l'optimisation des hyperparamètres.

L'ensemble de validation est principalement utilisé pour détecter les surajustements sur l'ensemble de données de formation pendant la formation. Le modèle et les hyperparamètres sont ensuite ajustés en fonction de l'ensemble de validation. Pour autant que je sache, cela se fait manuellement.

L'ensemble de test est un élément qui n'a aucune influence sur la conception de l'algorithme visant à estimer les performances du classificateur sur de nouvelles données inédites.

Editer :

Certaines techniques utilisent l'ensemble de validation, comme EarlyStopping ( https://keras.io/callbacks/#earlystopping ) ou en réduisant le taux d'apprentissage lorsque l'erreur de validation n'a pas diminué pendant x époques ( https://keras.io/callbacks/#reducelronplateau ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X