Overfitting
Explore as causas e os sintomas do sobreajuste na aprendizagem automática. Aprenda a evitar a alta variância e melhorar a generalização usando Ultralytics .
O sobreajuste ocorre na aprendizagem automática quando um modelo aprende os dados de treino muito bem, capturando ruído e flutuações aleatórias
em vez da distribuição de dados subjacente. Em vez de aprender padrões gerais que se aplicam a dados novos e
não vistos, um modelo sobreajustado memoriza efetivamente os exemplos específicos no conjunto de treino. Isso resulta em
excelente desempenho nos dados de treino, mas 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 dependendo do conjunto de dados específico usado
para o treino.
Por que 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 muito grande — ou seja, tiver muitas
camadas ou parâmetros —, ela poderá memorizar facilmente os exemplos de treino. Outros fatores que contribuem para isso incluem:
-
Dados de treino insuficientes: pequenos conjuntos de dados podem conter correlações espúrias que não existem na
população mais ampla. Modelos treinados com dados limitados são propensos a aprender esses padrões acidentais.
-
Ruído de dados e valores atípicos: Altos níveis de ruído ou valores atípicos não representativos nos
dados de treino podem induzir o modelo em erro, fazendo com que ele
ajuste os seus parâmetros internos para se adequar às anomalias, em vez do sinal verdadeiro.
-
Duração prolongada do treino: treinar por demasiados
épocas permite que o modelo continue a refinar os seus pesos
até se ajustar ao ruído no conjunto de treino. Isto é frequentemente monitorizado utilizando
dados de validação.
Overfitting vs. Underfitting
É importante distinguir o sobreajuste do
subajuste. Enquanto o sobreajuste envolve a aprendizagem de demasiados
detalhes (incluindo ruído), o subajuste ocorre quando um modelo é demasiado simples para capturar a estrutura subjacente dos
dados. Um modelo subajustado tem um desempenho fraco tanto nos dados de treino como nos novos dados, resultando frequentemente num elevado
viés. O equilíbrio entre estes dois extremos é conhecido como
compromisso entre viés e variância.
Prevenção do sobreajuste
Os engenheiros utilizam várias técnicas para mitigar o sobreajuste e melhorar a robustez do modelo:
-
Regularização: Técnicas como regularização L1/L2 ou adição de
camadas de dropout introduzem penalidades ou aleatoriedade
durante o treino, impedindo que o modelo se torne excessivamente dependente de características específicas.
-
Paragem antecipada: monitorizar a
função de perda num conjunto de validação permite que o treino
seja interrompido assim que o desempenho em dados não vistos parar 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 usando
o aumento de dados torna mais difícil para o modelo
memorizar imagens exatas.
-
Validação cruzada: O uso de técnicas como a
validação cruzada k-fold garante que o
modelo seja testado em diferentes subconjuntos de dados, fornecendo uma estimativa mais confiável do seu desempenho.
Exemplos do Mundo Real
O sobreajuste pode ter consequências graves ao implementar IA em ambientes de produção:
-
Diagnósticodetect
: Na
IA na área da saúde, um modelo treinado para detetar
cancro de pele pode se ajustar excessivamente às condições de iluminação ou às marcações da régua presentes nas imagens de treino. Quando implementado
em uma clínica com iluminação ou equipamentos diferentes, o modelo pode falhar na identificação correta de lesões malignas, pois
se baseou em pistas irrelevantes do ambiente.
-
Previsão financeira: Um modelo de previsão do preço das ações pode se ajustar excessivamente às tendências históricas do mercado
que foram impulsionadas por um evento específico e não repetível (como uma crise económica pontual). Esse modelo provavelmente
não conseguiria 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 YOLO26
Usando a Ultralytics ou scripts de treino locais, é possível
evitar o sobreajuste definindo uma tolerância de interrupção antecipada. Isso interrompe o treino se a adequação da validação não
melhorar por 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, anteriormente não vistos,
que é o oposto do sobreajuste.
-
Validação cruzada: técnica para avaliar como os resultados de uma análise estatística serão
generalizados para um conjunto de dados independente.
-
Regularização: Métodos utilizados para reduzir erros, ajustando uma função adequadamente ao conjunto de treino fornecido
e evitando o sobreajuste.