Comment utiliser correctement l'arrêt précoce pour former un réseau neuronal profond?

20

J'ai un modèle de réseau neuronal profond et je dois le former sur mon ensemble de données qui comprend environ 100 000 exemples, mes données de validation contiennent environ 1 000 exemples. Parce qu'il faut du temps pour former chaque exemple (environ 0,5 s pour chaque exemple) et afin d'éviter le surapprentissage, je voudrais appliquer un arrêt précoce pour éviter un calcul inutile. Mais je ne sais pas comment former correctement mon réseau de neurones avec un arrêt précoce, plusieurs choses que je ne comprends pas très bien maintenant:

  • Quelle serait une bonne fréquence de validation? Dois-je vérifier mon modèle sur les données de validation à la fin de chaque époque? (La taille de mon lot est 1)

  • Est-il vrai que les premières époques pourraient donner un résultat pire avant qu'il ne commence à converger vers une meilleure valeur? Dans ce cas, devons-nous former notre réseau pendant plusieurs époques avant de vérifier un arrêt précoce?

  • Comment gérer le cas où la perte de validation peut monter et descendre? Dans ce cas, un arrêt précoce pourrait empêcher mon modèle d'apprendre davantage, non?

Merci d'avance.

The Lazy Log
la source
Je recommande fortement une taille de lot supérieure à un. Les tailles habituelles sont 32, 64 et 128.
ComputerScientist

Réponses:

20

Quelle serait une bonne fréquence de validation? Dois-je vérifier mon modèle sur les données de validation à la fin de chaque époque? (La taille de mon lot est 1)

Il n'y a pas de règle d'or, le calcul de l'erreur de validation après chaque époque est assez courant. Étant donné que votre ensemble de validation est beaucoup plus petit que votre ensemble d'entraînement, cela ne ralentira pas beaucoup la formation.

Est-il vrai que les premières époques pourraient donner un résultat pire avant qu'il ne commence à converger vers une meilleure valeur?

Oui

Dans ce cas, devons-nous former notre réseau pendant plusieurs époques avant de vérifier un arrêt précoce?

Vous pourriez, mais le problème est de savoir combien d'époques devez-vous ignorer. Donc, dans la pratique, la plupart du temps, les gens ne sautent aucune époque.

Comment gérer le cas où la perte de validation peut monter et descendre? Dans ce cas, un arrêt précoce pourrait empêcher mon modèle d'apprendre davantage, non?

Les gens définissent généralement une patience, c'est-à-dire le nombre d'époques à attendre avant l'arrêt anticipé s'il n'y a pas de progrès sur l'ensemble de validation. La patience est souvent définie entre 10 et 100 (10 ou 20 est plus courant), mais cela dépend vraiment de votre ensemble de données et de votre réseau.

Exemple avec patience = 10:

entrez la description de l'image ici

Franck Dernoncourt
la source
Doit-on utiliser le modèle à l'arrêt précoce ou les patienceépoques du modèle à l' arrêt (le «meilleur» sans autre amélioration)?
stackunderflow
2
@displayname patience époques avant de s'arrêter
Franck Dernoncourt
11

Je suis récemment tombé sur un article intitulé "Arrêt anticipé - mais quand?" par Lutz Prechelt qui a de nombreux exemples de la façon d'utiliser l'arrêt précoce avec des explications claires de ce que chacun fait et des formules pour eux.

J'espère que jeter un œil à cela peut aider.

Pro Q
la source
Le document est écrit dans un style étrange mais les informations ont été utiles.
Josiah
3

Pour ajouter d'autres excellentes réponses, vous pouvez également - ne pas vous arrêter. D'habitude je:

  • exécuter NN pendant beaucoup plus de temps, je l'aurais pensé est raisonnable,
  • enregistrer les poids du modèle toutes les N époques, et
  • quand je vois que la perte d'entraînement s'est stabilisée, je choisis simplement le modèle avec la perte de validation la plus faible.

Bien sûr, cela n'a de sens que lorsque vous ne payez pas à la minute (ou lorsque le coût est suffisamment faible) et lorsque vous pouvez arrêter la formation manuellement. L'avantage est qu'il est beaucoup plus facile de déterminer la plus faible erreur de validation avec le recul.

johndodo
la source
1
Je fais ça aussi. Bien que, comme vous, je sache que c'est un luxe. Lorsque les modèles ont commencé à prendre beaucoup de place, j'ai constaté qu'en utilisant les chiffres de perte et de score f précédents, je pouvais déterminer par programme quand supprimer également les modèles précédents - vous vous retrouvez donc avec une fenêtre mobile des meilleurs modèles candidats qui consomment à peu près beaucoup d'espace sur le disque dur car ils en valent la peine.
QA Collective du