Basado en ¿Qué debemos hacer cuando una pregunta publicada en DataScience es un duplicado de una pregunta publicada en CrossValidated? , Vuelvo a publicar mi respuesta a la misma pregunta que se hizo en CrossValidated ( https://stats.stackexchange.com/a/311318/89653 ).
Nota: a lo largo de esta respuesta me refiero a la minimización de la pérdida de entrenamiento y no discuto los criterios de detención como la pérdida de validación. La elección de los criterios de detención no afecta el proceso / conceptos que se describen a continuación.
El proceso de entrenamiento de una red neuronal es encontrar el valor mínimo de una función de pérdida , donde representa una matriz (o varias matrices) de pesos entre las neuronas y representa el conjunto de datos de entrenamiento. Utilizo un subíndice para para indicar que nuestra minimización de ocurre solo sobre los pesos (es decir, estamos buscando modo que se minimice) mientras está fijo.WXX ℒ WW ℒ XLX(W)WXXLWWLX
Ahora, si suponemos que tenemos elementos en (es decir, hay pesos en la red), es una superficie en un espacio dimensional . Para dar un análogo visual, imagine que tenemos solo dos pesos de neuronas ( ). Entonces tiene una interpretación geométrica fácil: es una superficie en un espacio tridimensional. Esto surge del hecho de que para cualquier matriz dada de pesos , la función de pérdida se puede evaluar en y ese valor se convierte en la elevación de la superficie.W P ℒ P + 1 P = 2 ℒ W XPWPLP+1P=2LWX
Pero existe el problema de la no convexidad; la superficie que describí tendrá numerosos mínimos locales y, por lo tanto, los algoritmos de descenso de gradiente son susceptibles de quedar "atascados" en esos mínimos, mientras que una solución más profunda / más baja / mejor puede estar cerca. Es probable que esto ocurra si no cambia en todas las iteraciones de entrenamiento, porque la superficie está fija para una dada ; Todas sus características son estáticas, incluidos sus diversos mínimos.XXX
Una solución a esto es el entrenamiento de mini lotes combinado con barajar. Al barajar las filas y entrenar solo en un subconjunto de ellas durante una iteración dada, cambia con cada iteración, y en realidad es bastante posible que no se realicen dos iteraciones sobre la secuencia completa de iteraciones y épocas de entrenamiento exactamente en la misma . El efecto es que el solucionador puede "rebotar" fácilmente desde un mínimo local. Imagine que el solucionador está atascado en un mínimo local en la iteración con el mini-lote de entrenamiento . Este mínimo local corresponde a evaluado a un valor particular de pesos; lo llamaremosX i X i ℒ ℒ X i ( W i ) X i + 1 ℒ X i + 1 ( W i ) ℒ X i ( W i ) ℒ X i + 1 ℒ X i ℒ X W WXXiXiLLXi(Wi). En la próxima iteración, la forma de nuestra superficie de pérdida cambia realmente porque estamos usando , es decir, puede tomar un valor muy diferente de y es muy posible que no corresponda a un mínimo local. Ahora podemos calcular una actualización de gradiente y continuar con el entrenamiento. Para ser claros: la forma de será, en general, diferente de la de . Tenga en cuenta que aquí me refiero a la función de pérdida evaluada en un conjunto de entrenamiento ; Es una superficie completa definida sobre todos los valores posibles deXi+1LXi+1(Wi)LXi(Wi)LXi+1LXiLXW, En lugar de la evaluación de que la pérdida (que es sólo un escalar) para un valor específico de . Tenga en cuenta también que si se usan mini lotes sin barajar, todavía hay un grado de "diversificación" de las superficies de pérdida, pero habrá un número finito (y relativamente pequeño) de superficies de error únicas vistas por el solucionador (específicamente, verá el mismo conjunto exacto de mini lotes (y, por lo tanto, superficies de pérdida) durante cada época).W
Una cosa que evité deliberadamente fue una discusión sobre los tamaños de mini lotes, porque hay un millón de opiniones sobre esto y tiene implicaciones prácticas significativas (se puede lograr una mayor paralelización con lotes más grandes). Sin embargo, creo que vale la pena mencionar lo siguiente. Debido a que se evalúa calculando un valor para cada fila de (y sumando o tomando el promedio; es decir, un operador conmutativo) para un conjunto dado de matrices de peso , la disposición de las filas de no tiene efecto cuando se usa full- Descenso de gradiente por lotes (es decir, cuando cada lote es la completa , y las iteraciones y las épocas son lo mismo). X W X XLXWX X