Hablando algorítmicamente, el uso de mini lotes más grandes en SGD le permite reducir la variación de sus actualizaciones de gradiente estocástico (tomando el promedio de los gradientes en el mini lote), y esto a su vez le permite tomar pasos más grandes , que significa que el algoritmo de optimización hará que el progreso sea más rápido. Sin embargo, la cantidad de trabajo realizado (en términos de número de cálculos de gradiente) para alcanzar una cierta precisión en el objetivo será la misma: con un tamaño de mini lote de n, la variación de la dirección de actualización se reducirá en un factor n, entonces la teoría le permite tomar pasos de tamaño que son n veces más grandes (ver, por ejemplo, [1, final de la Sección 4.2]), de modo que un solo paso lo llevará aproximadamente a la misma precisión que n pasos de SGD con un tamaño de mini lote de 1.
Esto suena como una gran noticia, ya que sugiere que tomar mini lotes muy grandes convergerá tan rápido en términos de cálculos de gradiente como usar un solo ejemplo a la vez, lo cual es excelente porque calcular el gradiente en un mini lote grande es trivial para Paralelizar (en una GPU, múltiples GPU o incluso muchas máquinas), mientras que usar un solo ejemplo por iteración requiere sincronización después de cada ejemplo, lo que hace que la paralelización sea mucho más desafiante.
Entonces, ¿dónde está la trampa? Bueno, a pesar de que dijimos que los mini lotes más grandes le permiten usar tamaños de paso más grandes, el tamaño de paso no puede exceder un límite superior algorítmico y dependiente del problema que depende de la suavidad de la función objetivo (generalmente 1 / L, donde L es la constante de Lipschitz de los gradientes “completos”, de modo que una vez que haya alcanzado este tamaño de paso, aumentar el tamaño del mini lote ya no le permitirá aumentar el tamaño del paso, lo que significa el cálculo adicional en la computación Se perderán más gradientes. Como comentario adicional, tenga en cuenta que SGD con tamaño de mini lote fijo generalmente necesita tamaños de paso más pequeños cerca del óptimo, y en esa situación se podría considerar aumentar el tamaño del lote en lugar de disminuir los tamaños de paso, para un paralelismo mejorado.
- ¿Cómo afectan la ciencia de datos, los grandes datos y el aprendizaje automático al campo de la economía?
- Teoría de la información: ¿por qué hay una mayor probabilidad asociada con menor información?
- ¿Cuáles son las diferencias entre los modelos pre-entrenados y entrenados?
- ¿Las redes RBM (máquina de Boltzman restringida) suelen tener el mismo número de nodos por capa?
- ¿La asignación de Dirichlet latente es un modelo paramétrico o no paramétrico?
En la práctica, especialmente en el caso del aprendizaje profundo con GPU, los mini lotes grandes son muy atractivos computacionalmente. Además del fácil paralelismo entre procesadores / máquinas, pueden proporcionar un rendimiento mucho mejor, por ejemplo, haciendo uso de la reutilización de datos eficiente durante la propagación inversa (por ejemplo, hacer una matriz de matriz-matriz es mucho más eficiente que hacer muchas multiplicaciones de matriz-vector, dado que este último probablemente necesita recargar los datos de la matriz en los registros con mayor frecuencia) y al perder menos tiempo en viajes de ida y vuelta de comunicación de datos. Por estas razones, es bastante común en la práctica elegir tamaños de lote que aprovechen completamente la GPU (por ejemplo, hasta que se llene la memoria), y simplemente elegir el tamaño de paso más grande que funcione bien en la práctica después de algunas pruebas rápidas. Si la elección del tamaño del paso se guía por la restricción de 1 / L (suavidad), entonces la variación de las actualizaciones probablemente será menor de lo necesario, pero eso está bien, ya que solo significa que podremos mantener el constante de tamaño de paso durante un período de tiempo más largo.
Actualización (junio de 2017): Facebook logró ampliar esta estrategia, que denominan “regla de escala lineal”, a un tamaño de mini lote de 8192 para capacitar a las CNN de última generación en ImageNet (SGD de minibatch grande y preciso: Entrenamiento de ImageNet en 1 hora). Lo lograron al incluir una fase inicial de “calentamiento” para evitar dificultades de optimización con pasos de gran tamaño en las primeras épocas, y al garantizar una sobrecarga de comunicación mínima.
[1] [1606.04838] Métodos de optimización para el aprendizaje automático a gran escala