¿Por qué los investigadores de redes neuronales se preocupan por las épocas?

69

Una época en el descenso de gradiente estocástico se define como un solo paso a través de los datos. Para cada minibatch SGD, se extraen muestras, se calcula el gradiente y se actualizan los parámetros. En la configuración de época, las muestras se extraen sin reemplazo.k

Pero esto parece innecesario. ¿Por qué no dibujar cada minibatch SGD como extrae al azar del conjunto de datos completo en cada iteración? A lo largo de un gran número de épocas, las pequeñas desviaciones de las cuales se ven muestras con mayor o menor frecuencia parecerían no ser importantes.k

Reinstalar a Mónica
fuente
1
+1 por pregunta, ¡curiosamente tenía casi la misma pregunta que a punto de hacer!
Haitao Du
Evidencia anecdótica, pero recientemente instalé una red neuronal de una capa usando SGD en los datos MNIST, que son 50000 en tamaño de entrenamiento. Después de un recorrido aleatorio, la precisión de la clasificación no fue mucho mayor que 30-40%, y la probabilidad logarítmica claramente no había convergido. Así que repetí el procedimiento durante 30 épocas más que conducen a más del 90% de precisión. Al menos por contraejemplo, esto me demostró que pueden ser necesarios.
tomka
66
@tomka Eso parece proporcionar evidencia de que son necesarios múltiples pases sobre los datos, lo cual es consistente con el método propuesto aquí: seguir dibujando muestras por iteración de entrenamiento hasta la saciedad. k
Vuelva a instalar Monica
1
Otra pregunta interesante sería: ¿el pedido de mini lotes también tendrá un impacto en el sobreajuste?
Kh40tiK
3
@Pinocchio La práctica estándar de SGD es el muestreo sin reemplazo (hasta que se agote el conjunto de muestras, momento en el que una nueva época comienza de nuevo con todos los datos). Mi pregunta es por qué no utiliza muestreo con reemplazo. Resulta que una respuesta es que el muestreo sin reemplazo mejora la tasa de convergencia para el modelo.
Vuelva a instalar a Mónica el

Respuestas:

60

Además de la respuesta de Franck sobre aspectos prácticos, y la respuesta de David sobre la observación de subgrupos pequeños, los cuales son puntos importantes, de hecho hay algunas razones teóricas para preferir el muestreo sin reemplazo. La razón tal vez esté relacionada con el punto de David (que es esencialmente el problema del coleccionista de cupones ).

En 2009, Léon Bottou comparó el rendimiento de convergencia en un problema particular de clasificación de texto ( ).norte=781,265

Bottou (2009). Convergencia curiosamente rápida de algunos algoritmos de descenso de gradiente estocástico . Actas del simposio sobre aprendizaje y ciencia de datos. ( pdf del autor )

Entrenó una máquina de vectores de soporte a través de SGD con tres enfoques:

  • Aleatorio : extraiga muestras aleatorias del conjunto de datos completo en cada iteración.
  • Ciclo : baraja el conjunto de datos antes de comenzar el proceso de aprendizaje, luego camina sobre él secuencialmente, para que en cada época veas los ejemplos en el mismo orden.
  • Reproducción aleatoria : reorganice el conjunto de datos antes de cada época, de modo que cada época vaya en un orden diferente.

Examinó empíricamente la convergencia , donde C es la función de costo, θ t los parámetros en el paso t de optimización, y la expectativa es sobre la combinación de lotes asignados.mi[C(θt)-minθC(θ)]Cθtt

  • Para Random, la convergencia fue aproximadamente del orden de (como se esperaba por la teoría existente en ese punto).t-1
  • Cycle obtuvo convergencia en el orden de (con α > 1 pero variando dependiendo de la permutación, por ejemplo α 1.8 para su Figura 1).t-αα>1α1,8
  • Shuffle era más caótico, pero la línea de mejor ajuste dio , mucho más rápido que Random.t-2

Esta es su Figura 1 que ilustra que: Ilustración de convergencia a tasas dadas

Esto fue confirmado teóricamente más tarde por el artículo:

Gürbüzbalaban, Ozdaglar y Parrilo (2015). Por qué la reorganización aleatoria supera el descenso de gradiente estocástico . arXiv: 1510.08560 . ( video de la charla invitada en NIPS 2015 )

Su prueba solo se aplica al caso donde la función de pérdida es fuertemente convexa, es decir, no a las redes neuronales. Sin embargo, es razonable esperar que un razonamiento similar pueda aplicarse al caso de la red neuronal (que es mucho más difícil de analizar).

Dougal
fuente
3
Esta es una respuesta muy perspicaz. Muchas gracias por su contribución.
Vuelva a instalar Monica
1
perdón por la ignorancia, pero ¿te importaría explicar un poco más cuál es la diferencia entre los tres? En particular, estoy confundido acerca de Random, cuando dices "muestra", ¿qué quieres decir? Sé que esto no es lo que está haciendo referencia, pero el SGD de mini lotes Neural Net estándar generalmente muestra lotes sin reemplazo en cada iteración. ¿Es eso lo que hace Random? Si es así, ¿en qué se diferencia eso de Shuffle?
Pinocho
1
Ahora que lo releí, los tres parecen el mismo algoritmo, ¿cuál es la diferencia si el conjunto de datos se baraja o no y con qué frecuencia si los lotes para SGD siempre son aleatorios?
Pinocho
3
@Pinocchio Imagine un conjunto de datos de cuatro lamentos. Random podría ir ACADBBCA; Cada entrada es completamente al azar. El ciclo puede ir BDAC BDAC BDAC; elige un orden para cada época y luego repite. Shuffle podría ser BDAC ADCB CBAD; va en épocas, pero cada una es aleatoria. Este análisis no utiliza minibatches, solo SGD de un elemento a la vez.
Dougal
Esta es una respuesta genial. ¡Gracias!
DankMasterDan
24

De hecho, es bastante innecesario desde el punto de vista del rendimiento con un gran conjunto de entrenamiento, pero el uso de épocas puede ser conveniente, por ejemplo:

  • proporciona una métrica bastante buena: "la red neuronal se entrenó durante 10 épocas" es una declaración más clara que "la red neuronal se entrenó para 18942 iteraciones" o "la red neuronal se entrenó con más de 303072 muestras".
  • Hay suficientes cosas aleatorias que suceden durante la fase de entrenamiento: inicialización aleatoria del peso, mezcla de mini lotes, abandono, etc.
  • es fácil de implementar
  • evita preguntarse si el conjunto de entrenamiento es lo suficientemente grande como para no tener épocas

[1] da una razón más, que no es tan relevante dada la configuración actual de la computadora:

Como para cualquier método de descenso de gradiente estocástico (incluido el caso de mini lotes), es importante para la eficiencia del estimador que cada ejemplo o minibatch se muestree de manera aproximadamente independiente. Debido a que el acceso aleatorio a la memoria (o peor aún, al disco) es costoso, una buena aproximación, llamada gradiente incremental (Bertsekas, 2010), es visitar los ejemplos (o mini lotes) en un orden fijo correspondiente a su orden en la memoria o disco (repitiendo los ejemplos en el mismo orden en una segunda época, si no estamos en el caso en línea puro donde cada ejemplo se visita solo una vez).En este contexto, es más seguro si los ejemplos o mini lotes se colocan primero en un orden aleatorio (para asegurarse de que este sea el caso, podría ser útil mezclar primero los ejemplos). Se ha observado una convergencia más rápida si se cambia el orden en que se visitan los mini lotes para cada época, lo que puede ser razonablemente eficiente si el conjunto de entrenamiento se mantiene en la memoria de la computadora.


[1] Bengio, Yoshua. " Recomendaciones prácticas para la formación basada en gradientes de arquitecturas profundas " . Redes neuronales: trucos del oficio. Springer Berlin Heidelberg, 2012. 437-478.

Franck Dernoncourt
fuente
1
k
1
@Sycorax Muestreo sin reemplazo, a pesar de que, por supuesto, no es independiente, es "aproximadamente independiente" en el sentido de que es intercambiable . Desde el punto de vista de entrenar a un clasificador que no se preocupa demasiado por ningún punto de datos, esta capacidad de intercambio es definitivamente bastante cercana a "aproximadamente independiente".
Dougal
18

No estoy de acuerdo en algo que claramente no importará. Digamos que hay un millón de ejemplos de entrenamiento, y tomamos diez millones de muestras.

En R, podemos ver rápidamente cómo se ve la distribución con

plot(dbinom(0:40, size = 10 * 1E6, prob = 1E-6), type = "h")

binomio PMF

Algunos ejemplos se visitarán más de 20 veces, mientras que el 1% de ellos se visitarán 3 o menos veces. Si el conjunto de capacitación se eligió cuidadosamente para representar la distribución esperada de ejemplos en datos reales, esto podría tener un impacto real en algunas áreas del conjunto de datos, especialmente una vez que comience a dividir los datos en grupos más pequeños.

Considere el caso reciente en el que un votante de Illinois se sobremuestreó 30 veces y cambió drásticamente las estimaciones del modelo para su grupo demográfico (y, en menor medida, para toda la población de los EE. UU.). Si accidentalmente sobremuestreamos imágenes de "Ruffed Grouse" tomadas contra fondos verdes en días nublados con una profundidad de campo estrecha y subestimamos los otros tipos de imágenes de grouse, el modelo podría asociar esas características irrelevantes con la etiqueta de categoría. Cuantas más formas haya de dividir los datos, más subgrupos habrá y más oportunidades habrá para este tipo de error.

David J. Harris
fuente
1
No creo que haga una gran diferencia en la práctica para un conjunto de entrenamiento grande, pero definitivamente espero que lo haga con un conjunto de entrenamiento más pequeño.
Franck Dernoncourt
55
@FranckDernoncourt, el punto era que puede ser importante para grandes conjuntos de datos si comienzas a mirar pequeños subgrupos. Lo cual no es un procedimiento poco común en grandes conjuntos de datos,
dimpol
bastante seguro de que debería haber usado una distribución uniforme, no un binomio
lahwran
2
107 7106 6samples = sample(1:1E6, size = 1E7, replace = TRUE)plot(table(table(samples)) / 1E7)
2
aha! Estaba equivocado, entonces.
lahwran