Overfitting
Explore as causas e os sintomas do sobreajuste em machine learning. Saiba como evitar a elevada variância e melhorar a generalização utilizando o Ultralytics YOLO26.
O sobreajuste ocorre no machine learning quando um modelo aprende demasiado bem os dados de treino, capturando ruído e flutuações aleatórias em vez da distribuição subjacente dos dados. Em vez de aprender padrões gerais aplicáveis a dados novos e não observados, um modelo com sobreajuste memoriza efetivamente os exemplos específicos do conjunto de treino. Isto resulta num excelente desempenho nos dados de treino, mas numa fraca generalização para cenários do mundo real. É frequentemente descrito como "alta variância", o que significa que as previsões do modelo variam significativamente consoante o conjunto de dados específico utilizado no treino.
Porque ocorre o sobreajuste#
A principal causa do sobreajuste é a complexidade excessiva do modelo em relação à quantidade de dados disponíveis. Se uma rede neural for demasiado grande — ou seja, se tiver demasiadas camadas ou parâmetros — pode memorizar facilmente os exemplos de treino. Outros fatores contribuintes incluem:
- Dados de treino insuficientes: Os conjuntos de dados pequenos podem conter correlações espúrias que não existem na população mais ampla. Os modelos treinados com dados limitados tendem a aprender estes padrões acidentais.
- Ruído e valores atípicos nos dados: Níveis elevados de ruído ou valores atípicos não representativos nos dados de treino podem induzir o modelo em erro, fazendo com que ajuste os seus parâmetros internos para se adaptar a anomalias, em vez de ao sinal verdadeiro.
- Duração prolongada do treino: Treinar durante demasiadas épocas permite que o modelo continue a aperfeiçoar os seus pesos até se ajustar ao ruído do conjunto de treino. Isto é frequentemente monitorizado utilizando dados de validação.
Sobreajuste vs. subajuste#
É importante distinguir o sobreajuste do subajuste. Enquanto o sobreajuste envolve aprender demasiados detalhes, incluindo ruído, o subajuste ocorre quando um modelo é demasiado simples para captar sequer a estrutura subjacente dos dados. Um modelo com subajuste tem um desempenho fraco tanto nos dados de treino como nos dados novos, resultando frequentemente num viés elevado. O equilíbrio entre estes dois extremos é conhecido como o compromisso viés-variância.
Prevenir o sobreajuste#
Os engenheiros utilizam várias técnicas para reduzir o sobreajuste e melhorar a robustez do modelo:
- Regularização: Técnicas como a regularização L1/L2 ou a adição de camadas de dropout introduzem penalizações ou aleatoriedade durante o treino, impedindo que o modelo dependa excessivamente de características específicas.
- Paragem antecipada: Monitorizar a função de perda num conjunto de validação permite interromper o treino quando o desempenho em dados não observados deixa de melhorar, mesmo que a precisão do treino continue a aumentar.
- Aumento de dados: aumentar artificialmente o tamanho e a diversidade do conjunto de treino utilizando aumento de dados dificulta a memorização de imagens exatas pelo modelo.
- Validação cruzada: Utilizar técnicas como a validação cruzada k-fold garante que o modelo é testado em diferentes subconjuntos de dados, fornecendo uma estimativa mais fiável do seu desempenho.
Exemplos do mundo real#
O sobreajuste pode ter consequências graves ao implementar AI em ambientes de produção:
- Diagnóstico médico: Em AI na área da saúde, um modelo treinado para detetar cancro da pele pode sofrer sobreajuste às condições de iluminação ou às marcações de uma régua presentes nas imagens de treino. Quando implementado numa clínica com iluminação ou equipamento diferentes, o modelo pode não identificar corretamente lesões malignas, por depender de pistas irrelevantes do fundo.
- Previsão financeira: Um modelo de previsão do preço de ações pode sofrer sobreajuste às tendências históricas do mercado impulsionadas por um evento específico e não repetível, como uma crise económica única. É provável que esse modelo não consiga prever com precisão os movimentos futuros das ações, pois memorizou anomalias passadas em vez de aprender a dinâmica fundamental do mercado.
Exemplo de código: paragem antecipada com Ultralytics YOLO26#
Ao utilizar a Ultralytics Platform ou scripts de treino locais, podes evitar o sobreajuste definindo uma paciência para a paragem antecipada. Isto interrompe o treino se a aptidão de validação não melhorar durante um número definido de épocas.
from ultralytics import YOLO
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Train with early stopping enabled (patience=50 epochs)
# If validation metrics don't improve for 50 epochs, training stops.
results = model.train(data="coco8.yaml", epochs=100, patience=50)Conceitos relacionados#
- Generalização: A capacidade de um modelo se adaptar e ter um bom desempenho em dados novos e anteriormente não observados, o que é o oposto do sobreajuste.
- Validação cruzada: Uma técnica para avaliar de que forma os resultados de uma análise estatística irão generalizar para um conjunto de dados independente.
- Regularização: Métodos utilizados para reduzir erros, ajustando adequadamente uma função ao conjunto de treino fornecido e evitando o sobreajuste.









