Mathematische Optimierung einer verrauschten Funktion


10

Sei eine Funktion, die ziemlich nett ist (z. B. stetig, differenzierbar, nicht zu viele lokale Maxima, vielleicht konkav usw.). Ich möchte ein Maximum von f finden : einen Wert x R d , der f ( x ) so groß wie möglich macht.f:RdRfxRdf(x)

Wenn ich ein Verfahren hätte, um bei einer Eingabe meiner Wahl genau zu bewerten , könnte ich mathematische Standardoptimierungstechniken verwenden: Bergsteigen, Gefälle (gut, Gefälle) usw. In meiner Anwendung habe ich jedoch keine Weg, um f ( x ) genau zu bewerten . Stattdessen habe ich eine Möglichkeit, den Wert von f ( x ) zu schätzen .ff(x)f(x)

Insbesondere habe ich bei jedem und jedem ε ein Orakel, das eine Schätzung von f ( x ) ausgibt und dessen erwarteter Fehler ungefähr ε beträgt . Die Laufzeit dieses Orakelaufrufs ist proportional zu 1 / ε 2 . (Es wird durch eine Art Simulation implementiert. Die Genauigkeit der Simulation steigt mit der Quadratwurzel der Anzahl der Versuche, und ich kann auswählen, wie viele Versuche ausgeführt werden sollen, damit ich die gewünschte Genauigkeit auswählen kann.) Dies gibt mir also eine Weg, um eine Schätzung der gewünschten Genauigkeit zu erhalten, aber je genauer die Schätzung sein soll, desto länger dauert es.xεf(x)ε1/ε2

Gibt es angesichts dieses lauten Orakels für Techniken, um ein Maximum von f so effizient wie möglich zu berechnen ? (Oder genauer gesagt, ein ungefähres Maximum finden.) Gibt es Varianten des Bergsteigens, des Gefälles usw., die in diesem Modell funktionieren?ff

Natürlich könnte ich mit diesem Orakel einen sehr kleinen Wert von festlegen und Bergsteigen oder Gefälle anwenden , wobei ich ε durchgehend beibehalten würde . Dies kann jedoch unnötig ineffizient sein: Wir benötigen möglicherweise keine so genaue Schätzung am Anfang, während die Genauigkeit am Ende, wenn Sie sich auf die Lösung konzentrieren, wichtiger ist. Gibt es also eine Möglichkeit, meine Fähigkeit zu nutzen, die Genauigkeit meiner Schätzung dynamisch zu steuern, um den Optimierungsprozess effizienter zu gestalten? Wurde diese Art von Problem schon einmal untersucht?εε


2
Scheint ein sehr ratenoptimierendes Problem zu sein, um ein eigenes Fachgebiet zu rechtfertigen. Was ist mit simuliertem Tempern? Können Sie die Ideen von dort anpassen - die Übergangswahrscheinlichkeiten und den Temperaturplan? Dort besteht eine Verbindung - während Sie fortfahren, sinkt die Temperatur, und in Ihrem Fall möchten Sie, dass sinkt. ϵ
Randomsurfer_123

Cybersynchronizität, ist kürzlich in einem GA-Programm auf genau diesen Fall gestoßen. stimmte mit rs oben überein, dass simuliertes Tempern funktionieren sollte, wenn die Genauigkeit der Funktionsbewertung in etwa mit dem Temperaturabfall übereinstimmt. Eine andere Idee besteht darin, an jedem Punkt nur eine feste Anzahl von Stichproben zu erstellen und den Durchschnitt als Schätzung zu verwenden. Eine fortgeschrittenere Theorie könnte Ihnen nur sagen, dass Sie nicht umsonst etwas bekommen können und dass es keine Abkürzung zu Bewertungen gibt, die die Optimierung verbessern.
vzn

Antworten:


4

f(x,p)f(x+Δx,p+Δp)pΔxΔp

  • Einige Techniken, die bei der stochastischen Optimierung und der robusten Optimierung verwendet werden, könnten anwendbar sein.
  • fx0ΔxΔp
  • fx(x~,p~)f(x~,p~)
  • ΔpΔx1/ϵ2
  • Der gegebene Kompromiss zwischen Rauschen und Laufzeit unterscheidet dieses Problem von besser untersuchten Problemen. Probleme, bei denen der Lärm einfach unvermeidbar ist, sind häufiger und besser untersucht.

f(x,p)f(x+Δx,Δp)pp=0f). Stochastische Optimierung und robuste Optimierung klingen mehr oder weniger nach den Dingen, nach denen ich gesucht habe. Das ist also sehr hilfreich. Vielen Dank.
DW

p=0f(x,0)f(x+Δx,Δp)ΔxΔp
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.