Eu tenho usado redes neurais por um tempo agora. No entanto, uma coisa com a qual luto constantemente é a seleção de um otimizador para treinar a rede (usando backprop). O que eu costumo fazer é apenas começar com um (por exemplo, SGD padrão) e, em seguida, tentar outros de maneira aleatória. Fiquei me perguntando se existe uma abordagem melhor (e menos aleatória) para encontrar um bom otimizador, por exemplo, nesta lista:
- SGD (com ou sem impulso)
- AdaDelta
- AdaGrad
- RMSProp
- Adão
Em particular, estou interessado se há alguma justificativa teórica para escolher um sobre o outro, dado que os dados de treinamento têm alguma propriedade, por exemplo, são escassos. Eu também imaginaria que alguns otimizadores funcionam melhor que outros em domínios específicos, por exemplo, ao treinar redes convolucionais vs. redes feed-forward ou classificação vs. regressão.
Se algum de vocês desenvolveu alguma estratégia e / ou intuição sobre como escolher otimizadores, eu ficaria muito interessado em ouvi-la. Além disso, se houver algum trabalho que forneça justificativa teórica para escolher um sobre o outro, isso seria ainda melhor.