O que é overfitting?
Evite overfitting com o watsonx.ai Inscreva-se para receber atualizações sobre IA
Fundo em preto e azul
O que é overfitting?

No campo do aprendizado de máquina, o overfitting se manifesta quando um algoritmo se adapta excessivamente ou até mesmo de forma precisa aos dados de treinamento, levando a um modelo que não consegue fazer previsões ou conclusões precisas com outros dados que não sejam os de treinamento. 

O overfitting anula o propósito do modelo de aprendizado de máquina. A capacidade de generalização de um modelo para novos dados é o que nos permite utilizar algoritmos de aprendizado de máquina diariamente para realizar previsões e classificar dados.

No desenvolvimento de algoritmos de aprendizado de máquina, normalmente é usado um conjunto de dados de amostra para treinar o modelo. Entretanto, quando o modelo é treinado por um período prolongado nos dados de amostra ou quando o modelo é excessivamente complexo, ele pode começar a aprender o "ruído", ou seja, informações irrelevantes, dentro do conjunto de dados. Quando o modelo memoriza o ruído e se adapta excessivamente ao conjunto de treinamento, ele se torna "overfitted" e não consegue generalizar bem para novos dados. Se um modelo não puder generalizar bem para novos dados, ele não será capaz de executar as tarefas de classificação ou previsão para as quais foi destinado.

Baixas taxas de erro e uma alta variância são bons indicadores de overfitting. Para evitar esse tipo de comportamento, é comum reservar uma parte do conjunto de dados de treinamento como o "conjunto de teste" para verificar o overfitting. Se os dados de treinamento têm uma taxa de erro baixa e os dados de teste têm uma taxa de erro alta, isso indica overfitting.

IBM nomeada líder pela IDC

Leia por que a IBM foi nomeada líder no relatório IDC MarketScape: Worldwide AI Governance Platforms 2023 report.

Conteúdo relacionado

Registre-se para o white paper sobre governança de IA

Overfitting vs. underfitting

Se o excesso de treinamento ou a complexidade do modelo resultarem em overfitting, uma resposta lógica de prevenção seria interromper o processo de treinamento mais cedo, também conhecido como "early stopping", ou reduzir a complexidade do modelo eliminando entradas menos relevantes. No entanto, se você pausar o treinamento muito cedo ou excluir muitas características importantes, você pode enfrentar o problema oposto e, em vez disso, pode ocorrer o underfitting do seu modelo. O underfitting ocorre quando o modelo não foi treinado por tempo suficiente ou as variáveis de entrada não são significativas o suficiente para determinar uma relação significativa entre as variáveis de entrada e saída.

Em ambas as situações, o modelo não consegue identificar a tendência predominante nos dados de treinamento. Portanto, o underfitting também apresenta uma generalização ruim para dados não vistos. No entanto, ao contrário do overfitting, os modelos de underfitting apresentam alto viés e menos variância em suas previsões. Isso ilustra a troca de viés-variância, que ocorre quando um modelo mal ajustado passa para um estado superajustado. Conforme o modelo aprende, seu viés diminui, mas pode aumentar em variância à medida que se torna overfitted. Ao ajustar um modelo, o objetivo é encontrar o "ponto ideal" entre o underfitting e o overfitting, para que ele possa estabelecer uma tendência dominante e aplicá-la amplamente a novos conjuntos de dados.

Como detectar modelos com overfit

Para compreender a precisão dos modelos de aprendizado de máquina, é fundamental testar o ajuste do modelo. A validação cruzada k-fold é uma das técnicas mais populares para avaliar a acurácia do modelo.

Na validação cruzada k-folds, os dados são divididos em k subconjuntos de tamanhos iguais, conhecidos como "folds". Um dos k-folds será usado como conjunto de teste, também chamado de conjunto de retenção ou conjunto de validação, enquanto os demais folds serão utilizados para treinar o modelo. Este processo se repete até que cada dobra tenha atuado como uma dobra de resistência. Após cada avaliação, uma pontuação é mantida e, ao término de todas as iterações, as pontuações são calculadas para avaliar o desempenho geral do modelo.

Como evitar o overfitting

Embora o uso de um modelo linear nos ajude a evitar o overfitting, muitos problemas do mundo real são não lineares. Além de entender como detectar o overfitting, é importante entender como evitá-lo completamente. Abaixo estão algumas técnicas que você pode usar para evitar o overfitting:

  • Parada precoce: como mencionamos anteriormente, esse método busca pausar o treinamento antes que o modelo comece a aprender o ruído dentro do modelo. Essa abordagem corre o risco de interromper o processo de treinamento muito cedo, levando ao problema oposto de inadequação. Encontrar o “ponto ideal” entre o ajuste inadequado e o overfitting é o objetivo final aqui.
  • Treine com mais dados: expandir o conjunto de treinamento para incluir mais dados pode aumentar a precisão do modelo, fornecendo mais oportunidades para analisar a relação dominante entre as variáveis de entrada e saída. Dito isto, este é um método mais eficaz quando dados limpos e relevantes são injetados no modelo. Caso contrário, você poderá continuar a adicionar mais complexidade ao modelo, fazendo com que ele se ajuste demais.
  • Aumento de dados: Embora seja melhor injetar dados limpos e relevantes em seus dados de treinamento, às vezes dados barulhentos são adicionados para tornar um modelo mais estável. No entanto, este método deve ser feito com parcimônia.
  • Seleção de recursos: Ao criar um modelo, você terá vários parâmetros ou recursos que são usados para prever um determinado resultado, mas, muitas vezes, esses recursos podem ser redundantes em relação a outros. A seleção de recursos é o processo de identificação dos mais importantes nos dados de treinamento e, em seguida, a eliminação dos irrelevantes ou redundantes. Isso é comumente confundido com redução de dimensionalidade, mas é diferente.  No entanto, ambos os métodos ajudam a simplificar seu modelo para estabelecer a tendência dominante nos dados.
  • Regularização: se o overfitting ocorre quando um modelo é muito complexo, faz sentido para nós reduzir o número de recursos. Mas e se não soubermos quais entradas eliminar durante o processo de seleção de recursos? Se não sabemos quais recursos remover do nosso modelo, os métodos de regularização podem ser particularmente úteis. A regularização aplica uma "penalidade" aos parâmetros de entrada com os coeficientes maiores, o que posteriormente limita a quantidade de variância no modelo.  Embora existam vários métodos de regularização, como a regularização Lasso, a regressão ridge e a exclusão aleatória (dropout), todos eles buscam identificar e reduzir o ruído nos dados.
  • Métodos de conjunto: os métodos de aprendizado de conjunto são compostos por um conjunto de classificadores, por exemplo árvores de decisão — e suas previsões são agregadas para identificar o resultado mais popular. Os métodos de conjunto mais conhecidos são bagging e boosting. No bagging, uma amostra aleatória de dados em um conjunto de treinamento é selecionada com substituição, o que significa que os pontos de dados individuais podem ser escolhidos mais de uma vez. Depois que várias amostras de dados são geradas, esses modelos são treinados de forma independente e dependendo do tipo de tarefa, ou seja, tanto para regressão quanto para classificação, a média ou a maioria dessas previsões resulta em uma estimativa mais precisa. Isso é comumente usado para reduzir a variância em um conjunto de dados ruidoso.
Veja como aproveitar algumas dessas abordagens neste tutorial de reconhecimento de imagem do IBM Developer
Pesquisa recente

Embora o acima seja a definição estabelecida de overfitting, a pesquisa recente (link externo a IBM) indica que modelos complexos, como modelos de deep learning e redes neurais, têm um desempenho de alta precisão apesar de serem treinados para "ajustar ou interpolar de forma exata". Essa descoberta vai de encontro direto com a literatura histórica sobre o assunto e é explicada pela curva de risco de "double descent" abaixo. É possível observar que à medida que o modelo aprende além do limiar de interpolação, o desempenho do modelo melhora. Os métodos que mencionamos anteriormente para evitar o overfitting, como parada antecipada e regularização, podem realmente evitar a interpolação.

Soluções relacionadas
IBM Watson Studio

O IBM Watson Studio é uma plataforma de dados aberta que permite aos cientistas de dados desenvolver, executar, testar e otimizar modelos de IA em escala em qualquer nuvem.

Explore o IBM Watson Studio
IBM Cloud Pak for Data

O IBM Cloud Pak for Data é uma plataforma de dados aberta e extensível que fornece uma malha de dados para disponibilizar todos os dados para IA e análise de dados, em qualquer nuvem.

Conheça o IBM Cloud Pak® for Data
Recursos Entendendo o overfitting benigno no metaaprendizado baseado em gradiente

Evidências empíricas revelam que métodos de metaaprendizado superparametrizados ainda funcionam bem, um fenômeno frequentemente chamado de overfitting benigno.

O overfitting robusto pode ser mitigado por suavização adequadamente aprendida

Investigar dois meios empíricos para injetar suavização mais aprendida durante o treinamento adversarial (TA)