Época vs iteración al entrenar redes neuronales [cerrado]
¿Cuál es la diferencia entre época e iteración al entrenar un perceptrón multicapa?
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 del lote = el número de ejemplos de entrenamiento en un paso hacia adelante/hacia atrás. Cuanto mayor sea el tamaño del lote, más espacio de memoria necesitará.
- número de iteraciones = número de pasadas, cada pasada utiliza [tamaño de lote] cantidad de ejemplos. Para ser claros, un pase = un pase hacia adelante + un pase hacia atrás (no contamos el pase hacia adelante y el pase hacia atrás como dos pases diferentes).
Por ejemplo: si tiene 1000 ejemplos de entrenamiento y el tamaño de su lote es 500, se necesitarán 2 iteraciones para completar 1 época.
Para su información: Compensación entre el tamaño del lote y el número de iteraciones para entrenar una red neuronal
El término "lote" es ambiguo: algunas personas lo usan para designar todo el conjunto de entrenamiento, y otras lo usan para referirse a la cantidad de ejemplos de entrenamiento en un pase hacia adelante/hacia atrás (como lo hice yo en esta respuesta). Para evitar esa ambigüedad y dejar claro que el lote corresponde al número de ejemplos de entrenamiento en un pase hacia adelante/hacia atrás, se puede utilizar el término mini-lote .
La época y la iteración describen cosas diferentes.
Época
Una época describe la cantidad de veces que el algoritmo ve el conjunto de datos completo . Entonces, cada vez que el algoritmo ve todas las muestras en el conjunto de datos, se completa una época.
Iteración
Una iteración describe la cantidad de veces que un lote de datos pasó por el algoritmo. En el caso de las redes neuronales, eso significa el paso hacia adelante y el paso hacia atrás . Entonces, cada vez que pasas un lote de datos a través de NN, completas una iteración .
Ejemplo
Un ejemplo podría aclararlo.
Supongamos que tiene un conjunto de datos de 10 ejemplos (o muestras). Tiene un tamaño de lote de 2 y ha especificado que desea que el algoritmo se ejecute durante 3 épocas.
Por lo tanto, en cada época, tienes 5 lotes (10/2 = 5). Cada lote pasa por el algoritmo, por lo tanto, tiene 5 iteraciones por época. Como ha especificado 3 épocas, tiene un total de 15 iteraciones (5*3 = 15) para el entrenamiento.