A lógica geralmente afirma que, ao sobreajustar um modelo, sua capacidade de generalizar é limitada, embora isso possa significar apenas que a sobreajuste impede que um modelo melhore após uma certa complexidade. O ajuste excessivo faz com que os modelos piorem, independentemente da complexidade dos dados, e se sim, por que é esse o caso?
Relacionado: Acompanhamento da pergunta acima, " Quando um modelo é inadequado? "
Respostas:
Overfitting é empiricamente ruim. Suponha que você tenha um conjunto de dados que você divide em dois, teste e treinamento. Um modelo com excesso de ajuste é aquele que apresenta desempenho muito pior no conjunto de dados de teste do que no conjunto de dados de treinamento. Observa-se com frequência que modelos como esse, em geral, apresentam desempenho pior em conjuntos de dados de teste adicionais (novos) do que modelos que não são sobreajustados.
Uma maneira de entender intuitivamente é que um modelo pode usar algumas partes relevantes dos dados (sinal) e outras partes irrelevantes (ruído). Um modelo com excesso de equipamento utiliza mais ruído, o que aumenta seu desempenho no caso de ruído conhecido (dados de treinamento) e diminui seu desempenho no caso de ruído novo (dados de teste). A diferença no desempenho entre os dados de treinamento e teste indica quanto ruído o modelo capta; e captar ruído se traduz diretamente em pior desempenho nos dados de teste (incluindo dados futuros).
Resumo: sobreajuste é ruim por definição, isso não tem muito a ver com complexidade ou capacidade de generalização, mas sim com ruído de confundimento com sinal.
PS Na parte "capacidade de generalizar" da pergunta, é muito possível ter um modelo que possua capacidade inerentemente limitada de generalizar devido à estrutura do modelo (por exemplo, SVM linear, ...), mas ainda é propenso a sobreajuste. Em certo sentido, o excesso de ajuste é apenas uma das maneiras pelas quais a generalização pode falhar.
fonte
Sobreajuste, em poucas palavras, significa levar em consideração muitas informações de seus dados e / ou conhecimento prévio e usá-las em um modelo. Para torná-lo mais direto, considere o seguinte exemplo: você é contratado por alguns cientistas para fornecer um modelo para prever o crescimento de algum tipo de planta. Os cientistas forneceram informações coletadas de seu trabalho com essas plantas durante um ano inteiro e fornecerão continuamente informações sobre o desenvolvimento futuro de suas plantações.
Então, você percorre os dados recebidos e constrói um modelo a partir dele. Agora, suponha que, em seu modelo, você tenha considerado o máximo de características possível para sempre descobrir o comportamento exato das plantas que viu no conjunto de dados inicial. Agora, à medida que a produção continua, você sempre levará em consideração essas características e produzirá resultados muito detalhados . No entanto, se a plantação sofrer alguma mudança sazonal, os resultados que você receberá poderão se encaixar no seu modelo de forma que suas previsões comecem a falhar (dizendo que o crescimento desacelerará, enquanto na verdade acelerará, ou o oposto).
Além de não conseguir detectar variações tão pequenas, e geralmente classificar suas entradas incorretamente, a granulação fina no modelo, ou seja, a grande quantidade de variáveis, pode fazer com que o processamento seja muito caro. Agora, imagine que seus dados já são complexos. Ajustar demais o modelo aos dados não apenas tornará a classificação / avaliação muito complexa, mas provavelmente fará com que você confunda a previsão com a menor variação que possa ter na entrada.
Edit : Isso também pode ser útil, talvez adicionando dinamicidade à explicação acima: D
fonte
Grosso modo, o ajuste excessivo geralmente ocorre quando a proporção
É muito alto.
Pense em ajuste excessivo como uma situação em que seu modelo aprenda os dados de treinamento de cor, em vez de aprender os grandes quadros que impedem que ele seja generalizado nos dados de teste: isso acontece quando o modelo é muito complexo em relação ao tamanho de os dados de treinamento, ou seja, quando o tamanho dos dados de treinamento é pequeno em comparação com a complexidade do modelo.
Exemplos:
Do ponto de vista teórico, a quantidade de dados que você precisa para treinar adequadamente o seu modelo é uma questão crucial e ainda por responder no aprendizado de máquina. Uma dessas abordagens para responder a essa pergunta é a dimensão VC . Outra é a troca de viés e variação .
Do ponto de vista empírico, as pessoas normalmente plotam o erro de treinamento e o erro de teste no mesmo gráfico e garantem que não reduzam o erro de treinamento às custas do erro de teste:
Eu recomendaria assistir ao curso de Machine Learning do Coursera , seção "10: Dicas para aplicar o Machine Learning".
(PS: por favor, vá aqui para solicitar suporte TeX neste SE.)
fonte
Parece que ninguém postou o quadrinho de adaptação do XKCD ainda.
fonte
Isso ocorre porque algo chamado dilema de variância de viés . O modelo com excesso de ajustes significa que teremos limites de decisão mais complexos se dermos mais variação no modelo. O problema é que não apenas modelos muito simples, mas também modelos complexos provavelmente terão resultados desclassificados em dados não vistos. Conseqüentemente, o modelo com excesso de ajuste não é bom como o modelo com pouco ajuste. É por isso que o ajuste excessivo é ruim e precisamos ajustar o modelo em algum lugar no meio.
fonte
O que me levou a entender o problema do sobreajuste foi imaginar qual seria o modelo mais exagerado possível. Essencialmente, seria uma tabela de consulta simples.
Você diz ao modelo que atributos cada dado possui e ele simplesmente se lembra e não faz mais nada com ele. Se você fornecer um dado que já foi visto antes, ele o pesquisará e simplesmente regurgitará o que você disse anteriormente. Se você fornecer dados nunca antes vistos, o resultado será imprevisível ou aleatório. Mas o objetivo do aprendizado de máquina não é contar o que aconteceu, é entender os padrões e usá-los para prever o que está acontecendo.
Então pense em uma árvore de decisão. Se você continuar aumentando sua árvore de decisão cada vez mais, eventualmente você terminará com uma árvore na qual cada nó da folha é baseado em exatamente um ponto de dados. Você acabou de encontrar uma maneira backdoor de criar uma tabela de consulta.
Para generalizar seus resultados e descobrir o que pode acontecer no futuro, você deve criar um modelo que generalize o que está acontecendo no seu conjunto de treinamento. Os modelos de excesso de ajuste fazem um ótimo trabalho ao descrever os dados que você já possui, mas os modelos descritivos não são necessariamente modelos preditivos.
O Teorema Sem Almoço Gratuito diz que nenhum modelo pode superar qualquer outro modelo no conjunto de todas as instâncias possíveis . Se você deseja prever o que virá a seguir na sequência de números "2, 4, 16, 32", não poderá criar um modelo mais preciso que qualquer outro se não assumir que existe um padrão subjacente. Um modelo que está super ajustado não está realmente avaliando os padrões - simplesmente modela o que sabe que é possível e fornece as observações. Você obtém poder preditivo assumindo que há alguma função subjacente e que, se você pode determinar qual é essa função, pode prever o resultado dos eventos. Mas se realmente não houver um padrão, você estará sem sorte e tudo o que você pode esperar é uma tabela de consulta para lhe dizer o que você sabe que é possível.
fonte
Você está confundindo erroneamente duas entidades diferentes: (1) variação de polarização e (2) complexidade do modelo.
Resumo: Sim, o viés de amostra e a complexidade do modelo contribuem para a 'qualidade' do modelo aprendido, mas eles não afetam diretamente um ao outro. Se você tiver dados tendenciosos, independentemente de ter o número correto de parâmetros e treinamento infinito, o modelo final aprendido terá erro. Da mesma forma, se você tivesse menos do que o número necessário de parâmetros, independentemente da amostragem perfeitamente imparcial e do treinamento infinito, o modelo final aprendido apresentaria um erro.
fonte
Houve muitas boas explicações sobre o ajuste excessivo. Aqui estão os meus pensamentos. O ajuste excessivo ocorre quando a sua variação é muito alta e o viés é muito baixo.
Digamos que você tenha dados de treinamento, divididos em N partes. Agora, se você treinar um modelo em cada um dos conjuntos de dados, terá N modelos. Agora encontre o modelo da média e use a fórmula de variação para calcular quanto cada modelo varia da média. Para modelos com excesso de equipamento, essa variação será realmente alta. Isso ocorre porque, cada modelo teria parâmetros estimados que são muito específicos para o pequeno conjunto de dados que fornecemos a ele. Da mesma forma, se você pegar o modelo médio e descobrir o quanto ele é diferente do modelo original que daria a melhor precisão, ele não seria muito diferente. Isso significa baixo viés.
Para descobrir se seu modelo foi super ajustado ou não, você pode construir os gráficos mencionados nas postagens anteriores.
Por fim, para evitar o ajuste excessivo, você pode regularizar o modelo ou usar a validação cruzada.
fonte