¿Hay alguna regla para elegir el tamaño de un mini lote?

21

Al entrenar redes neuronales, un hiperparámetro es del tamaño de un minibatch. Las opciones comunes son 32, 64 y 128 elementos por mini lote.

¿Existen reglas / pautas sobre el tamaño de un mini lote? ¿Alguna publicación que investigue el efecto en el entrenamiento?

Martin Thoma
fuente
¿Aparte de encajar en la memoria?
Ehsan M. Kermani
Sí. Por ejemplo, ¿hay alguna publicación que diga "cuanto mayor sea el tamaño del lote, mejor" (siempre que quepa en la memoria)?
Martin Thoma
@ EhsanM.Kermani Creo que sí importa. Realicé un par de corridas en CIFAR-100 y obtuve resultados diferentes según el tamaño del lote (con paradas tempranas para que el sobreajuste no sea un problema)
Martin Thoma
3
Más grande computa más rápido (es eficiente), más pequeño converge más rápido, generaliza mejor; cf. Entrenamiento eficiente en mini lotes para la optimización estocástica y este estudio RNN . Hay un punto dulce que encuentras empíricamente para tu problema.
Emre
2
Este artículo más perspicaz de Blei et al acaba de salir: Descenso de gradiente estocástico como inferencia bayesiana aproximada
Emre

Respuestas:

22

En On Large-Batch Training for Deep Learning: Generalization Gap y Sharp Minima hay un par de declaraciones interesantes:

Se ha observado en la práctica que cuando se usa un lote más grande hay una degradación en la calidad del modelo, medida por su capacidad de generalizar [...]

Los métodos de lotes grandes tienden a converger en minimizadores agudos de las funciones de entrenamiento y prueba, y como es bien sabido, los mínimos agudos conducen a una generalización más pobre. norte. Por el contrario, los métodos de lotes pequeños convergen consistentemente en minimizadores planos, y nuestros experimentos respaldan una opinión común de que esto se debe al ruido inherente en la estimación del gradiente.

De mi tesis de maestría : Por lo tanto, la elección del tamaño del mini lote influye:

  • Tiempo de entrenamiento hasta la convergencia : parece haber un punto óptimo. Si el tamaño del lote es muy pequeño (por ejemplo, 8), esta vez aumenta. Si el tamaño del lote es enorme, también es más alto que el mínimo.
  • Tiempo de entrenamiento por época : más grande computa más rápido (es eficiente)
  • Calidad del modelo resultante : cuanto menor sea, mejor debido a una mejor generalización (?)

Es importante tener en cuenta las interacciones de hiperparámetros: el tamaño de lote puede interactuar con otros hiperparámetros, especialmente la tasa de aprendizaje. En algunos experimentos, esta interacción puede dificultar aislar el efecto del tamaño del lote solo en la calidad del modelo. Otra interacción fuerte es la detención temprana para la regularización.

Ver también

Martin Thoma
fuente
@NeilSlater ¿Desea agregar su comentario a mi respuesta (ahora wiki de la comunidad)?
Martin Thoma
Me gusta la respuesta en general. Además, agradecería tener un número sobre lo que es muy pequeño , enorme y mini-lote en un ejemplo específico.
Entonces S
El mini lote de @SoS es solo un término. El "mini" no se refiere a un tamaño específico, pero solo significa que hay más de 1 ejemplo y menos que el conjunto de entrenamiento total. Considero que "muy pequeño" es <= 8 (acabo de editar la respuesta). También medí un aumento extremo (más de 5 veces) en el tiempo de entrenamiento del reloj de pared para esto. Normal es algo así como 64 o 128. No estoy muy seguro de qué es "enorme"; Creo que esto podría depender del hardware.
Martin Thoma
Esta respuesta hace más preguntas de las que responde. ¿Dónde está este punto dulce (tal vez un gráfico ayudaría)? ¿Cómo interactúa con la tasa de aprendizaje y la detención temprana?
xjcl
La respuesta depende de la red y el conjunto de datos. Por lo tanto, no tiene sentido dar números específicos y, por lo tanto, un gráfico no ayudaría. Acerca de las interacciones con otros hiperparámetros: no estoy seguro. Pruébalo y publica tus resultados :-)
Martin Thoma