Epoch vs Iteración: ¿Cuál es la diferencia?

Definición breve

  • Una epoch es una pasada completa por todo el dataset de entrenamiento
  • Una iteración es una actualización del modelo basada en un solo lote (batch)

Definición detallada

En el entrenamiento de modelos de aprendizaje automático, especialmente en deep learning, los términos epoch e iteración describen diferentes niveles del proceso de entrenamiento.

👉 Entender la diferencia es clave para interpretar el progreso del modelo.

¿Qué es una Epoch?

Una epoch ocurre cuando el modelo ha procesado todos los ejemplos del dataset una vez.

Características:

  • Incluye múltiples iteraciones
  • Representa un ciclo completo de aprendizaje
  • Se utiliza para medir progreso global

Ejemplo:

Si tienes 1,000 ejemplos → una epoch significa procesar los 1,000 ejemplos.

¿Qué es una Iteración?

Una iteración ocurre cuando el modelo procesa un solo lote (batch) y actualiza sus parámetros.

Características:

  • Unidad básica de entrenamiento
  • Depende del tamaño de lote
  • Hay múltiples iteraciones por epoch

Relación entre Epoch e Iteración

La relación depende del tamaño del lote:

👉 Iteraciones por epoch = tamaño del dataset / tamaño de lote

Ejemplo:

  • Dataset: 1,000 ejemplos
  • Batch size: 100

👉 Iteraciones por epoch = 1,000 / 100 = 10 iteraciones

Comparación directa

AspectoEpochIteración
AlcanceDataset completoUn lote
FrecuenciaBajaAlta
NivelGlobalLocal
Uso típicoSeguimiento del entrenamientoActualización del modelo

¿Por qué es importante esta diferencia?

Porque ambos afectan:

  • Cómo se mide el progreso
  • Cómo se ajustan hiperparámetros
  • Cómo se interpreta la convergencia

Insight clave

👉 Epoch = visión completa del dataset
👉 Iteración = paso individual de aprendizaje

Relación con otros conceptos

Estos términos están conectados con:

Ejemplo en PyTorch

from torch.utils.data import DataLoader
dataset = [(x, x*2) for x in range(100)]
batch_size = 10
dataloader = DataLoader(dataset, batch_size=batch_size)
epochs = 3
for epoch in range(epochs):
print(f"Epoch {epoch+1}")
for i, batch in enumerate(dataloader):
print(f" Iteración {i+1}")

👉 Cada ciclo externo es una epoch, cada paso interno es una iteración.

Errores comunes

Confundir epoch con iteración

  • No son equivalentes
  • Una epoch contiene múltiples iteraciones

Ignorar el tamaño de lote

  • Afecta directamente el número de iteraciones

Impacto en el entrenamiento

  • Más epochs → mayor aprendizaje (hasta cierto punto)
  • Más iteraciones → más actualizaciones del modelo

👉 Pero demasiado entrenamiento puede causar sobreajuste

Conclusión

La diferencia entre epoch e iteración es fundamental:

  • Epoch → ciclo completo de aprendizaje
  • Iteración → paso individual de actualización

Comprender ambos permite diseñar y monitorear mejor el entrenamiento de modelos.