Existem regras para escolher o tamanho de um mini lote?

21

Ao treinar redes neurais, um hiperparâmetro é do tamanho de um minibatch. As opções comuns são 32, 64 e 128 elementos por mini lote.

Existem regras / diretrizes para o tamanho de um mini lote? Alguma publicação que investiga o efeito no treinamento?

Martin Thoma
fonte
Além de caber na memória?
Ehsan M. Kermani
Sim. Por exemplo, existe alguma publicação com a mensagem "quanto maior o tamanho do lote, melhor" (desde que caiba na memória)?
Martin Thoma
@ EhsanM.Kermani Eu acho que isso importa. Eu fiz um par de corridas em Cifar-100 e eu obter resultados diferentes, dependendo do tamanho do lote (com parada cedo para que overfitting não é esperançosamente um problema)
Martin Thoma
3
Maior calcula mais rápido (é eficiente), menor converge mais rápido, generaliza melhor; cf. Treinamento eficiente de mini-lote para otimização estocástica e este estudo da RNN . Há um ponto ideal que você encontra empiricamente para o seu problema.
Emre
2
Este papel mais perspicaz por Blei et al saiu apenas: Stochastic Gradient Descent como aproximado Inferência Bayesiana
Emre

Respostas:

22

Em Treinamento em lotes grandes para aprendizado profundo: diferença de generalização e Sharp Minima, há algumas declarações interessantes:

Observou-se na prática que, ao usar um lote maior, há uma degradação na qualidade do modelo, medida pela sua capacidade de generalizar [...]

os métodos de lotes grandes tendem a convergir para minimizadores nítidos das funções de treinamento e teste - e como é sabido, os mínimos nítidos levam a uma generalização mais fraca. n. Por outro lado, os métodos de pequenos lotes convergem consistentemente para minimizadores planos, e nossos experimentos sustentam uma visão comum de que isso se deve ao ruído inerente na estimativa do gradiente.

Da minha tese de mestrado : Daí a escolha do tamanho do minilote influenciar:

  • Tempo de treinamento até a convergência : parece haver um ponto ideal. Se o tamanho do lote for muito pequeno (por exemplo, 8), esse tempo aumenta. Se o tamanho do lote for grande, também será maior que o mínimo.
  • Tempo de treinamento por época : Maior calcula mais rápido (é eficiente)
  • Qualidade do modelo resultante : quanto menor, melhor devido à melhor generalização (?)

É importante observar as interações de hiperparâmetros: o tamanho do lote pode interagir com outros hiperparâmetros, principalmente a taxa de aprendizado. Em algumas experiências, essa interação pode dificultar o isolamento do efeito do tamanho do lote sozinho na qualidade do modelo. Outra interação forte é com paradas precoces para regularização.

Veja também

Martin Thoma
fonte
@NeilSlater Deseja adicionar seu comentário à minha resposta (agora wiki da comunidade)?
Martin Thoma
Eu gosto da resposta como geral. Além disso, eu gostaria de ter um número sobre o que é muito pequeno , grande e minilote em um exemplo específico.
Então S
O mini lote do @SoS é apenas um termo. O "mini" não se refere a um tamanho específico, mas significa apenas que há mais de 1 exemplo e menos do que o conjunto total de treinamento. Considero "muito pequeno" como <= 8 (acabei de editar a resposta). Também medi um aumento extremo (mais de 5x) no tempo de treinamento do relógio de parede para isso. Normal é algo como 64 ou 128. Não tenho muita certeza do que seja "enorme"; Eu acho que isso pode depender do hardware.
Martin Thoma
Esta resposta faz mais perguntas do que respostas. Onde está esse ponto ideal (talvez um gráfico possa ajudar)? Como ele interage com a taxa de aprendizado e a parada precoce?
xjcl 3/09
A resposta depende da rede e do conjunto de dados. Portanto, não faz sentido fornecer números específicos e, portanto, um gráfico não ajudaria. Sobre interações com outros hiperparâmetros: não sei ao certo. Experimente e publique seus resultados :-)
Martin Thoma 03/09