Fundamentos de IA
O que ÃĐ Overfitting?
O que ÃĐ Overfitting?
Quando vocÊ treina uma rede neural, vocÊ tem que evitar o overfitting. Overfitting ÃĐ um problema dentro do aprendizado de mÃĄquina e estatÃstica onde um modelo aprende os padrÃĩes de um conjunto de dados de treinamento muito bem, explicando perfeitamente o conjunto de dados de treinamento, mas falhando em generalizar seu poder de previsÃĢo para outros conjuntos de dados.
Para colocar de outra forma, no caso de um modelo de overfitting, ele frequentemente mostrarÃĄ uma 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 em mais detalhes. Vamos dar uma olhada em como o overfitting ocorre e como ele pode ser evitado.
Entendendo âFitâ e Underfitting
à Útil dar uma olhada no conceito de underfitting e âfitâ em geral quando discutimos overfitting. Quando treinamos um modelo, estamos tentando desenvolver um quadro que seja capaz de prever a natureza, ou classe, dos itens dentro 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 futuros pontos de dados com base nesse padrÃĢo. Quanto melhor o modelo explica a relaçÃĢo entre as caracterÃsticas do conjunto de treinamento, mais âfitâ nosso modelo ÃĐ.

A linha azul representa previsÃĩes de um modelo que estÃĄ underfitting, enquanto a linha verde representa um modelo com um melhor fit. 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 as caracterÃsticas dos dados de treinamento e, portanto, falha em classificar corretamente futuros exemplos de dados ÃĐ underfitting os dados de treinamento. Se vocÊ graficasse a relaçÃĢo prevista de um modelo underfitting contra a interseçÃĢo real das caracterÃsticas e rÃģtulos, as previsÃĩes se desviariam do alvo. Se tivÃĐssemos um grÃĄfico com os valores reais de um conjunto de treinamento rotulados, um modelo severamente underfitting perderia drasticamente a maioria dos pontos de dados. Um modelo com um melhor fit poderia cortar um caminho atravÃĐs do centro dos pontos de dados, com pontos de dados individuais sendo apenas ligeiramente diferentes dos valores previstos.
O underfitting pode ocorrer frequentemente quando hÃĄ dados insuficientes para criar um modelo preciso, ou quando se tenta projetar um modelo linear com dados nÃĢo lineares. Mais dados de treinamento ou mais caracterÃsticas geralmente ajudam a reduzir o underfitting.
Por que nÃĢo criarÃamos um modelo que explica todos os pontos no conjunto de dados de treinamento perfeitamente? Com certeza, precisÃĢo perfeita ÃĐ desejÃĄvel? Criar um modelo que aprendeu os padrÃĩes do conjunto de dados de treinamento muito bem ÃĐ o que causa o overfitting. O conjunto de dados de treinamento e outros conjuntos de dados futuros que vocÊ executarÃĄ no modelo nÃĢo serÃĢo exatamente os mesmos. Eles provavelmente serÃĢo muito semelhantes em muitos aspectos, mas tambÃĐm diferirÃĢo de maneiras importantes. Portanto, projetar um modelo que explica o conjunto de dados de treinamento perfeitamente significa que vocÊ acaba com uma teoria sobre a relaçÃĢo entre caracterÃsticas que nÃĢo se generaliza bem para outros conjuntos de dados.
Entendendo Overfitting
O overfitting ocorre quando um modelo aprende os detalhes dentro do conjunto de dados de treinamento muito bem, causando que o modelo sofra quando previsÃĩes sÃĢo feitas em dados externos. Isso pode ocorrer quando o modelo nÃĢo apenas aprende as caracterÃsticas do conjunto de dados, mas tambÃĐm aprende flutuaçÃĩes aleatÃģrias ou ruÃdo dentro do conjunto de dados, colocando importÃĒncia nesses eventos aleatÃģrios ou nÃĢo importantes.
O overfitting ÃĐ mais provÃĄvel de ocorrer quando modelos nÃĢo lineares sÃĢo usados, pois eles sÃĢo mais flexÃveis ao aprender caracterÃsticas de dados. Algoritmos de aprendizado de mÃĄquina nÃĢo paramÃĐtricos frequentemente tÊm vÃĄrios parÃĒmetros e tÃĐcnicas que podem ser aplicados para restringir a sensibilidade do modelo aos dados e, portanto, reduzir o overfitting. Como 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Ê graficasse as previsÃĩes do modelo em eixos X e Y, vocÊ teria uma linha de previsÃĢo que zigzaga para trÃĄs e para frente, o que reflete o fato de que o modelo tentou muito hard para se ajustar a todos os pontos no conjunto de dados em sua explicaçÃĢo.
Controle de Overfitting
Quando treinamos um modelo, idealmente 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 treinamento, o fit estÃĄ se tornando melhor. Um modelo com um bom fit ÃĐ capaz de explicar quase todos os pontos no conjunto de dados de treinamento sem overfitting.
à medida que o modelo treina, seu desempenho melhora com o tempo. A taxa de erro do modelo diminuirÃĄ à medida que o tempo de treinamento passar, mas apenas atÃĐ um certo ponto. O ponto em que o desempenho do modelo no conjunto de teste começa a subir novamente ÃĐ normalmente o ponto em que o overfitting estÃĄ ocorrendo. Para obter o melhor fit 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 Ãģtimo pode ser determinado graficando o desempenho do modelo ao longo do tempo de treinamento e parando o treinamento quando a perda for mais baixa. No entanto, um risco com esse mÃĐtodo de controle do overfitting ÃĐ que especificar o endpoint do treinamento com base no desempenho do teste significa que os dados de teste se tornam um pouco incluÃdos no procedimento de treinamento e perdem seu status de dados âintocadosâ.
HÃĄ alguns mÃĐtodos diferentes para combater o overfitting. Um mÃĐtodo de reduzir o overfitting ÃĐ usar uma tÃĄtica de resampling, que opera estimando a precisÃĢo do modelo. VocÊ tambÃĐm pode usar um conjunto de validaçÃĢo em adiçÃĢo ao conjunto de teste e plotar a precisÃĢo de treinamento contra o conjunto de validaçÃĢo em vez do conjunto de teste. Isso mantÃĐm seu conjunto de teste nÃĢo visto. Um mÃĐtodo de resampling popular ÃĐ a validaçÃĢo cruzada K-folds. Essa tÃĐcnica permite que vocÊ divida seus dados em subconjuntos que o modelo ÃĐ treinado e, em seguida, o desempenho do modelo nos subconjuntos ÃĐ analisado para estimar como o modelo se sairÃĄ em dados externos.
Usar a validaçÃĢo cruzada ÃĐ uma das melhores maneiras de estimar a precisÃĢo de um modelo em dados nÃĢo vistos, e quando combinada com um conjunto de validaçÃĢo, o overfitting pode ser mantido em um mÃnimo.












