Recorte de gradiente ao treinar redes neurais profundas


10

Quando alguém deseja executar um recorte gradiente ao treinar uma RNN ou CNN? Estou especialmente interessado neste último. Qual seria um bom valor inicial para recorte? (é claro que pode ser ajustado)

Respostas:


4

Você deseja executar o recorte de gradiente quando tiver o problema de desaparecer gradientes ou explodir gradientes. No entanto, para ambos os cenários, existem soluções melhores:

  • O gradiente explosivo acontece quando o gradiente se torna muito grande e você recebe um estouro numérico. Isso pode ser facilmente corrigido, inicializando os pesos da rede para valores menores. Se isso não funcionar, é provável que haja um erro no código.

  • O gradiente de fuga ocorre quando a otimização fica presa em um ponto de sela, o gradiente se torna pequeno demais para a otimização progredir. Isso pode ser corrigido usando a descida de gradiente com impulso ou suporte RMS ou ambos (também conhecido como otimizador de Adam).

Os valores iniciais para o limite superior do recorte de gradiente seriam algo menor que o maior número que a variável pode receber. Para o limite inferior, eu diria que é um problema específico, mas talvez comece com algo como 1e-10.


11
Não tenho certeza se o contexto desta resposta deve excluir RNNs, mas se não, então as duas soluções propostas não são melhores do que o recorte de gradiente, especialmente no caso de RNNs.
Alex R.

Desculpe, eu estava pensando mais no contexto de CNNs, sinta-se livre para editar
Miguel
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.