Praktische Hyperparameteroptimierung: Zufällige vs. Gittersuche


40

Ich gehe gerade die Zufallssuche von Bengio und Bergsta für die Hyperparameter -Optimierung [1] durch, bei der die Autoren behaupten, die Zufallssuche sei effizienter als die Rastersuche, um ungefähr die gleiche Leistung zu erzielen.

Meine Frage ist: Stimmen die Leute hier dieser Behauptung zu? In meiner Arbeit habe ich die Rastersuche hauptsächlich wegen des Mangels an verfügbaren Werkzeugen verwendet, um eine einfache Zufallssuche durchzuführen.

Wie ist die Erfahrung von Personen, die Raster- oder Zufallssuche verwenden?


Die zufällige Suche ist besser und sollte immer bevorzugt werden. Es ist jedoch noch besser, dedizierte Bibliotheken für die Optimierung von Hyperparametern zu verwenden, z. B. Optunity , Hyperopt oder Bayesopt.
Marc Claesen

Bengio et al. schreibe hier darüber: papers.nips.cc/paper/… GP funktioniert also am besten, aber RS ​​funktioniert auch großartig.
Guy L

10
@Marc Wenn Sie einen Link zu etwas bereitstellen, an dem Sie beteiligt sind, sollten Sie Ihre Assoziation damit klarstellen (ein oder zwei Wörter können ausreichen, auch wenn etwas so kurz ist, als wenn Sie darauf verweisen, wie es our Optunitysollte). Wie die Verhaltenshilfe sagt: "Wenn sich einige ... zufällig auf Ihr Produkt oder Ihre Website
beziehen

Antworten:


39

Die zufällige Suche hat eine Wahrscheinlichkeit von 95%, eine Parameterkombination innerhalb der 5% -Optima mit nur 60 Iterationen zu finden. Auch im Vergleich zu anderen Methoden bleibt es bei lokalen Optima nicht hängen.

Schauen Sie sich diesen großartigen Blog-Beitrag bei Dato von Alice Zheng an, insbesondere den Abschnitt Hyperparameter-Optimierungsalgorithmen .

Ich mag Filme, in denen der Außenseiter gewinnt, und ich mag maschinelles Lernen, bei dem sich einfache Lösungen als überraschend effektiv herausstellen. Dies ist die Handlung von "Random Search for Hyperparameter Optimization" von Bergstra und Bengio. [...] Die zufällige Suche wurde vorher nicht sehr ernst genommen. Dies liegt daran, dass nicht alle Rasterpunkte durchsucht werden, sodass das durch die Rastersuche ermittelte Optimum möglicherweise nicht übertroffen werden kann. Dann aber kamen Bergstra und Bengio vorbei. Sie zeigten, dass die Zufallssuche in überraschend vielen Fällen sowohl die Gittersuche als auch die Gittersuche durchführt. Alles in allem scheint es gut genug zu sein, 60 zufällige Punkte aus dem Raster auszuprobieren.

Im Nachhinein gibt es eine einfache probabilistische Erklärung für das Ergebnis: Für jede Verteilung über einen Probenraum mit einem endlichen Maximum liegt das Maximum von 60 zufälligen Beobachtungen mit einer Wahrscheinlichkeit von 95% innerhalb der oberen 5% des wahren Maximums. Das mag kompliziert klingen, ist es aber nicht. Stellen Sie sich das 5% -Intervall um das wahre Maximum vor. Stellen Sie sich nun vor, dass wir Punkte aus seinem Raum abtasten und prüfen, ob einer dieser Punkte in diesem Maximum liegt. Jede zufällige Ziehung hat eine Chance von 5%, in diesem Intervall zu landen. Wenn wir n Punkte unabhängig voneinander ziehen, ist die Wahrscheinlichkeit, dass alle das gewünschte Intervall verfehlen, (10.05)n. Die Wahrscheinlichkeit, dass mindestens einer von ihnen das Intervall erreicht, ist 1 minus dieser Menge. Wir wollen mindestens eine Erfolgswahrscheinlichkeit von 0,95. Um die Anzahl der Ziehungen zu ermitteln, die wir benötigen, lösen Sie einfach nach n in der Gleichung:

1(10.05)n>0.95

Wir bekommen . Ta-da!n60

Die Moral der Geschichte lautet: Wenn der nahezu optimale Bereich von Hyperparametern mindestens 5% der Rasterfläche einnimmt, findet die zufällige Suche mit 60 Versuchen diesen Bereich mit hoher Wahrscheinlichkeit.

Sie können diese Chance mit einer höheren Anzahl von Versuchen verbessern.

Alles in allem ist die Rastersuche möglicherweise nicht mehr durchführbar, wenn zu viele Parameter eingestellt werden müssen. Dann versuche ich, nach dem Zufallsprinzip zu suchen.


3
Der Link zum Blog-Post ist nicht verfügbar
n1k31t4

@DexterMorgan Hey, danke für die Hinweise. Ja, der Blog ist anscheinend inaktiv und ich bin mir nicht sicher, ob ich auf andere Quellen verlinken soll, die möglicherweise nicht "offiziell" sind.
Firebug

Der Blog ist immer noch inaktiv ... danke, dass Sie ihn zitiert haben, und @ n1k31t4 danke, dass Sie einen Link für die weitere Lektüre bereitgestellt haben!
llrs

8

Sehen Sie sich die Grafik auf dem Papier noch einmal an (Abbildung 1). Angenommen, Sie haben zwei Parameter. Bei der 3x3-Rastersuche überprüfen Sie nur drei verschiedene Parameterwerte aus jedem der Parameter (drei Zeilen und drei Spalten im Diagramm links), während Sie bei der Zufallssuche neun (!) Verschiedene Parameterwerte überprüfen von jedem der Parameter (neun verschiedene Zeilen und neun verschiedene Spalten).

Grid vs zufällige Suche

Offensichtlich ist die zufällige Suche möglicherweise nicht für alle Parameterbereiche repräsentativ, aber mit zunehmender Stichprobengröße wird die Wahrscheinlichkeit immer geringer.


6

Wenn Sie eine Funktion in die Rastersuche schreiben können, ist es wahrscheinlich noch einfacher, eine Funktion für die Zufallssuche zu schreiben, da Sie das Raster nicht im Voraus angeben und speichern müssen.

Abgesehen davon treffen Methoden wie LIPO, Partikelschwarmoptimierung und Bayesianische Optimierung intelligente Entscheidungen darüber, welche Hyperparameter wahrscheinlich besser sind. Wenn Sie also die Anzahl der Modelle auf ein absolutes Minimum beschränken müssen (z. B. weil es teuer ist, a anzupassen) Modell) sind diese Tools vielversprechende Optionen. Sie sind auch globale Optimierer und haben daher eine hohe Wahrscheinlichkeit, das globale Maximum zu lokalisieren. Einige der Akquisitionsfunktionen von BO-Methoden weisen nachweislich Bedauern auf, was sie noch attraktiver macht.

Weitere Informationen finden Sie in diesen Fragen:

Was sind einige der Nachteile der Bayes'schen Hyperparameteroptimierung?

Optimierung, wenn die Kostenfunktion nur langsam evaluiert werden kann


2

Standardmäßig sind Zufallssuche und Rastersuche schreckliche Algorithmen, sofern nicht eine der folgenden Bedingungen zutrifft.

  • Ihr Problem ist nicht global strukturiert, z. B. wenn das Problem multimodal ist und die Anzahl der lokalen Optima sehr groß ist
  • Ihr Problem ist verrauscht, dh die zweimalige Bewertung derselben Lösung führt zu unterschiedlichen Zielfunktionswerten
  • Das Budget für objektive Funktionsaufrufe ist im Vergleich zur Anzahl der Variablen sehr klein, z. B. kleiner als 1x oder 10x.
  • Die Anzahl der Variablen ist sehr klein, zB kleiner als 5 (in der Praxis).
  • ein paar andere Bedingungen.

Die meisten Leute behaupten, dass die Zufallssuche besser ist als die Rastersuche. Beachten Sie jedoch, dass bei einer vordefinierten Gesamtzahl von Funktionsbewertungen die Rastersuche zu einer guten Abdeckung des Suchraums führt, die nicht schlechter ist als die Zufallssuche mit demselben Budget, und der Unterschied zwischen beiden ist vernachlässigbar. Wenn Sie einige Annahmen hinzufügen, z. B. dass Ihr Problem trennbar oder fast trennbar ist, finden Sie Argumente zur Unterstützung der Rastersuche. Insgesamt sind beide vergleichsweise schrecklich, wenn nicht in ganz wenigen Fällen. Daher besteht keine Notwendigkeit, zwischen ihnen zu unterscheiden, es sei denn, einige zusätzliche Annahmen zu dem Problem werden berücksichtigt.


kannst du etwas besseres vorschlagen? Wie können wir wissen, was am besten ist, wenn wir es nicht versuchen? Zufällige Suche über viele Modelle scheint mir die beste Kompromisslösung zu sein.
JPErwin

0

Das Finden eines Punktes innerhalb von 95% der Maxima in einer 2D-Topographie mit nur einem Maxima erfordert 100% / 25 = 25%, 6,25%, 1,5625% oder 16 Beobachtungen. Solange die ersten vier Beobachtungen korrekt bestimmen, in welchem ​​Quadranten sich die Maxima (Extrema) befinden, beträgt die 1D-Topographie 100/2 = 50, 25, 12,5, 6,25, 3,125 oder 5 * 2. Ich vermute, dass Menschen, die nach mehreren weit auseinander liegenden lokalen Maxima suchen, die Suche nach großen Anfangsgittern und dann die Regression oder eine andere Vorhersagemethode verwenden. Bei einem Raster von 60 Beobachtungen sollte eine Beobachtung innerhalb von 100/60 = 1,66% der Extrema liegen. Globale Optimierung Wikipedia Ich denke immer noch, dass es eine bessere Methode als Zufälligkeit gibt.


Simuliertes Tempern ist eine Form der Zufallssuche, die es schon seit einigen Jahren gibt.
Michael Chernick
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.