O que é “Overfitting” e “Underfitting” no aprendizado de máquinas?

– S1E14

Desde que a sua tarefa principal é seleccionar um algoritmo de aprendizagem e treiná-lo em alguns dados, as duas coisas que podem dar errado são “bad algorithm” e “bad data”

Estes são exemplos de um mau algoritmo-

Overfitting-

Overfitting é um erro de modelagem que ocorre quando uma função está muito próxima de um conjunto limitado de pontos de dados. Significa que o modelo funciona bem nos dados de treinamento, mas não generaliza bem.

Ex- Digamos que você está visitando um país estrangeiro e o motorista de táxi o rouba. Você pode ser tentado a dizer que todos os taxistas daquele país são ladrões

Overfitting the training data

Modelos complexos, como redes neurais profundas, podem detectar padrões sutis nos dados, mas se o conjunto de treinamento for ruidoso, ou se for muito pequeno (o que introduz a amostragem do ruído), então é provável que o modelo detecte padrões no próprio ruído.

Por exemplo – digamos que você adicione o atributo do nome do país ao seu modelo de satisfação de vida-

Nesse caso, um modelo complexo pode detectar padrões como o fato de que todos os países nos dados de treinamento com um ‘w’ em seu nome têm uma satisfação de vida maior que 7: Nova Zelândia (7.3), Noruega (7.4), Suécia (7.2), e Suíça (7.5).

Mas esta regra de w-satisfação não é generalizada para Ruanda, Zimbabwe, etc.

Obviamente este padrão ocorreu nos dados de treinamento por puro acaso, mas o modelo não tem como dizer se um padrão é real ou simplesmente o resultado do ruído nos dados.

Overfitting acontece quando o modelo é demasiado complexo em relação à quantidade e ao ruído dos dados de treino.

Aqui estão as soluções possíveis:

  • Simplificar o modelo, seleccionando um com menos parâmetros (por exemplo um modelo linear em vez de um modelo polinomial de alto grau),
  • Diminuindo o número de atributos nos dados de treinamento, ou restringindo* o modelo.
  • Reagrupar mais dados de treinamento.
  • Reduzir o ruído nos dados de treinamento (por exemplo corrigir erros de dados e remover outliers).

Constraining a model to make it simpleer and reduce the risk of overfitting is called regularization.

Por exemplo, o modelo linear que definimos anteriormente tem dois parâmetros, θ0 e θ1 .

Esta situação dá ao algoritmo de aprendizagem dois graus de liberdade para adaptar o modelo aos dados de treinamento: ele pode ajustar tanto a altura (θ0 ) como a inclinação (θ1 ) da linha.

Se forçássemos θ1 = 0, o algoritmo teria apenas um grau de liberdade e teria muito mais dificuldade para ajustar os dados corretamente: tudo o que ele poderia fazer era mover a linha para cima ou para baixo para chegar o mais próximo possível das instâncias de treinamento, então ele acabaria em torno da média.

Se permitirmos que o algoritmo modifique θ1 mas o forçarmos a mantê-lo pequeno, então o algoritmo de aprendizagem terá efetivamente algum lugar entre um e dois graus de liberdade.

Você quer encontrar o equilíbrio certo entre encaixar perfeitamente os dados de treinamento e manter o modelo suficientemente simples para garantir que ele irá generalizar bem.

Regularização reduz o risco de sobreposição
  • Linha pontilhada – treinada apenas em círculos,
  • Linha calcinada em ambos os círculos e quadrados
  • Linha sólida – é um modelo treinado apenas em círculos

Vê-se que a regularização forçou o modelo a ter um declive menor: este modelo não se ajusta tanto aos dados de treino (círculos) como ao primeiro modelo, mas na verdade generaliza melhor a novos exemplos que não viu durante o treino (quadrados).

A quantidade de regularização a aplicar durante a aprendizagem pode ser controlada por um hiperparâmetro.

Um hiperparâmetro é um parâmetro de um algoritmo de aprendizagem (não do modelo). Ele deve ser definido antes do treinamento e permanece constante durante o treinamento.

Se você definir o hiperparâmetro de regularização para –

  • Um valor muito grande – você terá um modelo quase plano (uma inclinação próxima a zero), o algoritmo de aprendizagem quase certamente não se sobrepõe aos dados de treinamento, mas será menos provável que encontre uma boa solução.

Hiperparâmetros de afinação é uma parte importante da construção de um sistema de Aprendizagem de Máquina (você verá um exemplo detalhado em outros episódios).

Aparelhamento ocorre quando o seu modelo é demasiado simples para aprender a estrutura subjacente dos dados.

Um modelo linear de satisfação com a vida é propenso a um subaproveitamento, a realidade é apenas mais complexa do que o modelo, por isso as suas previsões são necessariamente imprecisas.

Aqui estão as principais opções para corrigir este problema-

  • Selecionar um modelo mais poderoso, com mais parâmetros.
  • Alimentar melhores características do algoritmo de aprendizagem (engenharia de características).
  • Reduzir as restrições do modelo (por exemplo reduzir o hiperparâmetro de regularização).

Ler Seguinte- Testar e Validar um Modelo Treinado

Deixe uma resposta

O seu endereço de email não será publicado.