Optimisation pratique de l'hyperparamètre: recherche aléatoire ou en grille

41

Je suis en train de parcourir la recherche aléatoire d'optimisation d'hyper-paramètre [1] de Bengio et Bergsta, où les auteurs affirment que la recherche aléatoire est plus efficace que la recherche sur grille pour obtenir des performances à peu près égales.

Ma question est la suivante: les gens ici sont-ils d'accord avec cette affirmation? Dans mon travail, j'ai utilisé la recherche sur grille principalement à cause du manque d'outils disponibles pour effectuer facilement des recherches aléatoires.

Quelle est l'expérience des personnes utilisant la recherche par grille ou par recherche aléatoire?

Bar
la source
La recherche aléatoire est meilleure et devrait toujours être préférée. Cependant, il serait même préférable d'utiliser des bibliothèques dédiées pour l'optimisation de l'hyperparamètre, telles que Optunity , hyperopt ou bayesopt.
Marc Claesen
Bengio et al. écrivez à ce sujet ici: papers.nips.cc/paper/… Ainsi, GP fonctionne le mieux, mais RS fonctionne également très bien.
Guy L
10
@Marc Lorsque vous fournissez un lien vers une activité à laquelle vous participez, vous devez préciser clairement votre association (un ou deux mots peuvent suffire, même une référence aussi brève que nécessaire our Optunity); comme le dit l'aide sur le comportement, "si certains ... se rapportent à votre produit ou à votre site Web, ce n'est pas grave. Cependant, vous devez divulguer votre affiliation"
Glen_b -Reinstate Monica

Réponses:

39

La recherche aléatoire a une probabilité de 95% de trouver une combinaison de paramètres dans l'optimum de 5% avec seulement 60 itérations. Également comparé à d'autres méthodes, il ne s'enlise pas dans l'optima local.

Consultez cet article de blog génial sur Dato par Alice Zheng, plus précisément la section Algorithmes de réglage Hyperparameter .

J'adore les films où l'opprimé gagne, et les papiers d'apprentissage automatique où des solutions simples s'avèrent étonnamment efficaces. C’est l’intrigue de «Recherche aléatoire pour l’optimisation de l’hyperparamètre» de Bergstra et Bengio. [...] La recherche aléatoire n'était pas prise très au sérieux auparavant. En effet, la recherche ne couvre pas tous les points de la grille. Il est donc impossible de battre l’optimum trouvé par la recherche dans la grille. Mais ensuite sont venus Bergstra et Bengio. Ils ont montré que, dans de nombreux cas, la recherche aléatoire s’effectue aussi bien que la recherche sur grille. Au total, essayer 60 points choisis au hasard dans la grille semble être suffisant.

Avec le recul, il existe une explication probabiliste simple du résultat: pour toute distribution sur un espace échantillon avec un maximum fini, le maximum de 60 observations aléatoires se situe dans les 5% supérieurs du maximum maximum, avec une probabilité de 95%. Cela peut paraître compliqué, mais ce n’est pas le cas. Imaginez l’intervalle de 5% autour du maximum maximum. Maintenant, imaginons que nous échantillonnons des points de son espace et voyons s’il en reste dans ce maximum. Chaque tirage au sort a 5% de chance d'atterrir dans cet intervalle. Si nous dessinons n points de manière indépendante, la probabilité qu'ils passent tous à l' intervalle souhaité est de (10.05)n. Donc, la probabilité qu’au moins l’un d’entre eux réussisse à atteindre l’intervalle est de 1 moins cette quantité. Nous voulons au moins une probabilité de succès de 0,95. Pour déterminer le nombre de tirages dont nous avons besoin, il suffit de résoudre n dans l'équation:

1(10.05)n>0.95

n60

La morale de l'histoire est la suivante: si la région d'hyperparamètres proche de l'optimale occupe au moins 5% de la surface de la grille, une recherche aléatoire avec 60 essais trouvera cette région avec une probabilité élevée.

Vous pouvez améliorer cette chance avec un plus grand nombre d'essais.

Dans l’ensemble, si vous avez trop de paramètres à ajuster, la recherche sur grille peut devenir irréalisable. C'est à ce moment que j'essaye la recherche aléatoire.

Pyromane
la source
3
Lien vers le blog est en baisse :( Cela pourrait être le même article? Oreilly.com/ideas/evaluating-machine-learning-models/page/5/...
n1k31t4
@DexterMorgan Hé, merci pour le heads up. Ouais, le blog est apparemment en panne, et je ne suis pas sûr de devoir faire un lien vers d'autres sources qui pourraient ne pas être "officielles" , alors je vais le laisser tel quel pour le moment, je pense.
Firebug
Le blog est toujours en panne ... merci de l'avoir cité et @ n1k31t4 merci de nous avoir fourni un lien pour vous permettre de lire plus!
LLR
8

Regardez à nouveau le graphique du papier (Figure 1). Supposons que vous avez deux paramètres. Avec la recherche dans la grille 3x3, vous ne cochez que trois valeurs de paramètre différentes pour chacun des paramètres (trois lignes et trois colonnes sur le tracé de gauche), tandis que pour la recherche aléatoire, vous cochez neuf (!) Valeurs de paramètres différentes. de chacun des paramètres (neuf lignes distinctes et neuf colonnes distinctes).

Grille vs recherche aléatoire

De toute évidence, la recherche aléatoire, par hasard, peut ne pas être représentative de toute la gamme des paramètres, mais à mesure que la taille de l'échantillon augmente, les chances que cela se produise deviennent de plus en plus petites.

Tim
la source
6

Si vous pouvez écrire une fonction dans la recherche sur la grille, il est probablement encore plus facile d'écrire une fonction pour effectuer une recherche aléatoire, car vous n'avez pas besoin de spécifier au préalable et de stocker la grille à l'avance.

En mettant cela de côté, des méthodes telles que LIPO, l’optimisation des essaims de particules et l’optimisation Bayesienne font des choix intelligents quant aux hyperparamètres susceptibles d’être meilleurs. Par conséquent, si vous devez limiter le nombre de modèles à un minimum absolu (par exemple, il est coûteux de modèle), ces outils sont des options prometteuses. Ce sont également des optimiseurs globaux, de sorte qu’ils ont une forte probabilité de localiser le maximum global. Certaines des fonctions d’acquisition des méthodes BO ont des limites de regret prouvables, ce qui les rend encore plus attrayantes.

Plus d'informations peuvent être trouvées dans ces questions:

Quels sont certains des inconvénients de l'optimisation bayésienne hyper-paramètres?

Optimisation lorsque la fonction de coût est lente à évaluer

Sycorax dit Réintégrer Monica
la source
2

Par défaut, la recherche aléatoire et la recherche sur grille sont des algorithmes terribles à moins que l’une des procédures suivantes ne soit suspendue.

  • Votre problème n'a pas de structure globale, par exemple si le problème est multimodal et si le nombre d'optima local est énorme
  • Votre problème est bruyant, c'est-à-dire qu'évaluer deux fois la même solution conduit à des valeurs de fonction objectif différentes
  • Le budget des appels de fonction objectif est très petit comparé au nombre de variables, inférieur à 1x ou 10x, par exemple.
  • Le nombre de variables est très petit, par exemple inférieur à 5 (en pratique).
  • quelques autres conditions.

La plupart des gens prétendent que la recherche aléatoire est meilleure que la recherche sur grille. Toutefois, notez que lorsque le nombre total d’évaluations de fonctions est prédéfini, la recherche sur grille conduit à une bonne couverture de l’espace de recherche qui n’est pas pire que la recherche aléatoire avec le même budget et la différence entre les deux est négligeable, le cas échéant. Si vous commencez à ajouter certaines hypothèses, par exemple que votre problème est séparable ou presque, vous trouverez des arguments pour prendre en charge la recherche par grille. Dans l'ensemble, les deux sont comparativement terribles, sauf dans très peu de cas. Il n’est donc pas nécessaire de les distinguer, à moins de prendre en compte d’autres hypothèses sur le problème.

IndieSolver
la source
pouvez-vous proposer quelque chose de mieux? Comment pouvons-nous savoir ce qu'il y a de mieux si nous n'essayons pas? Il me semble que la recherche aléatoire sur plusieurs modèles est la meilleure solution de compromis.
JPErwin
0

Trouver une tache à moins de 95% des maxima dans une topographie 2D avec un seul maxima nécessite 100% / 25 = 25%, 6,25%, 1,5625% ou 16 observations. Tant que les quatre premières observations déterminent correctement le quadrant dans lequel se trouvent les maxima (extrema). La topographie 1D prend 100/2 = 50, 25, 12,5, 6,25, 3,125 ou 5 * 2. J'imagine que les personnes à la recherche de plusieurs maxima locaux farflung utilisent la recherche dans la grille initiale puis la régression ou une autre méthode de prédiction. Une grille de 60 observations devrait avoir une observation à moins de 100/60 = 1,66% des extrema. Optimisation globale Wikipedia Je pense toujours qu'il existe toujours une meilleure méthode que le hasard.

ran8
la source
Le recuit simulé est une forme de recherche aléatoire qui existe depuis plusieurs années.
Michael R. Chernick
-1

Comme Tim l'a montré, vous pouvez tester plus de valeurs de paramètres avec la recherche aléatoire qu'avec la recherche par grille. Ceci est particulièrement efficace si certains des paramètres que vous testez finissent par ne pas avoir d'impact sur votre problème, comme le "paramètre sans importance" sur la figure 1 de l'article.

entrez la description de l'image ici

J'ai publié un article sur le réglage des hyperparamètres dans lequel je décrivais les différences entre la recherche sur grille, la recherche aléatoire et l'optimisation bayésienne. Vous pouvez le vérifier (et laissez-moi savoir si cela a été utile, les commentaires sont les bienvenus!)

JPro
la source