Existe-t-il des règles pour choisir la taille d'un mini-lot?

21

Lors de la formation de réseaux de neurones, un hyperparamètre est de la taille d'un mini-lot. Les choix courants sont 32, 64 et 128 éléments par mini-lot.

Existe-t-il des règles / directives sur la taille d'un mini-lot? Des publications qui étudient l'effet sur la formation?

Martin Thoma
la source
Autre que la mémoire?
Ehsan M. Kermani
Oui. Par exemple, y a-t-il une publication qui dit "plus la taille du lot est grande, mieux c'est" (tant qu'elle tient en mémoire)?
Martin Thoma
@ EhsanM.Kermani Je pense que cela compte. J'ai fait quelques essais sur CIFAR-100 et j'obtiens des résultats différents en fonction de la taille du lot (avec un arrêt précoce afin que le surapprentissage ne soit pas un problème, espérons-le)
Martin Thoma
3
Plus gros calcule plus vite (est efficace), plus petit converge plus vite, se généralise mieux; cf. Formation efficace en mini-lots pour l'optimisation stochastique et cette étude RNN . Il existe un point idéal que vous trouvez empiriquement pour votre problème.
Emre
2
Cet article le plus perspicace de Blei et al vient de sortir: La descente du gradient stochastique comme inférence bayésienne approximative
Emre

Réponses:

22

Dans On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima, il y a quelques déclarations intéressantes:

Il a été observé dans la pratique que lors de l'utilisation d'un lot plus important, il y a une dégradation de la qualité du modèle, mesurée par sa capacité à généraliser [...]

les méthodes à grande échelle tendent à converger vers des minimiseurs nets des fonctions de formation et de test - et comme il est bien connu, les minima nets conduisent à une généralisation plus faible. n. En revanche, les méthodes de petits lots convergent de manière cohérente vers des minimiseurs plats, et nos expériences soutiennent une opinion généralement partagée selon laquelle cela est dû au bruit inhérent à l'estimation du gradient.

De ma thèse de master : D'où le choix de la taille du mini-batch qui influence:

  • Temps de formation jusqu'à la convergence : il semble y avoir un point idéal. Si la taille du lot est très petite (par exemple 8), ce temps augmente. Si la taille du lot est énorme, elle est également supérieure au minimum.
  • Temps d'entraînement par époque : les calculs plus volumineux sont plus rapides (efficaces)
  • Qualité du modèle résultante : plus la qualité est basse, mieux c'est grâce à une meilleure généralisation (?)

Il est important de noter les interactions hyperparamétriques: la taille des lots peut interagir avec d'autres hyperparamètres, notamment le taux d'apprentissage. Dans certaines expériences, cette interaction peut rendre difficile l'isolement de l'effet de la taille du lot seul sur la qualité du modèle. Une autre interaction forte est l'arrêt précoce de la régularisation.

Voir également

Martin Thoma
la source
@NeilSlater Voulez-vous ajouter votre commentaire à ma réponse (maintenant wiki communautaire)?
Martin Thoma
J'aime la réponse comme générale. De plus, j'apprécierais d'avoir un numéro sur ce qui est très petit , énorme et mini-lot dans un exemple spécifique.
So S
@SoS mini-batch n'est qu'un terme. Le "mini" ne fait pas référence à une taille spécifique, mais cela signifie seulement qu'il y a plus d'un exemple et moins que l'ensemble d'entraînement total. Je considère que "très petit" est <= 8 (je viens de modifier la réponse). J'ai également mesuré une augmentation extrême (plus de 5x) du temps d'entraînement à l'horloge murale pour cela. Normal est quelque chose comme 64 ou 128. Je ne suis pas trop sûr de ce qu'est "énorme"; Je pense que cela pourrait dépendre du matériel.
Martin Thoma
Cette réponse pose plus de questions qu'elle n'en répond. Où est ce point idéal (peut-être qu'un graphique aiderait)? Comment interagit-il avec le taux d'apprentissage et l'arrêt précoce?
xjcl
La réponse dépend du réseau et de l'ensemble de données. Par conséquent, il n'est pas logique de donner des nombres spécifiques et donc un graphique n'aiderait pas. À propos des interactions avec d'autres hyperparamètres: je n'en suis pas sûr. Essayez-le et publiez vos résultats :-)
Martin Thoma