Le principal avantage de l’utilisation du minibatch par rapport à l’ensemble de données remonte à l’idée fondamentale de la descente de gradient stochastique 1 .
Dans la descente en dégradé par lots, vous calculez le dégradé sur l'intégralité du jeu de données, en effectuant la moyenne sur une grande quantité d'informations. Il faut beaucoup de mémoire pour le faire. Mais le véritable handicap, c’est que la trajectoire du gradient de lots vous amène au mauvais endroit (point de selle).
En SGD pur, par contre, vous mettez à jour vos paramètres en ajoutant (signe moins) le dégradé calculé sur une seule instance du jeu de données. Comme il est basé sur un point de données aléatoire, il est très bruyant et peut partir dans une direction éloignée du gradient de lot. Cependant, le bruit est exactement ce que vous voulez dans l'optimisation non convexe, car il vous permet d'échapper aux points de selle ou aux minima locaux (théorème 6 dans [2]). L'inconvénient est que c'est terriblement inefficace et que vous devez parcourir plusieurs fois l'ensemble de données pour trouver la bonne solution.
La méthodologie de minibatch est un compromis qui injecte suffisamment de bruit pour chaque mise à jour de gradient, tout en obtenant une convergence relativement rapide.
1 Bottou, L. (2010). Apprentissage automatique à grande échelle avec descente de gradient stochastique. Dans Actes du COMPSTAT'2010 (p. 177-186). Physica-Verlag HD.
[2] Ge, R., Huang, F., Jin, C. et Yuan, Y. (juin 2015). S'échapper du gradient stochastique en ligne de points de selle pour la décomposition du tenseur. Dans COLT (pp. 797-842).
MODIFIER :
Je viens de voir ce commentaire sur le facebook de Yann LeCun, qui donne une nouvelle perspective à cette question (désolé, je ne sais pas comment faire un lien vers fb.)
S'entraîner avec des mini-lots volumineux est mauvais pour la santé. Plus important encore, c'est mauvais pour votre erreur de test. Les amis ne laissent pas leurs amis utiliser des minibattages plus grands que 32. Disons le: les seules personnes qui sont passées à des tailles de minibatch supérieures à un depuis 2012 sont parce que les GPU sont inefficaces pour des lots de taille inférieure à 32. C'est une raison terrible. Cela signifie simplement que notre matériel est nul.
Il a cité cet article qui vient d'être publié sur arXiv il y a quelques jours (avril 2018), qui mérite d'être lu,
Dominic Masters, Carlo Luschi, Revisiter la formation par petits lots pour les réseaux de neurones profonds , arXiv: 1804.07612v1
De l'abstrait,
Bien que l'utilisation de mini-lots volumineux augmente le parallélisme informatique disponible, il a été démontré que la formation par petits lots permettait d'améliorer les performances de généralisation ...
Les meilleures performances ont été systématiquement obtenues pour des tailles de mini-lots comprises entre m = 2 et m = 32, ce qui contraste avec les travaux récents préconisant l’utilisation de tailles de mini-lots par milliers.