📖

O que é Sobreajuste?

O overfitting acontece quando um modelo de machine learning memoriza os dados de treino em vez de aprender padrões generalizáveis, prejudicando o desempenho em dados novos.

Overfitting é um problema comum em machine learning em que um modelo capta o ruído aleatório e os detalhes idiossincráticos dos seus dados de treino em vez das verdadeiras relações subjacentes. Como resultado, o modelo parece ter um desempenho extremamente bom nos dados em que foi treinado, mas faz previsões fracas quando aplicado a novos exemplos. É o clássico compromisso entre memorização e aprendizagem genuína.

Como funciona o overfitting

Durante o treino, um modelo ajusta os seus parâmetros internos para minimizar o erro num conjunto de exemplos. Se o modelo tiver demasiados parâmetros em relação ao tamanho ou à diversidade do conjunto de treino, ou se for treinado durante demasiado tempo, começa a tratar flutuações aleatórias nos dados como se fossem sinais significativos. Imagine ajustar uma curva suave a um gráfico de dispersão: um polinómio de baixo grau capta a tendência geral, enquanto um polinómio de grau elevado pode serpentear por cada ponto, incluindo os outliers. Essa curva sinuosa está em overfitting. Essencialmente, memorizou os dados em vez de aprender a tendência, por isso qualquer ponto novo que caia fora da ondulação será previsto de forma incorreta.

Do ponto de vista da teoria da informação, o modelo usa mais "capacidade" do que a que os dados justificam, ajustando o sinal e o ruído em vez de apenas o sinal. A diferença entre o erro de treino e o erro de validação é o sintoma mais claro: o erro de treino continua a descer enquanto o erro de validação estagna ou sobe.

Por que é importante

O overfitting é uma das razões mais frequentes pelas quais os projetos de machine learning falham em entregar valor em produção. Um modelo que atinge 99% de precisão num benchmark pode ser inútil em dados reais se estiver em overfitting ao benchmark. Detetar e controlar o overfitting é, por isso, uma preocupação central no desenvolvimento de modelos, afetando todas as etapas, desde a recolha de dados até à implementação.

É mais relevante em domínios onde a generalização é crítica: diagnóstico médico, deteção de fraude, condução autónoma e qualquer sistema que tenha de lidar com dados que ainda não viu. Compreender o overfitting também explica porque é que mais dados, modelos mais simples ou uma regularização mais forte muitas vezes superam a abordagem de atirar uma rede neuronal maior para o problema.

Sinais principais e soluções comuns

  • Lacuna entre treino e validação: A precisão é alta nos dados de treino, mas visivelmente inferior num conjunto de validação reservado.
  • Validação cruzada: Use validação cruzada k-fold para confirmar que o modelo generaliza em diferentes fatias de dados.
  • Regularização: Técnicas como L1, L2 (weight decay) ou dropout penalizam a complexidade do modelo e desencorajam a memorização.
  • Mais dados: Expandir o conjunto de treino dá ao modelo mais sinal para aprender e menos incentivo para memorizar.
  • Aumento de dados: Expandir artificialmente os dados de treino com variações realistas (rotações, paráfrases, ruído) melhora a robustez.
  • Early stopping: Parar o treino quando o erro de validação começa a subir evita que o modelo se ajuste ao ruído.
  • Modelos mais simples: Escolher um modelo com menos parâmetros em relação aos dados reduz a capacidade de fazer overfitting.

O overfitting não é um erro pontual a corrigir, mas sim uma tensão contínua que cada profissional tem de gerir. O objetivo não é um modelo perfeito nos dados de treino, mas sim um que faça previsões fiáveis nos dados que ainda não encontrou.

Perguntas Frequentes

What is the difference between overfitting and underfitting?
Overfitting occurs when a model is too complex and memorizes training data, performing well on it but poorly on new data. Underfitting is the opposite: the model is too simple to capture the underlying pattern, so it performs badly on both training and new data. The goal is a balanced model that generalizes well.
How can you tell if a model is overfitting?
The most reliable sign is a growing gap between training and validation performance. If training error keeps falling while validation error plateaus or rises, the model is likely overfitting. Plotting learning curves for both sets makes this trend easy to spot.
Does more data prevent overfitting?
More high-quality, representative data usually helps reduce overfitting because it gives the model more genuine signal to learn from and less incentive to memorize individual examples. However, simply adding noisy or duplicated data does not help and may even worsen the problem.
Can neural networks overfit even with huge datasets?
Yes. Modern neural networks are large enough to memorize even very big datasets, especially if the labels are noisy or many inputs are near-duplicates. That is why techniques like dropout, weight decay, data augmentation, and early stopping remain standard practice, and why benchmark scores do not always reflect real-world performance.