Réglage des paramètres hyper: recherche aléatoire vs optimisation bayésienne

14

Ainsi, nous savons que la recherche aléatoire fonctionne mieux que la recherche dans la grille, mais une approche plus récente est l'optimisation bayésienne (en utilisant des processus gaussiens). J'ai recherché une comparaison entre les deux et je n'ai rien trouvé. Je sais qu'au cs231n de Stanford, ils ne mentionnent que la recherche aléatoire, mais il est possible qu'ils voulaient garder les choses simples.

Ma question est: quelle approche est généralement meilleure, et si la réponse est "parfois recherche aléatoire, parfois bayésienne" quand devrais-je préférer une méthode à une autre?

Yoni Keren
la source
2
Google vend ses services cloud d'apprentissage en profondeur maintenant et propose une fonctionnalité qui ajuste automatiquement vos hyperparamètres avec l'optimisation bayésienne ... Il existe plusieurs articles qui évaluent BO vs RS et montrent que BO se débrouille un peu mieux. IMO d'après ce que j'ai vu, le diff est quelque chose qui vous intéresserait plus dans une compétition Kaggle que dans la vraie vie.
JPJ

Réponses:

9

Je pense que la réponse ici est la même que partout dans la science des données: cela dépend des données :-)

Il peut arriver qu'une méthode surpasse une autre (ici https://arimo.com/data-science/2016/bayesian-optimization-hyperparameter-tuning/ les gens comparent l'optimisation de l'hyperparamètre bayésien et obtiennent un meilleur résultat sur le défi kaggle du crime de San Francisco que avec recherche aléatoire), mais je doute qu'il existe une règle générale à cet effet. Vous pouvez voir un joli gif ici ( http://blog.revolutionanalytics.com/2016/06/bayesian-optimization-of-machine-learning-models.html ) où les gens montrent le «chemin» que l'optimisation bayésienne prend dans le paysage des hyperparamètres, en particulier, il ne semble pas qu'il surpasse la recherche aléatoire en général ...

Je pense que la raison pour laquelle les gens ont tendance à utiliser l'optimisation hyperparamétrique bayésienne est qu'elle prend juste moins d'étapes de formation afin d'obtenir un résultat comparable par rapport à une recherche aléatoire avec un nombre suffisamment élevé d'expériences.

Résumant en une phrase:

* Lorsque le temps de formation est critique, utilisez l'optimisation hyperparamétrique bayésienne et si le temps n'est pas un problème, sélectionnez l'un des deux ... *

Habituellement, je suis trop paresseux pour implémenter le truc bayésien avec des processus gaussiens si je peux obtenir le même résultat avec une recherche aléatoire ... Je forme juste des ensembles Gradient Bossting sur `` peu '' de données, donc pour moi, le temps n'est pas un problème ...

Fabian Werner
la source
5

L'optimisation bayésienne est meilleure, car elle prend des décisions plus intelligentes. Vous pouvez consulter cet article pour en savoir plus: Optimisation hyperparamétrique pour les réseaux de neurones . Cet article contient également des informations sur les avantages et les inconvénients des deux méthodes + quelques techniques supplémentaires telles que la recherche dans la grille et les estimateurs de Parzen structurés en arbre. Même si elle a été écrite afin de montrer les avantages et les inconvénients de différentes méthodes pour les réseaux de neurones, les principales connaissances sont généralisables pour tous les autres domaines d'apprentissage automatique.

itdxer
la source
1
Je voulais juste souligner que dans votre première phrase, la véritable raison pour laquelle l'optimisation bayésienne est meilleure n'est pas que les décisions prises soient plus intelligentes , mais plutôt que des décisions soient prises .
Alexander Rossa
1

Il convient de noter que l'optimisation hyperparamétrique bayésienne est un processus séquentiel, il peut donc prendre plus de temps que certaines autres approches capables de rechercher ou d'être menées en parallèle.

hlsmith
la source