Como saber que o modelo começou a sobreajuste?


12

Espero que os trechos a seguir forneçam uma ideia do que será minha pergunta. Estes são de http://neuralnetworksanddeeplearning.com/chap3.html

O aprendizado então diminui gradualmente. Finalmente, por volta da época 280, a precisão da classificação praticamente para de melhorar. Épocas posteriores apenas veem pequenas flutuações estocásticas próximas ao valor da precisão na época 280. Compare isso com o gráfico anterior, onde o custo associado aos dados de treinamento continua caindo suavemente. Se apenas olharmos para esse custo, parece que nosso modelo ainda está ficando "melhor". Mas os resultados da precisão do teste mostram que a melhoria é uma ilusão. Assim como o modelo que Fermi não gostou, o que nossa rede aprende após a época 280 não generaliza mais os dados de teste. E, portanto, não é um aprendizado útil. Dizemos que a rede está se adaptando demais ou treinando além da época 280.

Estamos treinando uma rede neural e o custo (em dados de treinamento) está caindo até a época 400, mas a precisão da classificação está se tornando estática (exceto algumas flutuações estocásticas) após a época 280, portanto concluímos que o modelo está adaptando-se aos dados de treinamento após a época 280.

Podemos ver que o custo dos dados de teste melhora até a época 15, mas depois disso começa a piorar, mesmo que o custo dos dados de treinamento continue melhorando. Esse é outro sinal de que nosso modelo está se ajustando demais. Isso coloca um enigma, porém, que é se devemos considerar a época 15 ou 280 como o ponto em que a super adaptação está dominando o aprendizado? Do ponto de vista prático, o que realmente interessa é melhorar a precisão da classificação nos dados do teste, enquanto o custo nos dados do teste não passa de um proxy para a precisão da classificação. E, portanto, faz mais sentido considerar a época 280 como o ponto além do qual a super adaptação está dominando o aprendizado em nossa rede neural.

Ao contrário da precisão da classificação nos dados de teste em comparação com o custo de treinamento anteriormente, agora estamos colocando o custo nos dados de teste em relação ao custo de treinamento.

Em seguida, o livro continua explicando por que 280 é a época certa em que a adaptação foi iniciada. É com isso que tenho um problema. Não consigo entender isso.

Estamos pedindo ao modelo para minimizar o custo e, portanto, o custo é a métrica que ele usa como uma medida de sua própria força para classificar corretamente. Se considerarmos 280 como a época certa em que a super adaptação foi iniciada, não criamos um modelo tendencioso que, apesar de ser um classificador melhor nos dados de teste específicos, ainda assim esteja tomando decisões com baixa confiança e, portanto, mais propenso a desviar-se dos resultados mostrados nos dados de teste?


O modelo não está ciente do conjunto de testes . Ele se destaca como um proxy para dados invisíveis. Portanto, se for proveniente de uma distribuição representativa, você poderá usá-lo para determinar quando o ajuste excessivo ocorre. Se desejar, você pode criar outro conjunto de espera e ver se essa suposição é válida.
Emre

O que você quer dizer com "tomar decisões com baixa confiança"?
Grasshopper

@Grasshopper, digamos que o modelo está tentando prever uma das 4 classes {A, B, C, D}. Os rótulos dos dados de teste (em ordem) são (A, B, C, D). Agora, em um exemplo, o modelo lança probabilidades como (estarei rotulando as previsões) ((0,28; 0,24; 0,24; 0,24) (A); (0,24,0,28,0,24,0,24) (B), (0,24,0,24, 0.28,0.24) (C), (0.24,0.24,0.24,0.28) (D)) e em outro o modelo lança ((1,0,0,0) (A), (0,1,0,0) (B), (0,24,0,26,0,25,0,25) (B), (0,0,0,1) (D)). O que quero dizer com baixa confiança é a primeira instância. observe a precisão da classificação é de 100%, em primeira instância e ainda o custo é mais elevado
Nitin Siwach

@Grasshopper Em poucas palavras. A primeira instância do modelo é criada após 280 épocas (consulte a pergunta) e a segunda instância do modelo é criada após 15 épocas. Agora, o livro continua sugerindo a época 280 como aquela em que a adaptação excessiva começou. Estou achando difícil engolir isso. qualquer ajuda ou pensamento que você possa fornecer é muito apreciado.
Nitin Siwach

Respostas:


6

Digamos que queremos prever se um aluno conseguirá uma entrevista de emprego com base em seu currículo.

Agora, suponha que treinamos um modelo a partir de um conjunto de dados de 10.000 currículos e seus resultados.

Em seguida, experimentamos o modelo no conjunto de dados original e prediz resultados com 99% de precisão ... uau!

Mas agora vêm as más notícias.

Quando executamos o modelo em um novo conjunto de dados ("invisível") de currículos, obtemos apenas 50% de precisão ... uh-oh!

Nosso modelo não generaliza bem de nossos dados de treinamento para dados invisíveis.

Isso é conhecido como sobreajuste e é um problema comum no aprendizado de máquina e na ciência de dados.

Overfitting V / s

Podemos entender melhor a adaptação, observando o problema oposto, a adequação.

A falta de ajuste ocorre quando um modelo é muito simples - informado por poucos recursos ou regularizado demais - o que o torna inflexível no aprendizado do conjunto de dados.

Alunos simples tendem a ter menos variação em suas previsões, mas mais preconceitos em relação a resultados errados (consulte: O tradeoff de preconceito e variação).

Por outro lado, alunos complexos tendem a ter mais variações em suas previsões.

Tanto o viés quanto a variação são formas de erro de previsão no aprendizado de máquina.

Normalmente, podemos reduzir o erro de viés, mas, como resultado, podemos aumentar o erro de variação ou vice-versa.

Essa troca entre muito simples (alto viés) e muito complexo (alta variação) é um conceito-chave em estatística e aprendizado de máquina, e que afeta todos os algoritmos de aprendizado supervisionado.


2

Algo que aprendi da maneira mais difícil é traçar as curvas de aprendizado, eu sei, não é tão divertido quanto escrever o código de aprendizado de máquina, mas é fundamental entender visualmente o que está acontecendo.

Uma definição prática é que o ajuste excessivo ocorre quando a precisão do trem continua melhorando, enquanto a precisão da validação para de melhorar (ou começa a piorar).

A solução mais simples para evitar o excesso de ajuste é a parada precoce (interrompa o treinamento assim que as coisas estiverem ruins), é claro que a solução mais simples tem um custo: não é a melhor solução. Regularização e abandono são boas ferramentas para combater a falta de adaptação, mas isso é uma questão diferente :)

Espero que ajude


2

Como a fonte que você está citando diz "o custo dos dados do teste não passa de um proxy para a precisão da classificação". Você pode perguntar, por que devemos usar um proxy, por que não usar a precisão diretamente? A resposta é que você precisa minimizar a função de custo com relação aos pesos e desvios. Portanto, deve ser uma função diferenciável dos pesos e vieses. A precisão não é uma função diferenciável e, portanto, não pode ser usada diretamente. Mas, como você se preocupa com a precisão, como ilustrou acima (... observe que a precisão da classificação é 100% em primeira instância e ainda assim o custo é mais alto ...), você determina o ajuste excessivo com base na precisão do teste. conjunto.


0

Para entender o que a adaptação excessiva significa e como isso afeta a precisão do modelo, é necessário entender a troca de polarização e variação.

A falta de adaptação e a super adaptação são dois problemas diferentes que estão diretamente relacionados aos problemas de variação de polarização. É sempre importante entender a relação entre três fatores diferentes e como esses fatores estão conectados aos problemas de variação de viés (ajuste excessivo ou insuficiente):

1- o tamanho do modelo. Número de parâmetros

2- a quantidade de dados disponíveis para treinamento. Número de amostras de treinamento.

3- o número de iterações. iterações de treinamento.

Estabelecer uma conexão direta entre qualquer um desses fatores com problemas de sobreajustar ou não ajustar os outros sempre levará a conclusões erradas.

Devido à compreensão desses fatores e à vinculação do tema usando equações matemáticas para evitar problemas de sobreajuste e falta de ajuste, é uma tarefa difícil, mais depende de tarefas, as pessoas usam métodos simples para descobrir e evitar o excesso de ajustes. A maneira mais fácil é dividir os dados em três partes diferentes: treinamento, validação e teste. O teste não deve ser tocado. Use o conjunto de treinamento para treinar a rede e o conjunto de validação para testar a rede após cada iteração ou várias iterações. Teoricamente, você verá que o erro no conjunto de validação diminui gradualmente nas primeiras N iterações e fica estável por muito poucas iterações e começa a aumentar. Quando o erro começa a aumentar, sua rede começa a ajustar os dados de treinamento e o processo de treinamento deve ser interrompido.

Nota: o valor N está muito relacionado aos três fatores listados acima. É sempre uma boa prática ter um conjunto de treinamento de demonstração e testar com diferentes modelos, dados de treinamento. Você verá que quanto maior o modelo - menos dados de treinamento, menor o N. Quanto menor o modelo - mais dados de treinamento, maior o N. Nota: tenha cuidado ao usar modelos pequenos com problemas de ajuste insuficiente.


Você disse: "Teoricamente, você verá que o erro no conjunto de validação diminui gradualmente nas primeiras N iterações e fica estável por muito poucas iterações e começa a aumentar". O que você quer dizer com erro aqui. Essa é exatamente a questão que levantei na questão. A resposta é 15, se eu tomar custo como a medida do erro e 280 se eu tomar a precisão da classificação como a medida do erro
Nitin Siwach

observe a correção no comentário acima: A resposta para quando o overfitting foi iniciado é a época 15, se eu considerar o custo como a medida do erro e a época 280, se considerar a precisão da classificação como a medida do erro
Nitin Siwach

O erro no conjunto de validação
Bashar Haddad

e a medida desse erro é? (100 - precisão da classificação) ou custo. Entendo que o erro no conjunto de validação significa em conexão com a precisão da classificação. Mas é exatamente isso que estou perguntando. Por que não o custo? Por favor, consulte os comentários que fizeram em resposta a Gafanhoto na pergunta original
Nitin Siwach
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.