Quelles sont les différences entre 'epoch', 'batch' et 'minibatch'?


38

Autant que je sache, lors de l'adoption de l'algorithme d'apprentissage de Stochastic Gradient Descent, quelqu'un utilise 'epoch' pour l'ensemble de données complet, et 'batch' pour les données utilisées dans une seule étape de mise à jour, tandis qu'une autre utilise respectivement 'batch' et 'minibatch', et les autres utilisent 'epoch' et 'minibatch'. Cela apporte beaucoup de confusion en discutant.

Alors, quel est le dicton correct? Ou ce ne sont que des dialectes qui sont tous acceptables?

Réponses:


25
  • Epoch signifie un passage sur le set d'entraînement complet
  • Batch signifie que vous utilisez toutes vos données pour calculer le gradient au cours d'une itération.
  • Mini-lot signifie que vous ne prenez qu'un sous-ensemble de toutes vos données au cours d'une itération.


4

"Époque" signifie généralement exposer un algorithme d'apprentissage à l'ensemble des données d'apprentissage. Cela n'a pas toujours de sens car nous générons parfois des données.

"Lot" et "Minibatch" peuvent être déroutants.

Les exemples d'apprentissage doivent parfois être «groupés», car toutes les données ne peuvent pas nécessairement être exposées simultanément à l'algorithme (en raison de contraintes de mémoire en général).

Dans le contexte de SGD, "Minibatch" signifie que le gradient est calculé sur l’ensemble du lot avant la mise à jour des poids. Si vous n'utilisez pas de "minibatch", chaque exemple d'apprentissage d'un "lot" met à jour les paramètres de l'algorithme d'apprentissage de manière indépendante.


Êtes-vous sûr du dernier paragraphe? Je pensais que "groupé" SGD utilisait toutes les données d'une époque pour calculer lentement un gradient très précis. Votre dernière phrase ressemble à un mini-lot de taille 1.
Matt Krause

Aussi, bienvenue dans Cross Validated!
Matt Krause

Eh oui, le SGD original a un mini-lot de taille 1. Je pense que cela dépend finalement de l'interprétation de l'auteur du logiciel. Très souvent batch == mini-batch, sans documentation mentionnant jamais "mini-batch".
roue ferreuse

Euh, je pense que je voulais dire que GD en lot utilise toutes les données. J'utilise d'habitude batch et minibatch de manière interchangeable, mais "mini-batch" quand je veux signaler que c'est vraiment petit ...
Matt Krause
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.