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
| Aspecto | Epoch | Iteración |
|---|---|---|
| Alcance | Dataset completo | Un lote |
| Frecuencia | Baja | Alta |
| Nivel | Global | Local |
| Uso típico | Seguimiento del entrenamiento | Actualizació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 DataLoaderdataset = [(x, x*2) for x in range(100)]batch_size = 10dataloader = DataLoader(dataset, batch_size=batch_size)epochs = 3for 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.