J'utilise des réseaux de neurones depuis un certain temps maintenant. Cependant, une chose avec laquelle je me bats constamment est la sélection d'un optimiseur pour la formation du réseau (en utilisant backprop). Ce que je fais habituellement, c'est de commencer par un seul (par exemple SGD standard), puis d'essayer d'autres autres à peu près au hasard. Je me demandais s'il y avait une meilleure approche (et moins aléatoire) pour trouver un bon optimiseur, par exemple à partir de cette liste:
- SGD (avec ou sans élan)
- AdaDelta
- AdaGrad
- RMSProp
- Adam
En particulier, je suis intéressé s'il y a une justification théorique pour choisir l'un sur l'autre étant donné que les données de formation ont une certaine propriété, par exemple, elles sont rares. J'imagine également que certains optimiseurs fonctionnent mieux que d'autres dans des domaines spécifiques, par exemple lors de la formation de réseaux convolutionnels contre des réseaux à action directe ou de la classification contre la régression.
Si l'un d'entre vous a développé une stratégie et / ou une intuition sur la façon de choisir les optimiseurs, je serais très intéressé à l'entendre. De plus, s'il y a des travaux qui fournissent une justification théorique pour choisir l'un sur l'autre, ce serait encore mieux.
la source