Eu estava lendo sobre o otimizador de Adam para o Deep Learning e me deparei com a seguinte frase no novo livro Deep Learning de Bengio, Goodfellow e Courville:
Adam é geralmente considerado como sendo bastante robusto para a escolha de hiper parâmetros, embora a taxa de aprendizado às vezes precise ser alterada do padrão sugerido.
se isso é verdade, é importante, porque a pesquisa por hiper parâmetros pode ser realmente importante (pelo menos na minha experiência) no desempenho estatístico de um sistema de aprendizado profundo. Assim, minha pergunta é: por que Adam Robust está com parâmetros tão importantes? Especialmente e ?β 2
Eu li o artigo de Adam e ele não fornece nenhuma explicação para por que funciona com esses parâmetros ou por que é robusto. Eles justificam isso em outro lugar?
Além disso, ao ler o artigo, parece que o número de hiper parâmetros que eles tentaram foi muito pequeno, para apenas 2 e apenas 3. Como esse pode ser um estudo empírico completo se funcionar apenas com hiper parâmetros 2x3 ?β 2
fonte
Respostas:
No que diz respeito à evidência em relação à reivindicação, acredito que a única evidência que apóia a reivindicação pode ser encontrada na figura 4 em seu artigo . Eles mostram os resultados finais em um intervalo de valores diferentes para , e .β 2 αβ1 β2 α
Pessoalmente, não acho o argumento deles convincente, principalmente porque eles não apresentam resultados em uma variedade de problemas. Com isso dito, eu notar que eu tenho ADAM usado para uma variedade de problemas, e minha conclusão pessoal é que os valores padrão de e fazer parecem surpreendentemente confiável, apesar de uma boa dose de mexer com é necessária.β 2 αβ1 β2 α
fonte
Isso contrasta com a descida estocástica de gradiente de baunilha, onde:
Adam não é o único otimizador com taxas de aprendizado adaptáveis. Como o artigo de Adam afirma, ele é altamente relacionado ao Adagrad e ao Rmsprop, que também são extremamente insensíveis aos hiperparâmetros. Especialmente, o Rmsprop funciona muito bem.
Mas Adam é o melhor em geral. Com muito poucas exceções, Adam fará o que você quiser :)
Existem alguns casos bastante patológicos em que Adam não funcionará, particularmente em algumas distribuições não estacionárias. Nesses casos, o Rmsprop é uma excelente opção de espera. Mas, de um modo geral, para a maioria dos casos não patológicos, Adam trabalha extremamente bem.
fonte
Olhando para as fórmulas do ADAM, parece um pouco intrigante que, após um número muito grande de iterações em lote (digamos ~ 400k), a magnitude do gradiente original com base em erro não tenha papel real na etapa executada que parece aspirar a o parâmetro de configuração da taxa de aprendizado no sinal relevante.
Talvez o ADAM controle melhor a adaptação do peso do que o simples SGD durante as primeiras iterações / epocs, mas a atualização parece estar reduzida a algo um pouco ingênuo (?) Alguém pode fornecer alguma intuição sobre por que isso é realmente desejado e / ou tende a funcionar bem?
fonte