Ich bin daran interessiert, eine Funktion maximieren , wobei θ ∈ R p ist .
Das Problem ist, dass ich die analytische Form der Funktion oder ihrer Ableitungen nicht kenne. Das einzige , was ich tun kann , ist die Funktion punktweise zu bewerten, indem sie in einem Wert Aufstecken und eine verrauschten Schätzung erhalten f ( θ * ) an diesem Punkt. Wenn ich möchte, kann ich die Variabilität dieser Schätzungen verringern, muss aber steigende Rechenkosten zahlen.
Folgendes habe ich bisher versucht:
Stochastisch steilster Abstieg mit endlichen Unterschieden: Es kann funktionieren, erfordert jedoch viel Abstimmung (z. B. Verstärkungssequenz, Skalierungsfaktor) und ist oft sehr instabil.
Simuliertes Tempern: Es funktioniert und es ist zuverlässig, aber es erfordert viele Funktionsbewertungen, so dass ich es ziemlich langsam fand.
Daher bitte ich um Vorschläge / Ideen zu möglichen alternativen Optimierungsmethoden, die unter diesen Bedingungen funktionieren können. Ich halte das Problem so allgemein wie möglich, um Vorschläge aus anderen Forschungsbereichen als meinen anzuregen. Ich muss hinzufügen, dass ich sehr an einer Methode interessiert wäre, die mir eine Schätzung des Hessischen bei der Konvergenz geben könnte. Dies liegt daran, dass ich damit die Unsicherheit der Parameter abschätzen kann . Andernfalls muss ich endliche Differenzen um das Maximum verwenden, um eine Schätzung zu erhalten.
quelle
Antworten:
Genau dafür wurde unser Matlab-Paket SnobFit entwickelt. Es ist keine Annahme über die Verteilung des Rauschens erforderlich. Darüber hinaus können Funktionswerte über Textdateien bereitgestellt werden, sodass Sie sie auf Funktionen anwenden können, die in jedem System implementiert sind, das eine Textdatei schreiben kann. Siehe
http://www.mat.univie.ac.at/~neum/software/snobfit/
SnobFit wurde für eine Anwendung entwickelt, bei der die zu optimierende Funktion nicht einmal existierte und Funktionswerte (ein Maß für die Herstellungsqualität) von speziellen, teuren Geräten erhalten wurden, die Musterprodukte herstellten und diese von Hand maßen, was zu etwa 50 Funktionen führte Bewertungen pro Tag.
quelle
Es gibt verschiedene Bayes'sche Optimierungstechniken , die Sie ausprobieren können. Die einfachsten basieren auf dem Gaußschen Prozess:
Sie arbeiten, indem sie einen posterioren über plausiblen Funktionen bilden, die bisher Beobachtungen geben und den nächsten Punkt vorschlagen, um die Funktion schnell zu lernen und die globalen Maxima zu finden (siehe meinen Blog-Beitrag ).
Ein weiterer Vorteil ist, dass Sie den Hessischen an den Maxima schätzen können. Sie müssen jedoch ein Rauschmodell angeben.
quelle
Der SPSA-Algorithmus von James Spall (kurz für Stochastic Perturbation Simulated Annealing, wenn ich mich richtig erinnere) wurde für genau diese Art von Problem entwickelt. Er hat ein paar Papiere, in denen er sie für Probleme wie das von Ihnen beschriebene verwendet.
quelle