Devrions nous faire learningrate decay pour adam optimizer
Je forme un réseau pour la localisation d'images avec Adam optimizer, et quelqu'un me suggère d'utiliser exponential decay. Je ne veux pas essayer cela parce que Adam optimizer lui-même désintègre le taux d'apprentissage. Mais ce gars insiste et il a dit qu'il l'avait fait avant. Alors devrais-je le faire et y a-t-il une théorie derrière votre suggestion?
3 réponses
Ça dépend. ADAM met à jour n'importe quel paramètre avec un taux d'apprentissage individuel. Cela signifie que chaque paramètre du réseau a un taux d'apprentissage spécifique associé.
mais le taux d'apprentissage unique pour le paramètre est calculé en utilisant lambda (le taux d'apprentissage initial) comme limite supérieure. Cela signifie que chaque taux d'apprentissage peut varier de 0 (pas de mise à jour) à lambda (mise à jour maximale).
Les taux d'apprentissage s'adaptent pendant les étapes de train, c'est vrai, mais si vous voulez assurez-vous que chaque étape de mise à jour ne dépasse pas lambda que vous pouvez abaisser lambda en utilisant la décroissance exponentielle ou autre. Il peut aider à réduire la perte au cours de la dernière étape de l'entraînement, lorsque la perte calculée avec le paramètre lambda précédemment associé a cessé de diminuer.
Dans mon expérience, cela n'a pas de sens (et ne fonctionne pas bien) de faire de la décroissance du taux d'apprentissage avec Adam optimizer.
La théorie est que Adam gère déjà l'optimisation du taux d'apprentissage ( vérifier la référence) :
" nous proposons Adam, une méthode d'optimisation stochastique efficace qui ne nécessite que des dégradés de premier ordre avec peu de mémoire requise. Le procédé calcule des taux d'apprentissage adaptatifs individuels pour différents paramètres des estimations de premier et deuxième moments de la gradients; le nom Adam est dérivé de l'estimation du moment adaptatif."
Comme pour tout problème D'apprentissage en profondeur YMMV, une taille ne convient pas à tous, vous devriez essayer différentes approches et voir ce qui fonctionne pour vous, etc. etc.
Adam a un seul taux d'apprentissage, mais c'est un taux maximum qui est adaptatif, donc je ne pense pas que beaucoup de gens utilisent la planification du taux d'apprentissage avec.
En raison de la nature adaptative, le taux par défaut est assez robuste, mais il peut y avoir des moments où vous voulez l'optimiser. Ce que vous pouvez faire est de trouver un taux par défaut optimal à l'avance en commençant par un taux très faible et en l'augmentant jusqu'à ce que la perte cesse de diminuer, puis regardez la pente de la courbe de perte et choisissez le taux d'apprentissage qui est associé à la diminution la plus rapide de la perte (pas le point où la perte est réellement la plus faible). Jeremy Howard mentionne cela dans le fast.ai cours d'apprentissage en profondeur et son du papier des taux D'apprentissage cycliques.