Epoch
Aprende o que é uma época em machine learning e como afeta o treino do modelo. Explora a otimização, evita o overfitting e treina o Ultralytics YOLO26 com facilidade.
Uma época representa um ciclo completo por todo o conjunto de dados de treino realizado por um algoritmo de machine learning. Durante esse processo, o modelo tem a oportunidade de atualizar os seus parâmetros internos com base em cada amostra dos dados exatamente uma vez. No contexto da aprendizagem profunda, uma única passagem raramente é suficiente para que uma rede neural aprenda padrões complexos de forma eficaz. Por isso, o treino normalmente envolve várias épocas, permitindo que o algoritmo de aprendizagem refine iterativamente a sua compreensão e minimize o erro entre as suas previsões e a verdade de referência.
O papel das épocas na otimização#
O principal objetivo do treino é ajustar os pesos do modelo para minimizar uma função de perda específica. Algoritmos de otimização, como o gradiente descendente estocástico (SGD) ou o otimizador Adam, utilizam o erro calculado durante cada época para orientar esses ajustes. À medida que o número de épocas aumenta, o modelo geralmente passa de um estado de erro elevado (adivinhação aleatória) para um estado de erro mais baixo (padrões aprendidos).
No entanto, selecionar o número correto de épocas é um aspeto crítico do ajuste de hiperparâmetros.
- Poucas épocas: Isto pode levar a subajuste, em que o modelo ainda não captou a tendência subjacente dos dados.
- Demasiadas épocas: Isto resulta frequentemente em sobreajuste, em que o modelo memoriza o ruído do treino em vez de generalizar para novos dados. Para evitar isso, os programadores monitorizam frequentemente o desempenho nos dados de validação e utilizam técnicas como a paragem antecipada para interromper o treino quando a generalização deixa de melhorar.
Época vs. lote vs. iteração#
É comum os principiantes confundirem "época" com termos relacionados. Compreender a hierarquia destes conceitos é essencial para configurar corretamente os ciclos de treino:
- Época: Uma passagem completa por todo o conjunto de dados.
- Lote: Um subconjunto do conjunto de dados processado simultaneamente. Como os conjuntos de dados são frequentemente demasiado grandes para caberem de uma só vez na memória da GPU, são divididos em grupos mais pequenos definidos pelo tamanho do lote.
- Iteração: Uma única atualização dos pesos do modelo. Se um conjunto de dados tiver 1.000 imagens e o tamanho do lote for 100, serão necessárias 10 iterações para concluir uma época.
Aplicações no mundo real#
O número de épocas necessário varia muito, dependendo da complexidade da tarefa e do tamanho dos dados.
- Análise de imagens médicas: Na análise de imagens médicas, como na deteção de tumores em exames de MRI, a precisão é fundamental. Os modelos treinados para estas tarefas executam frequentemente centenas de épocas. Este treino extensivo garante que a rede neural convolucional (CNN) consegue distinguir anomalias subtis que diferenciam tecido maligno de tecido saudável, podendo salvar vidas.
- Condução autónoma: No caso dos veículos autónomos, os modelos de deteção de objetos têm de identificar de forma fiável peões, sinais e outros veículos. O treino destes sistemas robustos envolve normalmente conjuntos de dados massivos, como o COCO ou o Objects365. Embora o tamanho do conjunto de dados seja enorme, o modelo continua a necessitar de várias épocas para convergir para uma solução que generalize bem a diversas condições meteorológicas e de iluminação.
Gerir ciclos de treino com código#
Ao utilizar frameworks modernos como o Ultralytics YOLO, definir o número de épocas é um argumento simples no comando de treino. Ferramentas como a Ultralytics Platform podem ajudar a visualizar as curvas de perda ao longo de cada época para identificar o ponto de paragem ideal.
O exemplo seguinte demonstra como definir a contagem de épocas ao treinar um 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)Neste trecho, o argumento epochs=50 instrui o motor de treino a percorrer o conjunto de dados coco8.yaml 50 vezes distintas. Durante cada ciclo, o modelo executa propagação para a frente e retropropagação para refinar as suas capacidades de deteção.









