O que causa quedas repentinas nos erros de treinamento / teste ao treinar uma rede neural?

18

Eu vi vários erros de teste / treinamento caindo repentinamente em certas épocas algumas vezes durante o treinamento da rede neural, e me pergunto o que causa esses saltos de desempenho:

Erro de teste ResNet

Essa imagem foi tirada do Kaiming He Github, mas gráficos semelhantes aparecem em muitos artigos.

libphy
fonte
Um artigo relacionado: Smith et al. 2018 não se deterioram a taxa de aprendizagem, aumentar o tamanho do lote, openreview.net/forum?id=B1Yy1BxCZ
ameba

Respostas:

7

Eles mudaram a taxa de aprendizado. Observe que a queda ocorre exatamente em 30 e 60 épocas, obviamente definida manualmente por alguém.

cwhy
fonte
Na seção 3.4, explica que a taxa de aprendizado é dividida por 10 quando os planaltos de erro
xiawi
2

Pense no "cenário de otimização". Por exemplo, se você tivesse uma rede com apenas dois pesos, poderia plotar todas as combinações desses dois pesos em uma superfície, em que a altura em cada ponto represente a quantidade de erro que sua função de custo retornará se você o usar (x, y ) coordene como seus dois pesos. Você está tentando passar para o ponto mais baixo nesta superfície para obter o nível mais baixo de erro.
O problema às vezes é que a superfície pode ficar bem louca, especialmente em redes com milhões de parâmetros em vez de apenas dois. Você pode ficar preso em pontos de sela onde o progresso é mais lento e, de repente, é atirado de volta para uma colina descendente.
Aqui está uma animação para ajudar a visualizar isso. Como você pode ver, os algoritmos mais básicos de descida com gradiente ficam presos nessas posições muito mais facilmente.
insira a descrição da imagem aqui

Pode haver outras causas para isso também, mas essa é a que você mais ouve. Pode ser possível que uma rede possa ter várias unidades recebendo ativações saturadas (ou, no caso de relu, uma unidade que está sendo ativada apenas por um número muito pequeno de entradas de treinamento), e quando uma unidade sai da saturação, desencadeia uma reação em cadeia que tira o resto da saturação e os pesos repentinamente aumentam o fluxo do gradiente? Eu não olhei para nada assim, mas eu estaria interessado se alguém tiver outros motivos para adicionar.

Frobot
fonte
11
-1. Isso não responde à pergunta, ou pelo menos não está claro como, e por que o que você escreveu é relevante. Por que diminuir a taxa de aprendizado tiraria um de um ponto de sela?
Ameba
Não está claro que a animação esteja correta, pois o SGD - por definição - vê uma superfície de otimização diferente a cada iteração. Neste gráfico, a superfície de otimização é fixa, portanto, não está claro para mim como é possível ilustrar o SGD aqui de qualquer maneira. O "ponto" do SGD se comporta mais como descida gradiente em lote inteiro, na qual a superfície de otimização é fixada em todo o processo de treinamento.
28419 Josh