Búsqueda de sitios web

Diferencia entre un lote y una época en una red neuronal


El descenso de gradiente estocástico es un algoritmo de aprendizaje que tiene varios hiperparámetros.

Dos hiperparámetros que a menudo confunden a los principiantes son el tamaño del lote y la cantidad de épocas. Ambos son valores enteros y parecen hacer lo mismo.

En esta publicación, descubrirá la diferencia entre lotes y épocas en el descenso de gradiente estocástico.

Después de leer este post, sabrás:

  • El descenso de gradiente estocástico es un algoritmo de aprendizaje iterativo que utiliza un conjunto de datos de entrenamiento para actualizar un modelo.
  • El tamaño del lote es un hiperparámetro de descenso de gradiente que controla la cantidad de muestras de entrenamiento con las que se debe trabajar antes de que se actualicen los parámetros internos del modelo.
  • El número de épocas es un hiperparámetro de descenso de gradiente que controla el número de pasadas completas a través del conjunto de datos de entrenamiento.

Pon en marcha tu proyecto con mi nuevo libro Aprendizaje profundo con Python, que incluye tutoriales paso a paso y los archivos de código fuente de Python para todos. ejemplos.

Empecemos.

Descripción general

Esta publicación se divide en cinco partes; ellos son:

  1. Descenso del gradiente estocástico
  2. ¿Qué es una muestra?
  3. ¿Qué es un lote?
  4. ¿Qué es una época?
  5. ¿Cuál es la diferencia entre lote y época?

Descenso del gradiente estocástico

Stochastic Gradient Descent, o SGD para abreviar, es un algoritmo de optimización que se utiliza para entrenar algoritmos de aprendizaje automático, en particular redes neuronales artificiales utilizadas en el aprendizaje profundo.

El trabajo del algoritmo es encontrar un conjunto de parámetros del modelo interno que funcionen bien frente a alguna medida de rendimiento, como la pérdida logarítmica o el error cuadrático medio.

La optimización es un tipo de proceso de búsqueda y puedes considerar esta búsqueda como aprendizaje. El algoritmo de optimización se llama “descenso de gradiente”, donde “gradiente” se refiere al cálculo de un gradiente de error o pendiente de error y “descenso” se refiere al movimiento hacia abajo a lo largo que se inclina hacia un nivel mínimo de error.

El algoritmo es iterativo. Esto significa que el proceso de búsqueda se produce en múltiples pasos discretos y, con suerte, cada paso mejora ligeramente los parámetros del modelo.

Cada paso implica utilizar el modelo con el conjunto actual de parámetros internos para hacer predicciones sobre algunas muestras, comparar las predicciones con los resultados esperados reales, calcular el error y utilizar el error para actualizar los parámetros internos del modelo.

Este procedimiento de actualización es diferente para diferentes algoritmos, pero en el caso de redes neuronales artificiales, se utiliza el algoritmo de actualización por retropropagación.

Antes de profundizar en lotes y épocas, echemos un vistazo a lo que entendemos por muestra.

Obtenga más información sobre el descenso de gradientes aquí:

  • Descenso de gradiente para aprendizaje automático

¿Qué es una muestra?

Una muestra es una sola fila de datos.

Contiene entradas que se introducen en el algoritmo y una salida que se utiliza para comparar con la predicción y calcular un error.

Un conjunto de datos de entrenamiento se compone de muchas filas de datos, p. muchas muestras. Una muestra también puede denominarse instancia, observación, vector de entrada o vector de características.

Ahora que sabemos qué es una muestra, definamos un lote.

¿Qué es un lote?

El tamaño del lote es un hiperparámetro que define la cantidad de muestras con las que se debe trabajar antes de actualizar los parámetros internos del modelo.

Piense en un lote como un bucle for que itera sobre una o más muestras y hace predicciones. Al final del lote, las predicciones se comparan con las variables de salida esperadas y se calcula un error. A partir de este error, el algoritmo de actualización se utiliza para mejorar el modelo, p. moverse hacia abajo a lo largo del gradiente de error.

Un conjunto de datos de entrenamiento se puede dividir en uno o más lotes.

Cuando todas las muestras de entrenamiento se utilizan para crear un lote, el algoritmo de aprendizaje se denomina descenso de gradiente por lotes. Cuando el lote tiene el tamaño de una muestra, el algoritmo de aprendizaje se denomina descenso de gradiente estocástico. Cuando el tamaño del lote es más de una muestra y menor que el tamaño del conjunto de datos de entrenamiento, el algoritmo de aprendizaje se denomina descenso de gradiente de mini lote.

  • Descenso de gradiente por lotes. Tamaño del lote=Tamaño del conjunto de entrenamiento
  • Descenso de gradiente estocástico. Tamaño de lote=1
  • Descenso de gradiente de mini lotes. 1 < Tamaño del lote < Tamaño del conjunto de entrenamiento

En el caso del descenso de gradiente de mini lotes, los tamaños de lote populares incluyen 32, 64 y 128 muestras. Es posible que vea estos valores utilizados en modelos en la literatura y en tutoriales.

¿Qué pasa si el conjunto de datos no se divide equitativamente por el tamaño del lote?

Esto puede suceder y sucede a menudo cuando se entrena un modelo. Simplemente significa que el lote final tiene menos muestras que los otros lotes.

Como alternativa, puede eliminar algunas muestras del conjunto de datos o cambiar el tamaño del lote de manera que la cantidad de muestras en el conjunto de datos se divida uniformemente por el tamaño del lote.

Para obtener más información sobre las diferencias entre estas variaciones de descenso de gradiente, consulte la publicación:

  • Una suave introducción al descenso de gradiente de mini lotes y cómo configurar el tamaño del lote

Para obtener más información sobre el efecto del tamaño del lote en el proceso de aprendizaje, consulte la publicación:

  • Cómo controlar la velocidad y la estabilidad del tamaño del lote de entrenamiento de redes neuronales

Un lote implica una actualización del modelo mediante muestras; A continuación, veamos una época.

¿Qué es una época?

El número de épocas es un hiperparámetro que define el número de veces que el algoritmo de aprendizaje funcionará en todo el conjunto de datos de entrenamiento.

Una época significa que cada muestra del conjunto de datos de entrenamiento ha tenido la oportunidad de actualizar los parámetros internos del modelo. Una época se compone de uno o más lotes. Por ejemplo, como se indicó anteriormente, una época que tiene un lote se denomina algoritmo de aprendizaje de descenso de gradiente por lotes.

Puede pensar en un bucle for sobre la cantidad de épocas en las que cada bucle avanza sobre el conjunto de datos de entrenamiento. Dentro de este bucle for hay otro bucle for anidado que itera sobre cada lote de muestras, donde un lote tiene el número de muestras de "tamaño de lote" especificado.

El número de épocas es tradicionalmente grande, a menudo cientos o miles, lo que permite que el algoritmo de aprendizaje se ejecute hasta que el error del modelo se haya minimizado lo suficiente. Puede ver ejemplos del número de épocas en la literatura y en tutoriales configurados en 10, 100, 500, 1000 y más.

Es común crear gráficos de líneas que muestren épocas a lo largo del eje x como tiempo y el error o habilidad del modelo en el eje y. Estos gráficos a veces se denominan curvas de aprendizaje. Estos gráficos pueden ayudar a diagnosticar si el modelo ha aprendido demasiado, no ha aprendido lo suficiente o si se ajusta adecuadamente al conjunto de datos de entrenamiento.

Para obtener más información sobre el diagnóstico mediante curvas de aprendizaje con redes LSTM, consulte la publicación:

  • Una suave introducción a las curvas de aprendizaje para diagnosticar el rendimiento del modelo

Por si aún no está claro, veamos las diferencias entre lotes y épocas.

¿Cuál es la diferencia entre lote y época?

El tamaño del lote es una cantidad de muestras procesadas antes de actualizar el modelo.

El número de épocas es el número de pases completos a través del conjunto de datos de entrenamiento.

El tamaño de un lote debe ser mayor o igual a uno y menor o igual al número de muestras en el conjunto de datos de entrenamiento.

El número de épocas se puede establecer en un valor entero entre uno e infinito. Puede ejecutar el algoritmo todo el tiempo que desee e incluso detenerlo utilizando otros criterios además de un número fijo de épocas, como un cambio (o falta de cambio) en el error del modelo a lo largo del tiempo.

Ambos son valores enteros y ambos son hiperparámetros para el algoritmo de aprendizaje, p. parámetros para el proceso de aprendizaje, no parámetros del modelo interno encontrados por el proceso de aprendizaje.

Debe especificar el tamaño del lote y la cantidad de épocas para un algoritmo de aprendizaje.

No existen reglas mágicas sobre cómo configurar estos parámetros. Debe probar diferentes valores y ver cuál funciona mejor para su problema.

Ejemplo resuelto

Finalmente, concretamos esto con un pequeño ejemplo.

Suponga que tiene un conjunto de datos con 200 muestras (filas de datos) y elige un tamaño de lote de 5 y 1000 épocas.

Esto significa que el conjunto de datos se dividirá en 40 lotes, cada uno con cinco muestras. Los pesos del modelo se actualizarán después de cada lote de cinco muestras.

Esto también significa que una época implicará 40 lotes o 40 actualizaciones del modelo.

Con 1000 épocas, el modelo estará expuesto o pasará por todo el conjunto de datos 1000 veces. Es decir, un total de 40.000 lotes durante todo el proceso de formación.

Lectura adicional

Esta sección proporciona más recursos sobre el tema si desea profundizar más.

  • Descenso de gradiente para aprendizaje automático
  • Cómo controlar la velocidad y la estabilidad del tamaño del lote de redes neuronales de entrenamiento
  • Una suave introducción al descenso de gradiente de mini lotes y cómo configurar el tamaño del lote
  • Una suave introducción a las curvas de aprendizaje para diagnosticar el rendimiento del modelo
  • Descenso de gradiente estocástico en Wikipedia
  • Propagación hacia atrás en Wikipedia

Resumen

En esta publicación, descubrió la diferencia entre lotes y épocas en el descenso de gradiente estocástico.

Específicamente, aprendiste:

  • El descenso de gradiente estocástico es un algoritmo de aprendizaje iterativo que utiliza un conjunto de datos de entrenamiento para actualizar un modelo.
  • El tamaño del lote es un hiperparámetro de descenso de gradiente que controla la cantidad de muestras de entrenamiento con las que se debe trabajar antes de que se actualicen los parámetros internos del modelo.
  • El número de épocas es un hiperparámetro de descenso de gradiente que controla el número de pasadas completas a través del conjunto de datos de entrenamiento.

¿Tiene alguna pregunta?
Haga sus preguntas en los comentarios a continuación y haré todo lo posible para responder.

Artículos relacionados