12 votos

Redes neuronales: ¿Es una época en SGD lo mismo que una época en mini-batch?

En SGD, un epoch sería la presentación completa de los datos de entrenamiento, y luego habría N actualizaciones de peso por epoch (si hay N ejemplos de datos en el conjunto de entrenamiento).

Si ahora hacemos mini-lotes en su lugar, digamos en lotes de 20. ¿Ahora consiste un epoch en N/20 actualizaciones de peso, o se 'alarga' un epoch por 20 para que contenga el mismo número de actualizaciones de peso?

Hago esta pregunta ya que en un par de papers el aprendizaje parece ser demasiado rápido para el número de epochs indicado.

0 votos

0 votos

La pregunta se centra más en la convención, es decir, si alguien afirma que ha entrenado una red durante 10 épocas utilizando mini-lotes de 20, ¿esto significa que ha habido 10 * N actualizaciones de peso, o 10 * N / 20?

0 votos

Entiendo, disculpa por la confusión, tal vez stats.stackexchange.com/a/164875/12359 responde a tu pregunta.

9voto

Franck Dernoncourt Puntos 2128

En la terminología de redes neuronales:

  • una época = un pase hacia adelante y un pase hacia atrás de todos los ejemplos de entrenamiento
  • tamaño de lote = el número de ejemplos de entrenamiento en un pase hacia adelante/hacia atrás. Cuanto mayor sea el tamaño del lote, más espacio de memoria necesitarás.
  • número de iteraciones = número de pasadas, cada pasada utilizando [tamaño de lote] número de ejemplos. Para ser claro, una pasada = un pase hacia adelante + un pase hacia atrás (no contamos el pase hacia adelante y el pase hacia atrás como dos pasadas diferentes).

Ejemplo: si tienes 1000 ejemplos de entrenamiento y tu tamaño de lote es 500, entonces tomará 2 iteraciones completar 1 época.

2voto

ibb Puntos 29

La respuesta de Franck es completamente correcta. Si prestas más atención a su mensaje, te darás cuenta de que estás diciendo lo mismo que él, solo estás omitiendo un aspecto importante.

En primer lugar, un época se refiere en efecto a un pase completo (hacia adelante y hacia atrás) de todos los ejemplos de entrenamiento. Este no debería ser un tema discutible.

En segundo lugar, al usar descenso de gradiente mini-batch, los parámetros son actualizados efectivamente en cada pase. Franck y tú ambos dijeron lo mismo, solo de manera diferente. Sin embargo, creo que tu confusión proviene del hecho de que, al usar descenso de gradiente mini-batch (o estocástico), se requieren múltiples iteraciones para completar una época. Aspecto claramente destacado por Franck.

Para mayor claridad, si hay n muestras de entrenamiento, se requieren n / (# de mini-batches) iteraciones para que el GD de mini-batch complete una época, n iteraciones para SGD, y evidentemente 1 para GD de batch.

Creo que, en general, este es un tema confuso y es importante que otros tengan una comprensión clara del significado de un lote, mini-lote, época, pase e iteración. Por lo tanto, mensajes confusos como el tuyo deberían ser resaltados y corregidos.

1voto

DVC Puntos 59

Época es una palabra que significa un solo paso a través de un conjunto de entrenamiento, no todos los ejemplos de entrenamiento.

Entonces, sí. Si hacemos GD en mini lotes en lugar de GD en lotes, digamos en lotes de 20, una época ahora consiste en N/20 actualizaciones de peso. N es el número total de muestras.

Para ser verboso, En un descenso de gradiente en lotes, un solo paso a través del entrenamiento te permite realizar solo un paso de descenso de gradiente. Con descenso de gradiente en mini-lotes (tamaño del lote = 5,000), un solo paso a través del conjunto de entrenamiento, es decir, una época, te permite realizar 5,000 pasos de descenso de gradiente.

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