Optimierung durch Stichproben

7

Im Internet habe ich vereinzelte Hinweise auf die Idee gesehen, eine Zielfunktion neu zu skalieren und diese als PDF zum Zwecke der Optimierung zu verwenden. (Auf dieser Website zum Beispiel: Werden Optimierungstechniken Stichprobenverfahren zugeordnet? ) Kann mich jemand auf einen Ort verweisen, an dem ich mehr über diese Methode erfahren kann? (Beiträge, Blogposts, Vorträge usw.)

Die Idee, wie ich es gesehen habe, ist es, Ihre objektive Funktion zu übernehmen f(x) und erstellen Sie eine neue Funktion g(x)=ekf(x), wo kist eine sehr große Zahl für ein Maximierungsproblem oder eine sehr große negative Zahl für ein Minimierungsproblem. Die neue Funktiong(x)wird dann im globalen Optimum viel höher sein als anderswo. Wenng(x) wird dann als nicht normalisierte Wahrscheinlichkeitsdichtefunktion behandelt, liegen die meisten aus dieser Verteilung gezogenen Stichproben um dieses Optimum herum.

Zu den Dingen, die ich wissen möchte, gehören unter anderem:

  1. Welche Stichprobenalgorithmen sind für diese Wahrscheinlichkeitsfunktionen wirksam?
  2. Warum wird diese Methode nicht häufiger angewendet? (Es scheint, als könnte es so effektiv sein). Mit anderen Worten, gibt es Argumente dagegen?
  3. Gibt es Varianten dieser Methode, die die Effizienz oder Leistung verbessern?
KFox
quelle

Antworten:

4

Es hört sich so an, als wären Sie daran interessiert, stochastische Optimierungsmethoden zu studieren . Wenn Sie die Optimierung als eine Art Stichprobenproblem neu gestalten, erhalten Sie eine stochastische Optimierungsmethode, und diese letztere Methode ist nur dann von Vorteil, wenn sie gegenüber analogen deterministischen Optimierungsmethoden eine gewisse Verbesserung bietet .

Im Allgemeinen umfassen stochastische Optimierungsmethoden dieser Art die Erzeugung von Zufallswerten in einer Weise, die von der zu optimierenden Funktion abhängt, und daher ist sie wahrscheinlich mindestens genauso rechenintensiv (und wahrscheinlich rechenintensiver) als entsprechende deterministische Methoden . Stochastische Methoden sind im Allgemeinen auch komplizierter zu verstehen. Der einzige Vorteil, der sich wahrscheinlich aus (gut konstruierten) stochastischen Optimierungsmethoden ergibt, besteht darin, dass sie im Allgemeinen eine Wahrscheinlichkeit ungleich Null beibehalten, Bereiche der Domäne zu "durchsuchen", die von deterministischen Methoden möglicherweise übersehen werden, und das sind sie auch wohl robuster, wenn Sie bereit sind, sie für eine lange Zeit laufen zu lassen.

Die meisten standardmäßigen deterministischen Optimierungsmethoden umfassen iterative Schritte in Richtung der Optima durch Auswahl einer deterministischen Bewegungsrichtung und Bewegung in diese Richtung um einen bestimmten deterministischen Betrag (z. B. bewegen wir uns bei steilstem Aufstieg in Richtung des Gradientenvektors). Die Richtung und Länge der Schritte wird normalerweise durch Betrachten des Gradienten der Funktion bestimmt, der in der Praxis berechnet wird, indem die Steigung über ein kleines Bewegungsinkrement betrachtet wird. Indem Sie die Optimierung in ein Stichprobenproblem verwandeln, bewegen Sie sich effektiv nur um einen zufälligen Betrag in eine zufällige Richtung. Sie möchten jedoch weiterhin Informationen über die Steigung der Funktion verwenden, um das stochastische Verhalten dieser Bewegung zu bestimmen. Es ist wahrscheinlich, dass die letztere Methode die gleichen Informationen wie die erstere verwendet, nur in einer komplexeren (und damit komplexeren) Methode rechenintensiver) Weg. Im Folgenden werde ich anhand Ihrer Beschreibung eine Methode unter Verwendung des MH-Algorithmus erstellen.


Implementierung mit dem Metropolis-Hastings-Algorithmus: Angenommen, Sie haben es mit einem Maximierungsproblem bei einer Verteilung über eine Dimension zu tun und betrachten die Methode der Metropolis-Hasting-Abtastung unter Verwendung von Gaußschen Abweichungen. Dies ist eine bekannte Methode zur Probenahme, die durch die Probenahmedichte sehr robust gegen unangenehmes Verhalten ist.

Um den Algorithmus zu implementieren, generieren wir eine Sequenz ε1,ε2,ε3,...IID N(0,1) von zufälligen Abweichungen, die wir später mit dem Parameter "Bandbreite" multiplizieren werden λ>0(Dieser Parameter repräsentiert also die Standardabweichung unserer vorgeschlagenen Schritte). Wir generieren auch eine SequenzU1,U2,U3,...U(0,1)von einheitlichen Zufallsvariablen. Wir wählen einen Startwertx0 willkürlich und erzeugen die Folge von Abtastwerten rekursiv als:

xt+1={xt+λεt+1if Ut+1exp(k(f(xt+λεt+1)f(xt))),xtotherwise.

Der MH-Algorithmus hat eine stationäre Verteilung, die gleich der Zieldichte ist, also haben wir die ungefähre Verteilung für großes . Ein großer Wert für (relativ zum Bandbreitenparameter) wird verwendet bedeuten, dass Abweichungen in Richtung der Optima mit hoher Wahrscheinlichkeit akzeptiert werden und Abweichungen von den Optima (oder das Überschreiten der Optima) mit hoher Wahrscheinlichkeit zurückgewiesen werden. In der Praxis sollten die Stichprobenwerte daher in der Nähe des Maximierungspunkts konvergieren der Dichte . (Es würde immer noch Fälle geben, in denen dies nicht auftreten würde; z. B. wenn die Dichte bimodal ist und der Algorithmus die falsche Steigung erklimmt.) Wenn wir einen großen Wert von dann die VerteilungXnexp(k(f(x))nkfkexp(k(f(x)) ist nahe dem Maximierungswert hoch konzentriert, daher sollte in diesem Fall der Stichprobenmittelwert der Stichprobenwerte (Verwerfen einiger Einbrennwerte) eine gute Schätzung des Maximierungswerts bei der Optimierung liefern .

Nehmen wir nun an, wir wirken dem großen Wert von indem wir die Bandbreite auf klein einstellen . In diesem Fall erhalten wir kleine Werte für die Abweichungen, sodass wir die ungefähren Akzeptanzwahrscheinlichkeiten haben:kλ

exp(k(f(xt+λεt+1)f(xt)))exp(kλεt+1f(xt)).

Wir können sehen, dass in diesem Fall die Akzeptanzwahrscheinlichkeit durch die Ableitung der Dichte, der Größe und Richtung der Abweichung und des Wertes .εt+1kλ

Funktioniert dieser Algorithmus tatsächlich besser als anwendbare deterministische Optimierungsalgorithmen? Nun, wir können sehen, dass der Algorithmus erfordert, dass wir die Dichte bei jedem möglichen Schritt berechnen, und wenn der Bandbreitenparameter klein ist, ist dies gleichbedeutend mit der Berechnung der Ableitung der Funktion. Dies ist also einer Form des stochastischen Gradientenaufstiegs ziemlich ähnlich, mit mehr Rechenarbeit als die entsprechende deterministische Methode. Der Vorteil, falls vorhanden, besteht darin, dass die vorgeschlagenen Abweichungen zufällig sind und alle mit einer Wahrscheinlichkeit ungleich Null auftreten (wenn auch sehr schnell verschwinden), so dass der Algorithmus das Potenzial hat, Regionen mit hoher, aber nicht maximierender Dichte zu "entkommen" .

Ben - Monica wieder einsetzen
quelle
Gibt es einen Zusammenhang zwischen diesem Ansatz und dem Ansatz, bei dem dem Gradienten vor jedem Schritt Rauschen hinzugefügt wird, z. B. wobei ? Was ist mit der stochastischen Gradienten-Langevin-Dynamik ? θ˙=L(θ)+εtεtN(0,σt)
user76284
Sie sehen für mich wie verschiedene Verfahren aus, aber es ist möglich, dass es einige Verbindungen gibt. Sie sind zumindest in dem losen Sinne verbunden, der stochastische Iterationen beinhaltet, bei denen eine Rauschkomponente zur Standard-Newton-Raphson-Iteration hinzugefügt wird (entweder in Richtung, Entfernung oder Gradient).
Ben - Reinstate Monica