Early Stopping
A parada antecipada encerra o treinamento quando o desempenho na validação estagna, reduzindo o desperdício de recursos computacionais e o sobreajuste, ao mesmo tempo que preserva o melhor checkpoint do modelo.
A parada antecipada é uma técnica de treinamento que encerra uma execução iterativa de aprendizado de máquina quando uma métrica de desempenho monitorada deixa de melhorar. Ela permite que o desempenho na validação determine por quanto tempo o aprendizado continua, reduzindo a computação desnecessária e limitando o sobreajuste. Intuitivamente, o treinamento para quando a prática adicional já não melhora a capacidade do modelo de lidar com exemplos reservados. Fora do aprendizado de máquina, «parar cedo» significa simplesmente encerrar uma atividade antes do prazo previsto.
Como funciona a parada antecipada#
Durante o treinamento, um otimizador atualiza um modelo usando dados de treinamento. Em intervalos regulares, o modelo é avaliado em dados de validação separados. A perda de treinamento pode continuar diminuindo enquanto o desempenho na validação piora: isso é um sinal de sobreajuste, em que o modelo se ajusta cada vez mais a detalhes específicos dos exemplos de treinamento. A parada antecipada limita esse processo ao selecionar um ponto de parada com base no desempenho em dados reservados.
Uma implementação típica acompanha a melhor pontuação de validação, salva os pesos do modelo correspondentes e conta as verificações consecutivas sem melhoria suficiente. Uma melhoria reinicia o contador; quando a paciência configurada é atingida, o treinamento termina. Restaurar o melhor checkpoint preserva o melhor resultado de validação observado, que pode ocorrer antes da última etapa de treinamento.
Nelson Morgan e Hervé Bourlard introduziram a parada baseada em validação para redes neurais feedforward em seu trabalho de 1989 sobre generalização e estimativa de parâmetros. Os experimentos incluíram classificação de fala e demonstraram como selecionar a duração do treinamento monitorando dados independentes.
Métricas, paciência e melhores pesos#
A regra de parada depende de várias configurações:
- Métrica monitorada: A perda de validação mede o erro de previsão e é minimizada; a precisão de validação mede as previsões corretas e é maximizada.
- Paciência e duração do treinamento: A paciência especifica quantas verificações sem sucesso o treinamento tolera. Uma época é uma passagem completa pelo conjunto de dados de treinamento.
- Limite de melhoria: No Keras, isso é chamado de
min_delta, a mudança absoluta mínima considerada progresso. A configuraçãorestore_best_weights=Truerestaura os pesos associados ao melhor valor monitorado. - Frequência das verificações de validação: O PyTorch Lightning conta a paciência em verificações de validação. Verificar a cada dez épocas com paciência três permite três verificações sem sucesso ao longo de trinta épocas após a melhor verificação.
A paciência e os limites de melhoria são hiperparâmetros: configurações escolhidas fora do processo de atualização dos pesos. Uma paciência menor encerra mais cedo as execuções estagnadas; uma paciência maior permite platôs temporários mais longos. Um período de aquecimento atrasa o monitoramento até que o aprendizado inicial se estabilize. Essas configurações interagem com a taxa de aprendizado, que controla o tamanho das atualizações de otimização.
Aplicações e exemplo executável#
A parada antecipada se aplica tanto a redes neurais quanto a árvores com boosting de gradiente. No boosting de gradiente com scikit-learn, cada estágio adiciona uma árvore, e a parada baseada em validação controla o número de estágios. O exemplo de preços de imóveis da Califórnia usa validation_fraction para reservar dados e n_iter_no_change para parar quando o progresso na validação estagnar.
O exemplo a seguir usa o conjunto de dados de diabetes incluído no scikit-learn e imprime o número de estágios de boosting realmente ajustados:
from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor
X, y = load_diabetes(return_X_y=True)
# Reserve an internal validation split and monitor progress.
model = GradientBoostingRegressor(
n_estimators=1000,
validation_fraction=0.2,
n_iter_no_change=10,
random_state=42,
)
model.fit(X, y)
print(f"Boosting stages fitted: {model.n_estimators_}/1000")A contagem de estágios ajustados mostra em que ponto o critério de parada encerrou a construção das árvores em relação ao limite de 1.000 estágios.
O Ultralytics YOLO aplica a parada antecipada durante o treinamento do modelo, inclusive no YOLO26, por meio do argumento patience, que conta as épocas sem melhora na adequação de validação. Para detecção, a adequação usa mAP50–95, e o treinador salva o melhor checkpoint como best.pt.
Parada antecipada e conceitos relacionados#
A parada antecipada é uma forma de regularização que controla a duração do treinamento. A redução de peso penaliza pesos grandes, enquanto o dropout desativa unidades aleatoriamente durante o treinamento. Esses mecanismos podem funcionar em conjunto. Parar cedo demais causa subajuste, deixando padrões úteis sem aprendizado.
O salvamento de checkpoints salva os estados do modelo; a parada antecipada decide quando a otimização termina. A validação cruzada alterna as partições reservadas para avaliar as escolhas do modelo, enquanto dados de teste separados permitem a avaliação final. Como a decisão de parada seleciona um modelo com base nos resultados da validação, a pontuação de validação do checkpoint selecionado faz parte da seleção do modelo.
No Keras, restore_best_weights tem como padrão False, então ativar apenas a parada antecipada deixa o modelo com os pesos da etapa final.










