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.