35 votos

¿Por qué debemos barajar los datos al entrenar una red neuronal?

En el entrenamiento por mini lotes de una red neuronal, he oído que una práctica importante es barajar los datos de entrenamiento antes de cada época. ¿Puede alguien explicar por qué es útil barajar los datos en cada época?

En la búsqueda en Google, he encontrado las siguientes respuestas:

  • ayuda a que la formación converja rápidamente
  • evita cualquier sesgo durante el entrenamiento
  • evita que el modelo aprenda el orden del entrenamiento

Pero, tengo la dificultad de entender por qué cualquiera de esos efectos es causado por el barajado aleatorio. ¿Puede alguien dar una explicación intuitiva?

31voto

Tori Puntos 1

Nota: a lo largo de esta respuesta me refiero a la minimización de la pérdida de entrenamiento y no hablo de criterios de parada como la pérdida de validación. La elección de los criterios de parada no afecta al proceso/conceptos descritos a continuación.

El proceso de entrenamiento de una red neuronal consiste en encontrar el valor mínimo de una función de pérdida $ℒ_X(W)$ , donde $W$ representa una matriz (o varias matrices) de pesos entre neuronas y $X$ representa el conjunto de datos de entrenamiento. Utilizo un subíndice para $X$ para indicar que nuestra minimización de $ℒ$ se produce sólo sobre los pesos $W$ (es decir, buscamos $W$ tal que $ℒ$ se minimiza) mientras que $X$ es fijo.

Ahora, si suponemos que tenemos $P$ elementos en $W$ (es decir, hay $P$ pesos en la red), $ℒ$ es una superficie en un $P+1$ -espacio dimensional. Para dar un análogo visual, imaginemos que tenemos sólo dos pesos de neuronas ( $P=2$ ). Entonces $ℒ$ tiene una interpretación geométrica fácil: es una superficie en un espacio tridimensional. Esto surge del hecho de que para cualesquiera matrices de pesos $W$ la función de pérdida puede evaluarse en $X$ y ese valor se convierte en la elevación de la superficie.

Pero existe el problema de la no-convexidad; la superficie que he descrito tendrá numerosos mínimos locales y, por lo tanto, los algoritmos de descenso de gradiente son susceptibles de quedarse "atascados" en esos mínimos mientras que una solución más profunda/baja/mejor puede estar cerca. Esto puede ocurrir si $X$ no cambia a lo largo de todas las iteraciones de entrenamiento, porque la superficie es fija para un determinado $X$ ; todas sus características son estáticas, incluidos sus diversos mínimos.

Una solución a esto es el entrenamiento por mini lotes combinado con la barajada. Barajando las filas y entrenando sólo en un subconjunto de ellas durante una iteración determinada, $X$ cambios con cada iteración, y en realidad es muy posible que no se realicen dos iteraciones a lo largo de toda la secuencia de iteraciones de entrenamiento y épocas exactamente iguales $X$ . El efecto es que el solucionador puede "rebotar" fácilmente fuera de un mínimo local. Imagina que el solucionador está atascado en un mínimo local en la iteración $i$ con minilotes de formación $X_i$ . Este mínimo local corresponde a $ℒ$ evaluado en un valor particular de pesos; lo llamaremos $ℒ_{X_i}(W_i)$ . En la siguiente iteración, la forma de nuestra superficie de pérdida cambia realmente porque estamos utilizando $X_{i+1}$ Es decir, $ℒ_{X_{i+1}}(W_i)$ puede tener un valor muy diferente al de $ℒ_{X_i}(W_i)$ ¡y es muy posible que no corresponda a un mínimo local! Ahora podemos calcular una actualización del gradiente y continuar con el entrenamiento. Para ser claros: la forma de $ℒ_{X_{i+1}}$ será -en general- diferente a la de $ℒ_{X_{i}}$ . Nótese que aquí me refiero a la función de pérdida $ℒ$ evaluado en un conjunto de entrenamiento $X$ es una superficie completa definida sobre todos los valores posibles de $W$ en lugar de la evaluación de esa pérdida (que es sólo un escalar) para un valor específico de $W$ . Obsérvese también que si se utilizan minilotes sin barajar, sigue habiendo cierto 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 (concretamente, verá el mismo conjunto exacto de minilotes -y, por tanto, de superficies de pérdida- durante cada época).

Una cosa que he evitado deliberadamente es la discusión sobre el tamaño de los minilotes, porque hay un millón de opiniones al respecto y tiene importantes implicaciones prácticas (se puede conseguir una mayor paralelización con lotes más grandes). Sin embargo, creo que merece la pena mencionar lo siguiente. Porque $ℒ$ se evalúa calculando un valor para cada fila de $X$ (y sumar o sacar la media; es decir, un operador conmutativo) para un conjunto dado de matrices de pesos $W$ la disposición de las filas de $X$ no tiene ningún efecto cuando se utiliza el descenso de gradiente de lote completo (es decir, cuando cada lote es el $X$ y las iteraciones y las épocas son la misma cosa).

1 votos

Gracias por esta útil explicación. Después de leer su respuesta en profundidad, tengo dos preguntas: 1. Usted ha mencionado que los mini lotes aportan cierto grado de diversificación limitada. No entiendo por qué esto no es suficiente para evitar stucking en mínimo local. Si el solucionador se encuentra en el mínimo local de la superficie de un lote, es muy probable que no se encuentre en el mínimo local de la superficie del lote siguiente, por lo que 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 al utilizar diferentes lotes?

2 votos

El beneficio de la diversificación sigue ahí sin barajar, pero no es tan significativo como cuando se utiliza barajar porque está constantemente viendo la misma secuencia de superficies de pérdida, mientras que si utilizamos barajar probablemente nunca ve la misma superficie de pérdida exacta más de una vez. En cuanto a los criterios de parada, por lo general he escrito la mía de tal manera que una vez que el porcentaje medio de reducción en la pérdida de un número determinado de iteraciones es menor que cierta tolerancia, la formación se detiene.

3 votos

Quizá no he respondido muy bien a tu pregunta sobre los mínimos locales. En teoría, todas estas superficies de pérdida deberían mostrar cierto 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. Por lo tanto, si un mínimo es lo suficientemente profundo, debería aparecer en un gran número de minilotes, por lo que es poco probable que el solucionador rebote fuera de él. Pero si el mínimo es básicamente "ruido", esta estrategia debería funcionar bastante bien y permitir que el modelo siga entrenándose.

9voto

agtb Puntos 176

Para intentar dar otra explicación:

Una de las cosas más potentes de 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ías, como el orden en que se introducen los datos en cada é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, lo que es una especie de sobreajuste.

Con respecto a la velocidad: los métodos de minibashing se basan en el descenso de gradiente estocástico (y sus mejoras), lo que significa que se basan en la aleatoriedad para encontrar un mínimo. Barajar minilotes hace que los gradientes sean más variables, lo que puede ayudar a la convergencia porque aumenta la probabilidad de dar con una buena dirección (o al menos así lo entiendo yo).

4 votos

¿Cómo puede una red neuronal aprender el orden en que se introducen los datos en cada época?

4 votos

En una palabra, no pueden. Si se utiliza el entrenamiento por 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 entrar en una determinada región (que quizás contenga un mínimo local...) en lugar de en otra. Pero decir que una NN feedforward "aprende" sobre el orden de los datos no es realmente correcto porque cada predicción se hace independientemente de cualquier otra predicción, y el orden en minilotes no tendrá, por supuesto, ningún efecto.

7voto

Matt Puntos 588

Desde un punto de vista muy simplista, los datos se introducen de forma secuencial, lo que sugiere que, como mínimo, es posible para que el orden de los datos tenga 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 un sesgo sistemático. En resumen, la aleatorización es barata y nunca hace daño, y a menudo minimiza los efectos del orden de los datos.

6voto

tahdhaze09 Puntos 1699

Imagina que tus últimas etiquetas de minilotes tienen efectivamente más ruido. Entonces estos lotes tirarán de los pesos finales aprendidos en la dirección equivocada. Si se baraja cada vez, las posibilidades de que los últimos lotes tengan un ruido desproporcionado se reducen.

0voto

VoteyDisciple Puntos 23229

Cuando entrenas tu red utilizando un conjunto de datos fijo, es decir, datos que nunca barajas durante el entrenamiento. Es muy probable que obtengas pesos muy altos y muy bajos como 40,70,-101,200...etc. Esto significa simplemente que su red no ha aprendido los datos de entrenamiento sino que ha aprendido el ruido de sus datos de entrenamiento. Es el clásico caso de un modelo sobreajustado. Con una red de este tipo, obtendrás predicciones exactas para los datos que has utilizado para el entrenamiento. Si utilizas cualquier otra entrada para probarla, tu modelo se desmoronará. Ahora bien, cuando se barajan los datos de entrenamiento después de cada época (iteración del conjunto global), simplemente se alimenta una entrada diferente a las neuronas en cada época y eso simplemente regula los pesos, lo que significa que es más probable obtener 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.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X