Un étranger au domaine ML / DL; a commencé le cours Udacity Deep Learning basé sur Tensorflow; faire la tâche 3 problème 4; essayer de régler le taux d'apprentissage avec la configuration suivante:
- Taille du lot 128
- Nombre d'étapes: suffisant pour remplir 2 époques
- Tailles des calques masqués: 1024, 305, 75
- Initialisation du poids: tronquée normale avec std. écart de sqrt (2 / n) où n est la taille de la couche précédente
- Probabilité de décrochage: 0,75
- Régularisation: non appliquée
- Algorithme de taux d'apprentissage: décroissance exponentielle
joué avec les paramètres de taux d'apprentissage; ils ne semblent pas avoir d'effet dans la plupart des cas; code ici ; résultats:
Accuracy learning_rate decay_steps decay_rate staircase
93.7 .1 3000 .96 True
94.0 .3 3000 .86 False
94.0 .3 3000 .96 False
94.0 .3 3000 .96 True
94.0 .5 3000 .96 True
- Comment régler systématiquement le taux d'apprentissage?
- Comment le taux d'apprentissage est-il lié au nombre d'étapes?
Réponses:
Utilisez un optimiseur de descente de gradient. Ceci est un très bon aperçu.
Concernant le code, jetez un œil à ce tutoriel . Ceci et ceci sont quelques exemples.
Personnellement, je suggère d'utiliser ADAM ou RMSprop. Il y a encore quelques hyperparamètres à régler, mais il y en a des «standard» qui fonctionnent 99% du temps. Pour ADAM, vous pouvez consulter son article et RMSprop sur ces diapositives .
ÉDITER
Ok, vous utilisez déjà un optimiseur de dégradé. Ensuite, vous pouvez effectuer une optimisation d'hyperparamètres pour sélectionner le meilleur taux d'apprentissage. Récemment, une approche automatisée a été proposée . De plus, il y a beaucoup de travaux prometteurs de Frank Hutter concernant le réglage automatisé des hyperparamètres.
Plus généralement, jetez un œil au défi AutoML , où vous pouvez également trouver le code source des équipes. Dans ce défi, l'objectif est d'automatiser l'apprentissage automatique, y compris le réglage des hyperparamètres.
Enfin, cet article de LeCun et ce très récent didacticiel de DeepMin (consultez le chapitre 8) donnent quelques idées qui pourraient être utiles pour votre question.
Quoi qu'il en soit, gardez à l'esprit que (en particulier pour les problèmes faciles), il est normal que le taux d'apprentissage n'affecte pas beaucoup l'apprentissage lors de l'utilisation d'un optimiseur de descente de gradient. Habituellement, ces optimiseurs sont très fiables et fonctionnent avec différents paramètres.
la source
Vous pouvez automatiser le réglage des hyper-paramètres dans de nombreux algorithmes d'apprentissage automatique eux-mêmes, ou simplement les hyperparamètres pour l'optimiseur de descente de gradient, c'est-à-dire le taux d'apprentissage.
Une bibliothèque qui a été populaire pour ce faire est la menthe verte.
https://github.com/JasperSnoek/spearmint
la source
Un tuner de taux d'apprentissage automatique très récent est fourni dans Adaptation du taux d'apprentissage en ligne avec descente hypergraduée
Cette méthode est très simple à mettre en œuvre, le résultat principal pour SGD est donné comme suit:
la source
Pour régler les hyperparamètres (qu'il s'agisse du taux d'apprentissage, du taux de décroissance, de la régularisation ou de toute autre chose), vous devez établir un ensemble de données conservé; cet ensemble de données est dissocié de votre ensemble de données d'entraînement. Après avoir réglé plusieurs modèles avec différentes configurations (où une configuration = un choix particulier de chaque hyperparamètre), vous choisissez la configuration en sélectionnant celle qui maximise la précision maintenue.
la source