He visto conclusiones similares en muchas discusiones, que a medida que el tamaño del minibatch aumenta, la convergencia de SGD en realidad se vuelve más difícil / peor, por ejemplo, este documento y esta respuesta . También he oído hablar de personas que utilizan trucos como pequeñas tasas de aprendizaje o tamaños de lote en la etapa inicial para abordar esta dificultad con grandes tamaños de lote.
Sin embargo, parece contrario a la intuición, ya que la pérdida promedio de un minibatch puede considerarse como una aproximación a la pérdida esperada sobre la distribución de datos,
Estos son algunos de mis pensamientos (probablemente incorrectos) que intentan explicar.
Los parámetros del modelo dependen mucho el uno del otro, cuando el lote se hace demasiado grande afectará demasiados parámetros a la vez, de modo que es difícil para los parámetros alcanzar una dependencia inherente estable. (como el problema interno de cambio de covariable mencionado en el documento de normalización por lotes )
¿O cuando casi todos los parámetros son responsables en cada iteración, tenderán a aprender patrones implícitos redundantes y, por lo tanto, reducirán la capacidad del modelo? (Quiero decir, para problemas de clasificación de dígitos, algunos patrones deberían ser responsables de los puntos, algunos de los bordes, pero cuando esto sucede, cada patrón intenta ser responsable de todas las formas).
¿O es porque cuando el tamaño de los lotes se acerca a la escala del conjunto de entrenamiento, los minibatches ya no pueden verse como iid de la distribución de datos, ya que habrá una gran probabilidad de minibatches correlacionados?
Actualización
Como se señaló en la respuesta de Benoit Sánchez, una razón importante es que los minibatches grandes requieren más cómputo para completar una actualización, y la mayoría de los análisis utilizan una cantidad fija de épocas de entrenamiento para la comparación.
sin embargo este documento (Wilson y Martínez, 2003) muestra que un tamaño de lote más grande todavía es ligeramente desventajoso, incluso dada la cantidad suficiente de épocas de entrenamiento. ¿Es ese generalmente el caso?
Para agregar a la respuesta de Curtis White (y agregar algunas referencias más):
Sí SGD funciona como un tipo de regularización. Esto es importante porque de lo contrario, es difícil explicar por qué los DNN no siempre se sobreajustan, porque pueden .
La razón, según tengo entendido, es que SGD causa 'saltos' en el espacio de parámetros, por lo que durante el entrenamiento los parámetros no pueden permanecer en un mínimo estrecho, solo en (o cerca de) los más amplios. Y estos más anchos aparentemente [1] generalizan mejor (también conocido como menos sobreajustado).
Más referencias:
"stochastic relaxation, or random diffusion"
la que conduce la estocasticidad inherente a SGD"maximiz[ation of] the conditional entropy of the layer"
.Ambos dicen que SGD corresponde a un término de regularización de entropía.
Definitivamente podría haber otras formas en que el tamaño del lote influye en la convergencia; Este es el que yo conozco.
[1] Ejemplo: "Una perspectiva bayesiana sobre la generalización y el descenso de gradiente estocástico", Smith, Le, 2018. Del resumen:
"We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."
[2] "El descenso de gradiente estocástico realiza inferencia variacional, converge para limitar los ciclos de las redes profundas", Chaudhari, Soatto 2017
[3] "Abrir la caja negra de las redes neuronales profundas a través de la información" Schwartz-Ziv, Tishby, 2017
[4] "Comprender el aprendizaje profundo requiere repensar la generalización", C. Zhang, etc. 2016
fuente
Un tamaño de lote demasiado grande puede evitar la convergencia al menos cuando se usa SGD y se entrena MLP con Keras. En cuanto a por qué, no estoy 100% seguro de si tiene que ver con el promedio de los gradientes o si las actualizaciones más pequeñas proporcionan una mayor probabilidad de escapar de los mínimos locales.
Ver aquí .
fuente