• Michel

Overfitting e Underfitting

Overfitting e Underfitting são as duas maiores causas de má generalização dos algoritmos de aprendizado de máquina. Para entender estes dois conceitos temos que primeiro saber o que é a relação bias-variância.

Sets de Treinamento, Teste e Validação


Os dados usados ​​para construir um modelo de ML são em geral, divididos em três conjuntos (sets). Os sets de Treinamento, Validação e Teste.

A figura mostra a divisão dos dados nestes três sets.

Idealmente, o modelo deve ser avaliado em amostras que não foram usadas para construir ou ajustar o modelo, de modo que forneçam um resultado imparcial de eficácia do modelo. Quando uma grande quantidade de dados está à mão, um conjunto de amostras pode ser reservado para avaliar o modelo final. O set de treinamento é usado para criar o modelo, enquanto o set de validação é usado para qualificar o desempenho, e o set de teste só deve ser tocado para avaliação final do modelo (hold out method).

O modelo é treinado no set de treinamento usando um método de aprendizado supervisionado, por exemplo, Regressão Linear. Para executar o treinamento existem vários métodos, como “Cross Validation” ou “Boostrapping” que são temas de outro artigo.

Na prática, o set de treinamento consiste nos atributos de entrada, por exemplo, área, garagens e CEP, de um apartamento, e a correspondente resposta obtida, por exemplo, o preço do apartamento, que é o target. O modelo é executado no set de treinamento e produz um resultado, que é então comparado com o target conhecido, para cada observação de entrada no set de treinamento. Com base no resultado da comparação e no algoritmo de aprendizado específico utilizado, os parâmetros do modelo são ajustados. O ajuste do modelo pode incluir seleção e transformações de variáveis, estimativa de parâmetros, etc..

Finalmente, o set de teste, que não foi tocado durante o treinamento (e a validação), é usado para fornecer uma avaliação imparcial de um modelo final ajustado no conjunto de dados de treinamento.

Generalização


Generalização refere-se a quão bem um modelo de aprendizado de máquina aprendeu. Isto se verifica observando os resultados que o modelo produz no set de teste, em contraposição ao set de treinamento.

O objetivo de um bom modelo de aprendizado de máquina é generalizar bem a partir dos dados de treinamento para qualquer dado no domínio do problema. Isso nos permite fazer previsões sobre dados que o modelo nunca viu.

Overfitting e Underfitting são as duas maiores causas de má generalização dos algoritmos de aprendizado de máquina. Para entender estes dois conceitos temos que primeiro saber o que é a relação bias-variância.


Bias e Variância


O erro de previsão para qualquer algoritmo de aprendizado de máquina pode ser dividido em três partes:

· Erro de bias

· Erro de variância

· Erro irredutível

O erro irredutível, também chamado de ruído não pode ser reduzido, independentemente do algoritmo usado. É o erro introduzido por exemplo, por medições incorretas na coleta de dados.

A relação bias-variância (tradeoff) é o problema de minimizar simultaneamente as duas fontes de erro que impedem que algoritmos de aprendizado supervisionados de generalizarem além de seu conjunto de treinamento.

O bias é um erro causado por suposições errôneas do algoritmo de aprendizado. Um alto bias pode fazer com que um algoritmo perca as relações relevantes entre os atributos de entrada e a variável de saída . A este erro dá-se o nome de underfitting.

A variância é um erro de sensibilidade para pequenas flutuações no conjunto de treinamento. Alta variância pode fazer com que um algoritmo modele o ruído aleatório nos dados de treinamento, em vez das saídas pretendidas. A este erro dá-se o nome de overfitting.



Na figura acima veja que a reta não aproxima bem a curvatura que os pontos delineiam, este é problema de alto bias (o viés da reta não é correto), por outro lado ao modelar os pontos com uma curva sinuosa como na figura central, todos os pontos de treinamento foram corretamente previstos, porém ao se introduzir um novo ponto para avaliação de seu preço, muito provavelmente ele não cairá em cima da curva sinuosa, e neste caso temos um problema de alta variância. A figura a direita, embora não atinja perfeitamente todos os pontos, parece expressar melhor o comportamento dos preços.

Podemos criar uma visualização gráfica de bias-variância simulando um treino de tiro ao alvo como abaixo.

Complexidade do modelo versus Erro de predição


A complexidade de um modelo em ML pode ser definida como uma função do número de parâmetros e termos: quanto mais parâmetros livres um modelo tiver, mais complexo será o modelo.



Não conhecemos a complexidade da função real de mapeamento, por exemplo, se ela é aproximadamente uma reta ou uma curva de algum grau. Portanto, assim como uma função muito simples pode criar uma resposta inadequada, também é possível que uma função excessivamente complexa seja pior ainda.

Abaixo os pontos azuis representam as observações e a curva preta a função real (desconhecida) que supostamente representaria o modelo perfeito. Três estimativas são geradas: a primeira é uma Regressão Linear representada pela reta verde - vemos que ela é muito simples, sendo claramente um caso de underfitting; a segunda é representada por um polinômio do 3º grau (azul) e se parece bastante com a curva ideal preta; a terceira (vermelha) ´w claramente um caso de overfitting.


A figura abaixo é a clássica representação das regiões de overfitting e underfitting que relaciona a complexidade do modelo com o erro de predição.

Quando temos um alto erro no treinamento com valor próximo ao erro na validação, temos um clássico problema de underfitting, que como já vimos, é um problema de alto bias.

Quando temos um baixo erro no treinamento e alto erro na validação, temos um clássico problema de overfitting, que é um problema de alta variância.

O cenário ideal é um ponto intermediário, com um baixo erro no treinamento com valor próximo ao erro na validação

(baixo bias e baixa variância).


Learning Curves


Outra maneira útil para visualizar o desempenho de um modelo de aprendizagem de máquina é usar curvas de aprendizagem (learning curves).

Uma curva de aprendizagem é essencialmente um gráfico da precisão da predição (accuracy) versus o número de observações.


Note que se já há uma quantidade razoável de dados e mesmos assim o erro não diminui, aumentar a quantidade de dados não vai ajudar muito, pois estamos estamos numa situação de underfitting (alto bias).

As soluções a que podemos recorrer são:

· Mais observações => melhora alta variância

· Menor número de variáveis (menos complexidade) => melhora alta variância

· Acrescentar variáveis => melhora alto bias

· Adicionar variáveis polinomias (mais complexidade)=> melhora bias

· Decrescer regularização => melhora alto bias

· Aumentar regularização => melhora alta variância

O conceito de regularização será visto em outro artigo.

Em conclusão podemos dizer que:

· A parametrização de algoritmos de aprendizado de máquina é frequentemente uma batalha para equilibrar o bias e a variância.

· Não há como fugir da relação entre bias e variância no aprendizado de máquina - aumentar o bias diminuirá a variância e vice-versa.

· Há um trade-off em jogo entre estas duas preocupações,os algoritmos que você escolhe e a maneira que você escolhe configurá-los, sendo que a "arte" do Cientista de Dados está em determinar o melhor balanço.

Princípio da Parcimônia


Encerramos este artigo com uma importante noção que você deve sempre levar em conta.

A Navalha de Occam (Occam’s razor) é um princípio lógico e epistemológico que afirma que a explicação para qualquer fenômeno deve assumir a menor quantidade de premissas possível.


“Se temos várias hipóteses igualmente boas para explicar um evento devemos escolher aquela que possui o menor número de premissas”


É uma dentre várias navalhas filosóficas que podem ser consideradas "princípios de parcimônia".



3 Dimensões

Inteligência Artificial nas Empresas

Al. das Papoulas, 147 - Santana de Parnaíba - Alphaville, SP 06539-180 - (11) 4153 6004  - (11) 9 9795 9765

michel@3dimensoes.com.br