A perda de treinamento aumenta com o tempo [duplicado]


21

Estou treinando um modelo (Rede Neural Recorrente) para classificar 4 tipos de sequências. Ao executar meu treinamento, vejo a perda de treinamento diminuindo até o ponto em que classifico corretamente mais de 90% das amostras nos meus lotes de treinamento. No entanto, algumas épocas depois, noto que a perda de treinamento aumenta e que minha precisão diminui. Isso me parece estranho, pois eu esperava que no treinamento o desempenho melhorasse com o tempo e não se deteriorasse. Estou usando perda de entropia cruzada e minha taxa de aprendizado é 0,0002.

Atualização: Verificou-se que a taxa de aprendizado era muito alta. Com uma taxa de aprendizado baixa o suficiente, não observo esse comportamento. No entanto, ainda acho isso peculiar. Quaisquer boas explicações são bem-vindas sobre por que isso acontece

A perda diminui e depois aumenta

Respostas:


6

Tive um comportamento semelhante ao treinar uma CNN, porque usei a descida do gradiente com uma taxa de aprendizado decadente para o cálculo do erro. Você aumentou significativamente o número de iterações e verificou se esse comportamento ocorre muito mais tarde com a nova baixa taxa de aprendizado?


Na verdade sim, no entanto, chega um ponto em que, para uma taxa de aprendizado suficientemente baixa, ela nunca subirá novamente. Estou procurando uma explicação teoricamente sólida sobre o porquê disso acontecer
dins2018

Qual algoritmo de otimização você usa?
Freundlicher

Eu uso o otimizador de Adam com lr = 0.00001, betas = (0.5, 0.999)
dins2018

1
Eu acho que você é aproximado com essa pequena taxa de aprendizado tão lentamente ao mínimo local que o ponto em que o valor da perda aumenta ligeiramente novamente (porque você excede o mínimo) exige muitas iterações. Esse aumento no valor da perda é devido a Adam, no momento em que o mínimo local é excedido e em um certo número de iterações, um número pequeno é dividido por um número ainda menor e o valor da perda explode.
Freundlicher

2
Você pode definir beta1 = 0,9 e beta2 = 0,999. Esses são os valores comuns que devem funcionar contra esse comportamento.
Freundlicher

1

Como a taxa de aprendizado é muito grande, ela diverge e falha em encontrar o mínimo da função de perda. Usar um agendador para diminuir a taxa de aprendizado após determinadas épocas ajudará a resolver o problema


0

Com taxas de aprendizado mais altas, você está se movendo demais na direção oposta ao gradiente e pode se afastar dos mínimos locais, o que pode aumentar a perda. O agendamento da taxa de aprendizado e o recorte em gradiente podem ajudar.


Bem-vindo ao CV. Para obter votos positivos , é melhor fornecer uma resposta mais completa, consulte stats.stackexchange.com/help/how-to-answer para obter orientação.
ReneBt 20/03
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.