¿Cuáles son las buenas heurísticas para elegir el tamaño de un lote en el entrenamiento de la red neuronal?

Solo he usado redes neuronales para datos de imágenes (específicamente CNN profundas, por lo que no puedo hablar de otros tipos de datos y NN), pero generalmente elijo el tamaño de lote más grande que se ajusta a la memoria de la GPU, porque me permite aprovechar la computación recursos mejores y entrenar más rápido (más épocas en un momento dado).

La figura 8 en el siguiente documento ofrece buenas pautas a este respecto. Básicamente, dice que (para la clasificación), la precisión se mantiene casi constante en los tamaños de lote de 32-256, y cae después de eso (curva roja). La curva azul es probablemente lo que realmente debería seguir, es decir, intente elegir el tamaño de lote más grande mientras elige una velocidad de aprendizaje adecuada: de modo que incluso para tamaños de lote más altos, la precisión de la prueba no disminuya, pero siga explotando su GPU completamente.

http://arxiv.org/pdf/1606.02228.pdf

2 exponenciales. 64, 128, 256, 512, etc. Cuanto mayor sea la red, mayor será el tamaño del lote. Y, por supuesto, la escala de la red depende de la escala de los datos de capacitación disponibles.

Algunas ideas: Cambiar el tamaño del lote frente al número de iteraciones para entrenar una red neuronal