Epoch
Aprenda o que é uma época no aprendizado de máquina e como ela impacta o treinamento de modelos. Explore a otimização, evite o overfitting e treine o Ultralytics YOLO26 com facilidade.
Uma época representa um ciclo completo pelo conjunto de dados de treinamento inteiro por um algoritmo de aprendizado de máquina. Durante esse processo, o modelo tem a oportunidade de atualizar seus parâmetros internos com base em cada amostra nos dados exatamente uma vez. No contexto de aprendizado profundo, uma única passagem raramente é suficiente para que uma rede neural aprenda padrões complexos de forma eficaz. Portanto, o treinamento normalmente envolve várias épocas, permitindo que o algoritmo de aprendizado refine iterativamente seu entendimento e minimize o erro entre suas previsões e a verdade fundamental real.
Link to this sectionO papel das épocas na otimização#
O objetivo principal do treinamento é ajustar os pesos do modelo para minimizar uma função de perda específica. Algoritmos de otimização, como gradiente descendente estocástico (SGD) ou o otimizador Adam, usam o erro calculado durante cada época para orientar esses ajustes. À medida que o número de épocas aumenta, o modelo geralmente muda de um estado de erro alto (palpites aleatórios) para um erro menor (padrões aprendidos).
No entanto, selecionar o número correto de épocas é um aspecto crítico do ajuste de hiperparâmetros.
- Poucas épocas: Isso pode levar ao subajuste, onde o modelo ainda não capturou a tendência subjacente dos dados.
- Muitas épocas: Isso geralmente resulta em sobreajuste, onde o modelo memoriza o ruído do treinamento em vez de generalizar para novos dados. Para evitar isso, os desenvolvedores frequentemente monitoram o desempenho em dados de validação e empregam técnicas como parada antecipada para interromper o treinamento quando a generalização para de melhorar.
Link to this sectionÉpoca vs. Lote vs. Iteração#
É comum que iniciantes confundam "época" com termos relacionados. Entender a hierarquia desses conceitos é essencial para configurar loops de treinamento corretamente:
- Época: Uma passagem completa pelo conjunto de dados completo.
- Lote (Batch): Um subconjunto do conjunto de dados processado simultaneamente. Como os conjuntos de dados são frequentemente grandes demais para caberem todos de uma vez na memória da GPU, eles são divididos em grupos menores definidos pelo tamanho do lote.
- Iteração: Uma única atualização nos pesos do modelo. Se um conjunto de dados tem 1.000 imagens e o tamanho do lote é 100, levará 10 iterações para completar uma época.
Link to this sectionAplicações no Mundo Real#
O número de épocas necessárias varia drasticamente dependendo da complexidade da tarefa e do tamanho dos dados.
- Análise de imagem médica: Na análise de imagem médica, como na detecção de tumores em exames de ressonância magnética, a precisão é fundamental. Modelos treinados para essas tarefas costumam rodar por centenas de épocas. Esse treinamento extensivo garante que a rede neural convolucional (CNN) consiga discernir anomalias sutis que distinguem tecido maligno de tecido saudável, potencialmente salvando vidas.
- Direção autônoma: Para veículos autônomos, modelos de detecção de objetos precisam identificar de forma confiável pedestres, sinais e outros veículos. Treinar esses sistemas robustos normalmente envolve conjuntos de dados massivos como COCO ou Objects365. Embora o tamanho do conjunto de dados seja enorme, o modelo ainda requer várias épocas para convergir em uma solução que generalize bem para diversas condições climáticas e de iluminação.
Link to this sectionGerenciando ciclos de treinamento com código#
Ao usar frameworks modernos como Ultralytics YOLO, definir o número de épocas é um argumento direto no comando de treinamento. Ferramentas como a Ultralytics Platform podem ajudar a visualizar as curvas de perda ao longo de cada época para identificar o ponto de parada ideal.
O exemplo a seguir 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 treinamento a percorrer o conjunto de dados coco8.yaml 50 vezes distintas. Durante cada ciclo, o modelo realiza propagação direta e retropropagação para refinar suas capacidades de detecção.






