Gpyopt: Behandeln Sie jede Iteration von BO als Zeitschritt in GPyOpt

Erstellt am 29. Mai 2016  ·  3Kommentare  ·  Quelle: SheffieldML/GPyOpt

Hi!
Ich versuche, jede Iteration von BO als einen bestimmten Zeitschritt zu behandeln. Mit anderen Worten, wäre es möglich, den BO zu erzwingen, um die Zielfunktion in einem begrenzten Zeitschritt zu bewerten? Es scheint, die
time-step als zusätzliche Eingabe ist eine sinnvolle Wahl, aber wie kann ich in GPyOpt vorgehen, nachdem ich die zusätzliche Eingabe in meinem Kernel berücksichtigt habe? Muss die Formulierung von EI geändert werden?
Danke für die Hilfe!

Hilfreichster Kommentar

Hallo Ali,
Sie können die erwartete Verbesserung (EI) pro Zeiteinheit verwenden. In GPyOpt können Sie dies tun, indem Sie einstellen

cost_withGradients= 'evaluation_time'

beim Anlegen des Optimierungsobjekts. Was es tut, ist, die empirischen Bewertungszeiten zu verwenden, um einen Hausarzt an das Protokoll der Kosten anzupassen. Der hintere Mittelwert, mu_cost(x), wird verwendet, um den EI wie folgt zu berechnen:

EI_Einheitszeit(x) = EI(x)/mu_Kosten(x)

Wir haben noch kein Notizbuch darüber geschrieben, da es sich um ein neues Feature handelt, das wir noch testen, aber Sie können es ausprobieren. Lass uns einfach wissen, ob es bei dir funktioniert hat.

Ich hoffe das hilft,. Danke für das Interesse!

Javier

Alle 3 Kommentare

Hallo Ali,
Sie können die erwartete Verbesserung (EI) pro Zeiteinheit verwenden. In GPyOpt können Sie dies tun, indem Sie einstellen

cost_withGradients= 'evaluation_time'

beim Anlegen des Optimierungsobjekts. Was es tut, ist, die empirischen Bewertungszeiten zu verwenden, um einen Hausarzt an das Protokoll der Kosten anzupassen. Der hintere Mittelwert, mu_cost(x), wird verwendet, um den EI wie folgt zu berechnen:

EI_Einheitszeit(x) = EI(x)/mu_Kosten(x)

Wir haben noch kein Notizbuch darüber geschrieben, da es sich um ein neues Feature handelt, das wir noch testen, aber Sie können es ausprobieren. Lass uns einfach wissen, ob es bei dir funktioniert hat.

Ich hoffe das hilft,. Danke für das Interesse!

Javier

Danke Javier!
Das klingt gut! Da es sich um eine neue Funktion von GPyOpt handelt, würden Sie bitte mehr Erläuterungen zu seiner Funktionalität geben? Genauer gesagt, was meinst du mit:
* if cost_withGradients = 'evaluation time' Die Evaluierungszeit der Funktion wird verwendet, um einen GP zu modellieren, dessen Mittelwert als Kosten verwendet wird. *

Ich habe eine dynamische Blackbox-Objektivfunktion, die alle 30 Minuten ausgewertet werden muss. Ist diese neue Funktion in diesem Fall angemessen? Muss ich die Zeit in meinem Kernel trotzdem explizit als zusätzliche Eingabe berücksichtigen?
Übrigens, wie kann ich Fehler oder Tippfehler am besten melden?
Danke für die Hilfe!

Hallo Ali,
cost_withGradients = 'Auswertungszeit' ist eine Option, die Sie verwenden können, wenn Sie das ursprüngliche BO-Objekt mit erstellen

GPyOpt.methods.BayesianOptimization(...)

Ich arbeite gerade an der Dokumentation, also werden diese Dinge hoffentlich bald klarer. Ich möchte auch ein kleines Notizbuch schreiben, um zu veranschaulichen, wie man Kostenfunktionen verwendet. Ich werde Sie darüber auf dem Laufenden halten.

In Bezug auf Ihr Problem: Wenn ich das Problem, das Sie haben, gut verstehe, ist, dass sich das Objektiv mit der Zeit ändert, sodass sich das Ergebnis einer Bewertung _jetzt_ bei x ändert, wenn Sie in einigen Iterationen an derselben Stelle bewerten. Um zu entscheiden, wo die Funktion ausgewertet werden soll, müssen Sie Ihre Stichprobe irgendwie so gewichten, dass neuere Auswertungen über die aktuelle Form Ihrer Funktion aussagekräftiger sind als alte. Wie Sie sagen, können Sie diese dynamische Komponente berücksichtigen, indem Sie die Zeit im Kernel verwenden. Dieses Papier kann Ihnen helfen (wenn Sie es noch nicht wissen!):

https://infoscience.epfl.ch/record/215301/files/Time-Varying%20Gaussian%20Process%20Bandit%20Optimization.pdf

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

vsariola picture vsariola  ·  11Kommentare

YoshikawaMasashi picture YoshikawaMasashi  ·  7Kommentare

CarrKnight picture CarrKnight  ·  7Kommentare

benmoseley picture benmoseley  ·  4Kommentare

lewisscola picture lewisscola  ·  5Kommentare