Guide de sélection des hyperparamètres dans Deep Learning


38

Je cherche un document qui pourrait aider à donner des directives sur la façon de choisir les hyperparamètres d’une architecture profonde, comme des encodeurs automatiques superposés ou des réseaux de valeurs profondes. Il y a beaucoup d'hyperparamètres et je suis très confus sur la façon de les choisir. De plus, l'utilisation de la validation croisée n'est pas une option, car la formation prend beaucoup de temps!


Je recommande le livre d'apprentissage approfondi de Ian Goodfellow: deeplearningbook.org
Vadim Smolyakov

Réponses:


24

Il existe essentiellement quatre méthodes:

  1. Recherche manuelle: En utilisant vos connaissances sur le problème, devinez les paramètres et observez le résultat. Sur la base de ce résultat, modifiez les paramètres. Répétez cette procédure jusqu'à ce que vous trouviez des paramètres qui fonctionnent bien ou que vous manquiez de temps.
  2. Recherche dans la grille: En vous servant de vos connaissances sur le problème, identifiez les plages pour les hyperparamètres. Sélectionnez ensuite plusieurs points de ces plages, généralement répartis uniformément. Entraînez votre réseau en utilisant chaque combinaison de paramètres et sélectionnez la combinaison la plus performante. Sinon, vous pouvez répéter votre recherche sur un domaine plus étroit, centré sur les paramètres les plus performants.
  3. Recherche aléatoire: Comme pour la recherche sur grille, vous utilisez la connaissance du problème pour identifier les plages des hyperparamètres. Cependant, au lieu de choisir les valeurs de ces plages de manière méthodique, vous les sélectionnez au hasard. Répétez cette procédure jusqu'à ce que vous trouviez des paramètres qui fonctionnent bien ou utilisez ce que vous avez appris pour affiner votre recherche. Dans l’article, Recherche aléatoire pour l’optimisation de l’hyper-paramètre, le Dr. Bengio propose d’utiliser cette méthode comme référence pour comparer toutes les autres méthodes et montrer qu’elle a tendance à fonctionner mieux que les autres.
  4. Optimisation bayésienne: Des travaux plus récents ont été consacrés à l'amélioration de ces autres approches en utilisant les informations acquises lors d'une expérience donnée pour décider de la manière d'ajuster les hyper paramètres pour l'expérience suivante. Un exemple de ce travail serait l'optimisation bayésienne pratique d'algorithmes d'apprentissage automatique par Adams et al.

14

Une grande variété de méthodes existe. Elles peuvent être largement partitionnées en méthodes de recherche aléatoires / non dirigées (comme la recherche par grille ou la recherche aléatoire) et en méthodes directes. Sachez cependant qu'ils nécessitent tous de tester une quantité considérable de paramètres d'hyperparamètre, à moins que vous n'ayez de la chance (des centaines au moins, cela dépend du nombre de paramètres).

Dans la classe des méthodes directes, plusieurs approches distinctes peuvent être identifiées:

  • méthodes sans dérivés, par exemple Nelder-Mead simplex ou DIRECT
  • méthodes évolutives, telles que CMA-ES et essaims de particules
  • approches basées sur des modèles, par exemple EGO et Kriging séquentiel

Vous voudrez peut-être examiner Optunity , un paquet Python offrant une variété de solveurs pour le réglage hyperparamètre (tout ce que j'ai mentionné à l'exception de EGO et de Kriging, pour le moment). Optunity sera bientôt disponible pour MATLAB et R. Disclaimer: Je suis le développeur principal de ce paquet.

D'après mon expérience personnelle, les méthodes évolutives sont très puissantes pour ces types de problèmes.


10

Cherchez pas plus loin! Yoshua Bengio a publié l'un de mes papiers appliqués préférés, celui que je recommande à tous les nouveaux ingénieurs en apprentissage automatique qui commencent à utiliser des réseaux neuronaux: recommandations pratiques pour la formation d'architectures profondes par gradient. Pour connaître son point de vue sur le virage hyperparamètre: taux d’apprentissage, calendrier des taux d’apprentissage, arrêt précoce, taille des minibatchs, nombre de couches masquées, etc., voir la section 3.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.