A principal vantagem do uso do minibatch em oposição ao conjunto de dados completo remonta à ideia fundamental da descida estocástica do gradiente 1 .
Na descida do gradiente em lote, você calcula o gradiente em todo o conjunto de dados, calculando a média de uma quantidade potencialmente vasta de informações. É preciso muita memória para fazer isso. Mas a verdadeira desvantagem é que a trajetória do gradiente do lote leva você a um ponto ruim (ponto de sela).
Por outro lado, no SGD puro, você atualiza seus parâmetros adicionando (sinal de menos) o gradiente calculado em uma única instância do conjunto de dados. Como é baseado em um ponto de dados aleatórios, é muito barulhento e pode sair em uma direção distante do gradiente do lote. No entanto, o ruído é exatamente o que você deseja na otimização não convexa, porque ajuda a escapar de pontos de sela ou mínimos locais (Teorema 6 em [2]). A desvantagem é que é terrivelmente ineficiente e você precisa fazer um loop em todo o conjunto de dados várias vezes para encontrar uma boa solução.
A metodologia de minibatch é um compromisso que injeta ruído suficiente para cada atualização de gradiente, enquanto obtém uma convergência relativamente rápida.
1 Bottou, L. (2010). Aprendizado de máquina em larga escala com descida de gradiente estocástico. In Proceedings of COMPSTAT'2010 (pp. 177-186). Physica-Verlag HD.
[2] Ge, R., Huang, F., Jin, C. e Yuan, Y. (2015, junho). Escapando do gradiente estocástico on-line dos pontos de sela para decomposição do tensor. Em COLT (pp. 797-842).
EDIT:
Acabei de ver esse comentário no facebook de Yann LeCun, que fornece uma nova perspectiva sobre essa questão (desculpe, não sei como vincular ao fb.)
Treinar com minibatches grandes faz mal à sua saúde. Mais importante, isso é ruim para o seu erro de teste. Os amigos não permitem que amigos usem minibatches maiores que 32. Vamos ser sinceros: as únicas pessoas que mudaram para tamanhos de minibatch maiores que um desde 2012 é porque as GPUs são ineficientes para tamanhos de lote menores que 32. Esse é um motivo terrível. Significa apenas que nosso hardware é péssimo.
Ele citou este artigo que acabou de ser publicado no arXiv há alguns dias (abril de 2018), que vale a pena ler,
Dominic Masters, Carlo Luschi, Revisitando o treinamento em pequenos lotes para redes neurais profundas , arXiv: 1804.07612v1
Do resumo,
Enquanto o uso de mini-lotes grandes aumenta o paralelismo computacional disponível, foi demonstrado que o treinamento em pequenos lotes fornece melhor desempenho de generalização ...
O melhor desempenho foi obtido consistentemente para tamanhos de mini lotes entre m = 2 e m = 32, o que contrasta com o trabalho recente que defende o uso de tamanhos de mini lotes em milhares.