Uso reti neurali da un po 'di tempo. Tuttavia, una cosa con cui continuo a lottare è la selezione di un ottimizzatore per allenare la rete (usando backprop). Quello che faccio di solito è solo iniziare con uno (ad esempio SGD standard) e poi provare altri altri in modo quasi casuale. Mi chiedevo se esiste un approccio migliore (e meno casuale) per trovare un buon ottimizzatore, ad esempio da questo elenco:
- SGD (con o senza slancio)
- AdaDelta
- AdaGrad
- RMSProp
- Adamo
In particolare, mi interessa se esiste una giustificazione teorica per sceglierne uno rispetto all'altro, dato che i dati di addestramento hanno alcune proprietà, ad esempio essendo scarsi. Immagino anche che alcuni ottimizzatori funzionino meglio di altri in domini specifici, ad esempio durante la formazione di reti convoluzionali contro reti feed-forward o di classificazione contro regressione.
Se qualcuno di voi ha sviluppato una strategia e / o un'intuizione su come scegliere gli ottimizzatori, sarei molto interessato a sentirlo. Inoltre, se c'è qualche lavoro che fornisce una giustificazione teorica per sceglierne uno sopra l'altro, sarebbe ancora meglio.