Simulated Annealing (SA) ist ein sehr einfacher Algorithmus im Vergleich zur Bayesian Optimization (BO). Keine der beiden Methoden geht von einer Konvexität der Kostenfunktion aus, und keine der beiden Methoden stützt sich stark auf Gradienteninformationen.
SA ist in gewisser Weise ein leicht gebildeter Zufallsspaziergang. Die Kandidatenlösung springt mit einem bestimmten Sprungplan (dem Kühlparameter) über den Lösungsraum. Es ist dir egal, wo du vorher gelandet bist, du weißt nicht, wo du als nächstes landen wirst. Dies ist ein typischer Markov-Kettenansatz. Sie modellieren keine starken Annahmen über die Oberfläche der darunter liegenden Lösung. Die MCMC-Optimierung hat einen langen Weg von SA zurückgelegt (siehe zum Beispiel Hamiltonian Monte Carlo ), aber wir werden nicht weiter expandieren. Eines der Hauptprobleme bei SA ist, dass Sie häufig "schnell" bewerten müssen. Und es ist sinnvoll, dass Sie so viele Beispiele wie möglich benötigen, um so viele Zustände (dh Kandidatenlösungen) wie möglich zu untersuchen. Sie verwenden nur ein kleines Stück Gradienteninformationen (die Sie fast immer als "bessere" Lösungen akzeptieren).
Schau dir jetzt BO an. Die BO-Regression (oder einfach die Gaußsche Prozess-Regression (GP) über Ihre Kostenfunktionsbewertungen) versucht genau das Gegenteil in Bezug auf die Funktionsbewertung zu tun. Es wird versucht, die Anzahl der von Ihnen durchgeführten Bewertungen zu minimieren. Es erstellt ein bestimmtes nicht parametrisches Modell (normalerweise ein GP) für Ihre Kostenfunktion, das häufig Rauschen voraussetzt. Es werden überhaupt keine Gradienteninformationen verwendet. Mit BO können Sie mit einer kleinen Anzahl von Funktionsbewertungen ein informatives Modell Ihrer Kostenfunktion erstellen. Anschließend "fragen" Sie diese angepasste Funktion nach ihren Extrema ab. Wieder steckt der Teufel im Detail; Sie müssen intelligent probieren (und davon ausgehen, dass Ihr Prior auch halbwegs vernünftig ist). Es wird daran gearbeitet, wo Sie Ihre Funktion als nächstes bewerten können, insbesondere wenn Sie wissen, dass sich Ihre Funktion im Laufe der Zeit tatsächlich geringfügig weiterentwickelt (z. B. hier ).
Ein offensichtlicher Vorteil von SA gegenüber BO besteht darin, dass es innerhalb von SA sehr einfach ist, Ihren Lösungsraum einzuschränken. Wenn Sie beispielsweise nicht negative Lösungen wünschen, beschränken Sie Ihre Stichprobenverteilung einfach auf nicht negative Lösungen. Dasselbe ist in BO nicht so direkt, da Sie selbst dann, wenn Sie Ihre Funktionen anhand Ihrer Einschränkungen (z. B. Nicht-Negativität) bewerten, Ihren Prozess tatsächlich einschränken müssen. Diese Aufgabe ist zwar nicht unmöglich, aber mehr involviert.
Im Allgemeinen würde man SA in Fällen bevorzugen, in denen die Kostenfunktion billig zu bewerten ist, und BO in Fällen, in denen die Kostenfunktion teuer zu bewerten ist. Ich denke, SA gerät langsam aber stetig in Ungnade; Insbesondere die Arbeit der gradientenfreien Optimierung (z. B. NEWQUA , BOBYQA ) nimmt einen ihrer Hauptvorteile im Vergleich zu den Standardmethoden für den Gradientenabstieg weg, bei denen keine Ableitung bewertet werden muss. In ähnlicher Weise macht die Arbeit an adaptiven MCMC (z. B. siehe Referenz oben) sie in Bezug auf die MCMC-Optimierung in fast allen Fällen verschwenderisch.