– 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
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.
- 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