¿Por qué deberíamos barajar datos mientras entrenamos una red neuronal?

15

En el entrenamiento de mini lotes de una red neuronal, escuché que una práctica importante es mezclar los datos de entrenamiento antes de cada época. ¿Alguien puede explicar por qué ayuda el arrastrar los pies en cada época?

En la búsqueda de google, encontré las siguientes respuestas:

  • ayuda a que el entrenamiento converja rápido
  • evita cualquier sesgo durante el entrenamiento
  • evita que el modelo aprenda el orden de la capacitación

Pero, tengo la dificultad de entender por qué alguno de esos efectos es causado por la combinación aleatoria. ¿Alguien puede proporcionar una explicación intuitiva?

DSKim
fuente

Respuestas:

8

Para intentar dar otra explicación:

Una de las cosas más poderosas sobre las redes neuronales es que pueden ser funciones muy complejas, lo que permite aprender relaciones muy complejas entre sus datos de entrada y salida. Estas relaciones pueden incluir cosas que nunca esperaría, como el orden en que se alimentan los datos por época. Si el orden de los datos dentro de cada época es el mismo, entonces el modelo puede usar esto como una forma de reducir el error de entrenamiento, que es una especie de sobreajuste.

Con respecto a la velocidad: los métodos de mini lotes dependen del descenso de gradiente estocástico (y mejoras al respecto), lo que significa que confían en la aleatoriedad para encontrar un mínimo. Mezclar mini lotes hace que los gradientes sean más variables, lo que puede ayudar a la convergencia porque aumenta la probabilidad de golpear una buena dirección (o al menos así es como lo entiendo).

bibliolítico
fuente
1
¿Cómo puede una red neuronal aprender el orden en que se alimentan los datos en cada época?
Código Pope
1
En una palabra, no pueden. Si usa el entrenamiento de mini lotes (es decir, más de un lote por época), entonces un orden particular de los datos puede influir en el entrenamiento en el sentido de que al entrenar primero en un mini lote, el solucionador puede ingresar en una región determinada (tal vez conteniendo un mínimo local ...) en lugar de otro. Pero decir que un NN "aprende" sobre el ordenamiento de los datos no es realmente correcto porque cada predicción se realiza independientemente de cualquier otra predicción, y el ordenamiento dentro de los mini lotes no tendrá ningún efecto.
Josh el
6

Desde un punto de vista muy simplista, los datos se introducen secuencialmente, lo que sugiere que, como mínimo, es posible que el orden de los datos tenga un efecto en la salida. Si el orden no importa, la aleatorización ciertamente no hará daño. Si el orden es importante, la aleatorización ayudará a suavizar esos efectos aleatorios para que no se conviertan en sesgos sistemáticos. En resumen, la aleatorización es barata y nunca está de más, ya menudo minimizará los efectos de ordenar datos.

Wang nuclear
fuente
6

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 tal manera que se minimice) mientras está fijo.WXX WW XX(W)WXXWWX

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 XPWPP+1P=2WX

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 + 1X i X W WXXiXiXi(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 la capacitación. 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+1Xi+1(Wi)Xi(Wi)Xi+1XiXW, 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 XXWX X

Josh
fuente
Gracias por esta útil explicación. Después de leer su respuesta profundamente, tengo dos preguntas: 1. Usted mencionó que el mini lote proporciona un grado de diversificación limitada. No entiendo por qué esto no es suficiente para evitar el mínimo local. Si el solucionador está en los mínimos locales de la superficie de un lote, es muy probable que no esté en los mínimos locales de la superficie del siguiente lote, por lo tanto, no debería atascarse. 2. ¿Cómo converge el solucionador en la superficie de la función de pérdida mientras la superficie siempre cambia usando diferentes lotes?
Código Pope
El beneficio de la diversificación sigue existiendo sin barajar, pero no es tan significativo como cuando se usa barajar porque está viendo constantemente la misma secuencia de superficies de pérdida, mientras que si usamos barajar probablemente nunca verá la misma superficie de pérdida exacta más de una vez. En cuanto a los criterios de detención, generalmente he escrito el mío de tal manera que una vez que la reducción porcentual promedio de la pérdida en un número específico de iteraciones es menor que cierta tolerancia, el entrenamiento se detiene.
Josh
2
Tal vez realmente no respondí tu pregunta sobre los mínimos locales tan bien. En teoría, todas estas superficies de pérdida deberían presentar algún grado de similitud ya que se supone que la distribución de probabilidad de la respuesta (condicional a los predictores del modelo) es constante en todo el conjunto de datos de entrenamiento. Entonces, si un mínimo es lo suficientemente profundo, debería aparecer en una gran cantidad de mini lotes, por lo tanto, es poco probable que el solucionador rebote. Pero si el mínimo es básicamente solo "ruido", entonces esta estrategia debería funcionar bastante bien y permitir que el modelo continúe entrenando.
Josh
Gracias. Su segunda respuesta hace que sea claramente comprensible por qué el NN converge a pesar de las diferentes superficies. Con respecto a mi primera pregunta, ¿es correcto decir que tener la misma secuencia tendría una mayor posibilidad de que se repita un "ruido" en muchas de las superficies de pérdida de los lotes que cuando se usa la mezcla aleatoria? Esta es la única explicación que puedo dar por qué todavía es posible quedarse atascado en los mínimos locales cuando se usan mini lotes sin barajar.
Código Pope
@CodePope Creo que es correcto. Además, una vez que la pérdida se haya reducido mucho desde el comienzo del entrenamiento, los gradientes serán bastante pequeños e incluso es posible que el solucionador básicamente se quede atrapado en un "bucle" ya que sigue viendo la misma secuencia de superficies de pérdida. Tenga en cuenta que esta es una explicación especulativa basada en mi experiencia bastante limitada, por lo que si tiene un interés teórico serio en esto, será mejor que consulte a un experto.
Josh
4

Imagine que sus últimas etiquetas de minibatch tienen más ruido. Luego, estos lotes tirarán de los pesos finales aprendidos en la dirección incorrecta. Si baraja cada vez, las posibilidades de que los últimos lotes sean desproporcionadamente ruidosos se reducen.

Ganesh
fuente
1

Cuando entrena su red utilizando un conjunto de datos fijo, es decir, datos que nunca baraja durante el entrenamiento. Es muy probable que obtenga pesos muy altos y muy bajos, como 40,70, -101,200 ... etc. Esto simplemente significa que su red no ha aprendido los datos de entrenamiento pero ha aprendido el ruido de sus datos de entrenamiento. Estuche clásico de un modelo sobreajustado. Con dicha red obtendrá predicciones de los datos que ha utilizado para el entrenamiento. Si usa otras entradas para probarlo, su modelo se vendrá abajo. Ahora, cuando baraja los datos de entrenamiento después de cada época (iteración del conjunto general), simplemente alimenta diferentes entradas a las neuronas en cada época y eso simplemente regula los pesos, lo que significa que es más probable que obtenga pesos "más bajos" que están más cerca de cero , y eso significa que su red puede hacer mejores generalizaciones.

Espero que haya quedado claro.

PRCube
fuente
1

Aquí hay una explicación más intuitiva:

Cuando se utiliza el descenso de gradiente, queremos que la pérdida se reduzca en una dirección de gradiente. El gradiente se calcula mediante los datos de un único mini lote para cada ronda de actualización de peso. Lo que queremos que suceda es que este gradiente basado en mini lotes es aproximadamente el gradiente de población, porque se espera que esto produzca una convergencia más rápida. (Imagínese si alimenta la red 100 datos de clase 1 en un mini lote y 100 datos de clase 2 en otro, la red se desplazará. Una mejor manera es alimentarlo con 50 clase 1 + 50 clase 2 en cada mini lote).

¿Cómo lograr esto ya que no podemos usar los datos de población en un mini lote? El arte de las estadísticas nos dice: barajar la población, y los primeros datos de tamaño de lote pueden representar la población. Es por eso que necesitamos barajar a la población.

Tengo que decir que la mezcla no es necesaria si tiene otro método para muestrear datos de la población y asegurarse de que las muestras puedan producir un gradiente razonable.

Esa es mi comprensión. Espero eso ayude.

golden8212312
fuente