toco O que é sobreajuste? - Unite.AI
Entre em contato
Masterclass de IA:

AI 101

O que é Overfitting?

mm
Atualização do on

O que é Overfitting?

Ao treinar uma rede neural, você deve evitar o overfitting. Overfitting é um problema no aprendizado de máquina e nas estatísticas, onde um modelo aprende muito bem os padrões de um conjunto de dados de treinamento, explicando perfeitamente o conjunto de dados de treinamento, mas falhando em generalizar seu poder preditivo para outros conjuntos de dados.

Em outras palavras, no caso de um modelo de superajuste, ele geralmente mostra precisão extremamente alta no conjunto de dados de treinamento, mas baixa precisão nos dados coletados e executados no modelo no futuro. Essa é uma definição rápida de overfitting, mas vamos examinar o conceito de overfitting com mais detalhes. Vamos dar uma olhada em como ocorre o overfitting e como ele pode ser evitado.

Compreendendo “Ajuste” e Underfitting

É útil dar uma olhada no conceito de underfitting e “caber”geralmente ao discutir overfitting. Quando treinamos um modelo, estamos tentando desenvolver uma estrutura que seja capaz de prever a natureza, ou classe, dos itens de um conjunto de dados, com base nas características que descrevem esses itens. Um modelo deve ser capaz de explicar um padrão dentro de um conjunto de dados e prever as classes de pontos de dados futuros com base nesse padrão. Quanto melhor o modelo explica a relação entre os recursos do conjunto de treinamento, mais “ajustado” é o nosso modelo.

A linha azul representa previsões de um modelo que está subajustado, enquanto a linha verde representa um modelo de melhor ajuste. Foto: Pep Roca via Wikimedia Commons, CC BY SA 3.0, (https://commons.wikimedia.org/wiki/File:Reg_ls_curvil%C3%ADnia.svg)

Um modelo que explica mal a relação entre os recursos dos dados de treinamento e, portanto, falha em classificar com precisão exemplos de dados futuros é insuficiente os dados de treinamento. Se você fosse representar graficamente a relação prevista de um modelo subajustado em relação à interseção real dos recursos e rótulos, as previsões desviariam do alvo. Se tivéssemos um gráfico com os valores reais de um conjunto de treinamento rotulado, um modelo severamente subajustado perderia drasticamente a maioria dos pontos de dados. Um modelo com um ajuste melhor pode cortar um caminho através do centro dos pontos de dados, com pontos de dados individuais saindo apenas um pouco dos valores previstos.

O underfitting geralmente pode ocorrer quando não há dados suficientes para criar um modelo preciso ou ao tentar projetar um modelo linear com dados não lineares. Mais dados de treinamento ou mais recursos geralmente ajudam a reduzir o underfitting.

Então, por que não criaríamos um modelo que explica perfeitamente cada ponto dos dados de treinamento? Certamente precisão perfeita é desejável? Criar um modelo que aprendeu muito bem os padrões dos dados de treinamento é o que causa o overfitting. O conjunto de dados de treinamento e outros conjuntos de dados futuros executados no modelo não serão exatamente os mesmos. Eles provavelmente serão muito semelhantes em muitos aspectos, mas também diferirão em aspectos importantes. Portanto, projetar um modelo que explica perfeitamente o conjunto de dados de treinamento significa que você acaba com uma teoria sobre a relação entre recursos que não se generaliza bem para outros conjuntos de dados.

Compreendendo o sobreajuste

O overfitting ocorre quando um modelo aprende muito bem os detalhes do conjunto de dados de treinamento, fazendo com que o modelo sofra quando as previsões são feitas em dados externos. Isso pode ocorrer quando o modelo não apenas aprende os recursos do conjunto de dados, mas também aprende flutuações aleatórias ou barulho dentro do conjunto de dados, colocando importância nessas ocorrências aleatórias/sem importância.

O overfitting é mais provável de ocorrer quando modelos não lineares são usados, pois eles são mais flexíveis ao aprender recursos de dados. Os algoritmos de aprendizado de máquina não paramétricos geralmente têm vários parâmetros e técnicas que podem ser aplicados para restringir a sensibilidade do modelo aos dados e, assim, reduzir o overfitting. Como um exemplo, modelos de árvore de decisão são altamente sensíveis ao overfitting, mas uma técnica chamada poda pode ser usada para remover aleatoriamente alguns dos detalhes que o modelo aprendeu.

Se você fosse representar graficamente as previsões do modelo nos eixos X e Y, teria uma linha de previsão que ziguezagueia para frente e para trás, o que reflete o fato de que o modelo tentou muito ajustar todos os pontos no conjunto de dados em sua explicação.

Controlando o Overfitting

Quando treinamos um modelo, queremos que o modelo não cometa erros. Quando o desempenho do modelo converge para fazer previsões corretas em todos os pontos de dados no conjunto de dados de treinamento, o ajuste fica melhor. Um modelo com um bom ajuste é capaz de explicar quase todo o conjunto de dados de treinamento sem sobreajuste.

À medida que um modelo treina, seu desempenho melhora com o tempo. A taxa de erro do modelo diminuirá com o passar do tempo de treinamento, mas diminuirá apenas até certo ponto. O ponto em que o desempenho do modelo no conjunto de teste começa a aumentar novamente é normalmente o ponto em que ocorre o overfitting. Para obter o melhor ajuste para um modelo, queremos parar de treinar o modelo no ponto de menor perda no conjunto de treinamento, antes que o erro comece a aumentar novamente. O ponto de parada ideal pode ser verificado traçando o desempenho do modelo ao longo do tempo de treinamento e parando o treinamento quando a perda é menor. No entanto, um risco desse método de controle de superajuste é que especificar o ponto final para o treinamento com base no desempenho do teste significa que os dados do teste se tornam um tanto incluídos no procedimento de treinamento e perdem seu status como dados puramente “intocados”.

Existem algumas maneiras diferentes de combater o overfitting. Um método para reduzir o overfitting é usar uma tática de reamostragem, que opera estimando a precisão do modelo. Você também pode usar um validação conjunto de dados além do conjunto de teste e plotar a precisão do treinamento em relação ao conjunto de validação em vez do conjunto de dados de teste. Isso mantém seu conjunto de dados de teste invisível. Um método popular de reamostragem é a validação cruzada de K-folds. Essa técnica permite dividir seus dados em subconjuntos nos quais o modelo é treinado e, em seguida, o desempenho do modelo nos subconjuntos é analisado para estimar como o modelo será executado em dados externos.

Fazer uso da validação cruzada é uma das melhores maneiras de estimar a precisão de um modelo em dados não vistos e, quando combinado com um conjunto de dados de validação, o overfitting pode ser reduzido ao mínimo.

Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA ​​para o bem social.