Epoch
Aprende qué es una época en el aprendizaje automático y cómo afecta al entrenamiento del modelo. Explora la optimización, evita el sobreajuste y entrena Ultralytics YOLO26 con facilidad.
Un epoch representa un ciclo completo a través de todo el training dataset por parte de un algoritmo de aprendizaje automático. Durante este proceso, el modelo tiene la oportunidad de actualizar sus parámetros internos basándose exactamente una vez en cada muestra de los datos. En el contexto del deep learning, una sola pasada rara vez es suficiente para que una neural network aprenda patrones complejos de manera eficaz. Por lo tanto, el entrenamiento suele implicar múltiples epochs, lo que permite al algoritmo de aprendizaje perfeccionar de forma iterativa su comprensión y minimizar el error entre sus predicciones y la verdad de terreno real.
El papel de las épocas en la optimización#
El objetivo principal del entrenamiento es ajustar los model weights para minimizar una loss function específica. Los algoritmos de optimización, como el stochastic gradient descent (SGD) o el Adam optimizer, utilizan el error calculado durante cada epoch para guiar estos ajustes. A medida que aumenta el número de epochs, el modelo pasa generalmente de un estado de error elevado (predicciones aleatorias) a un error menor (patrones aprendidos).
Sin embargo, seleccionar el número correcto de epochs es un aspecto fundamental de la hyperparameter tuning.
- Demasiado pocos epochs: Esto puede provocar underfitting, donde el modelo aún no ha capturado la tendencia subyacente de los datos.
- Demasiados epochs: Esto suele resultar en overfitting, donde el modelo memoriza el ruido de entrenamiento en lugar de generalizar a nuevos datos. Para evitar esto, los desarrolladores suelen supervisar el rendimiento en los validation data y emplear técnicas como early stopping para detener el entrenamiento cuando la generalización deja de mejorar.
Época vs. Lote vs. Iteración#
Es habitual que los principiantes confundan "epoch" con términos relacionados. Comprender la jerarquía de estos conceptos es esencial para configurar correctamente los training loops:
- Época: Una pasada completa a través del conjunto de datos completo.
- Batch: Un subconjunto del conjunto de datos procesado simultáneamente. Como los conjuntos de datos suelen ser demasiado grandes para caber en la GPU memory de una sola vez, se dividen en grupos más pequeños definidos por el batch size.
- Iteración: Una única actualización de los pesos del modelo. Si un conjunto de datos tiene 1.000 imágenes y el tamaño del lote es 100, se necesitarán 10 iteraciones para completar una época.
Aplicaciones en el mundo real#
El número de épocas requerido varía drásticamente dependiendo de la complejidad de la tarea y el tamaño de los datos.
- Análisis de imágenes médicas: En el medical image analysis, como la detección de tumores en resonancias magnéticas, la precisión es primordial. Los modelos entrenados para estas tareas suelen ejecutarse durante cientos de epochs. Este extenso entrenamiento garantiza que la convolutional neural network (CNN) pueda discernir sutiles anomalías que distinguen el tejido maligno del tejido sano, salvando potencialmente vidas.
- Conducción autónoma: Para los autonomous vehicles, los modelos de detección de objetos deben identificar de forma fiable peatones, señales y otros vehículos. El entrenamiento de estos sistemas robustos suele implicar conjuntos de datos masivos como COCO o Objects365. Aunque el tamaño del conjunto de datos es enorme, el modelo sigue requiriendo múltiples epochs para converger hacia una solución que generalice bien en diversas condiciones meteorológicas y de iluminación.
Gestión de ciclos de entrenamiento con código#
Al utilizar frameworks modernos como Ultralytics YOLO, definir el número de epochs es un argumento sencillo en el comando de entrenamiento. Herramientas como la Ultralytics Platform pueden ayudar a visualizar las curvas de pérdida a lo largo de cada epoch para identificar el punto de parada óptimo.
El siguiente ejemplo demuestra cómo establecer el recuento de epochs al entrenar un modelo YOLO26:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)En este fragmento, el argumento epochs=50 indica al motor de entrenamiento que recorra el conjunto de datos coco8.yaml 50 veces distintas. Durante cada ciclo, el modelo realiza la forward propagation y la backpropagation para perfeccionar sus capacidades de detección.






