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?


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


@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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.