Teure Versuche · Verständlich erklärt

Bayessche Optimierung verständlich erklärt

Wer eine Einstellung nur mit teuren Probeläufen prüfen kann, darf nicht blind ausprobieren. Diese Seite zeigt zuerst ohne Formeln, wie ein Verfahren aus den bisherigen Versuchen eine Karte der vermuteten Ergebnisse baut und damit den nächsten Versuch wählt. Danach folgen Modell, Formeln, Messwerte und Grenzen für Fachleute. Dazu gehört ein Programm zum Ausprobieren im Browser (die Demo).

Zuletzt aktualisiert:

Teil 1 · Für Einsteiger

Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.

Wenn jeder Versuch teuer ist

Stellen Sie sich ein Containerterminal vor. Sie möchten die Kosten senken und können zwei Dinge einstellen: wie viele Stellplätze am Stapel zur Verfügung stehen und wie schnell der Stapel arbeitet. Welche Kombination am billigsten ist, weiß niemand. Man kann sie nur ausprobieren: Ein Simulationslauf spielt den Betrieb am Rechner nach, Lkw für Lkw. Das kostet Rechenzeit, und weil der Zufall mitspielt, ist das Ergebnis eines Laufs nie ganz sicher.

Zufällig auszuwählen ignoriert, was die bisherigen Läufe gezeigt haben. Die Frage lautet also: Welche Einstellung probiere ich als Nächstes aus?

Eine Karte mit Spielraum

Ein Bild, das nicht aus der Demo stammt: Sie suchen in unbekanntem Gelände die tiefste Stelle und dürfen nur wenige Höhenmessungen machen, weil jede einen Messtrupp kostet. Nach den ersten Messungen zeichnen Sie eine Karte des ganzen Geländes. Nahe an einer Messstelle sind Sie recht sicher, wie hoch es dort ist. Weit weg von allen Messstellen können Sie nur raten und tragen einen großen Spielraum ein.

Genau so arbeitet die Bayessche Optimierung: Sie bessert ihre Vermutung nach jedem Versuch nach. Aus den bisherigen Läufen baut sie eine Karte der vermuteten Kosten für alle Einstellungen, jeweils mit Spielraum. Das Fachwort dafür ist Ersatzmodell, denn die Karte ersetzt den teuren Lauf. Sie zu befragen kostet keinen Simulationslauf.

Wohin als Nächstes?

Für den nächsten Versuch gibt es zwei verlockende Wege. Man misst dort, wo die Karte die beste Stelle vermutet: Man verlässt sich auf das, was man schon weiß. Oder man misst dort, wo der Spielraum groß ist: Man sucht Neues und kann überrascht werden. Wer sich nur auf das Bekannte verlässt, kann bei einem mittelmäßigen Fund hängen bleiben. Wer nur Neues sucht, verbraucht Versuche im Unbekannten.

Die Bayessche Optimierung verbindet beides in einer Rechengröße, der erwarteten Verbesserung. Sie sagt für jede Einstellung, wie viel besser als der bisher beste Wert sie laut Karte im Mittel würde; nur Verbesserungen zählen. Der Wert ist hoch, wenn die Karte dort Gutes vermutet oder wenn der Spielraum groß ist, weil dort noch ein besserer Wert als bisher möglich ist. Dort läuft der nächste Versuch. Sein Ergebnis verbessert die Karte, und die Runde beginnt von vorn.

Was die Demo zeigt

Die Demo lässt das Verfahren gegen zufälliges Probieren und gegen eine einfachere Suche antreten. Zuerst nimmt sie Übungsaufgaben, bei denen die richtige Antwort vorab feststeht. Dort liegt das Verfahren in der Demo vor dem Zufall, bei verrauschten Aufgaben aber erst mit mehr Läufen, weil die Karte erst aus einigen Läufen lernen muss.

Am Terminal kommt das Verfahren in der Demo nicht voran. Es tritt gegen Wissen an: eine Rechenformel für Warteschlangen, die das Terminal ohne Probeläufe durchrechnet, ergänzt um eine Faustregel eines Kenners (so viele Stellplätze wie Geräte am Stapel). Für dieses Beispiel mit zwei Einstellungen trifft das Wissen die beste Einstellung ohne einen Simulationslauf. Zwei Bedingungen gehören dazu. Die Formel allein wählt zu wenig Platz am Stapel, blockiert den Betrieb und wird in der Demo sehr teuer; die Faustregel wurde erst nach diesem Ergebnis ergänzt. Und der Vorsprung vor der Suche ist gering, denn schon das Beste aus einigen zufälligen Läufen liegt in der Demo nahe am besten Wert. Richtig teuer ist vor allem die Überlast.

Wie ernst ist das Modell zu nehmen?

Das Terminal, seine Kosten je Einstellung und die Übungsaufgaben sind in der Demo gewählte Annahmen, keine Messung an einem echten Betrieb. Die Demo zeigt, wie das Verfahren vorgeht, nicht welche Einstellung bei Ihnen die beste ist.

Was Sie mitnehmen: Verspricht Ihnen ein Anbieter, mit wenigen teuren Versuchen die beste Einstellung zu finden, fragen Sie zuerst, was über das System schon bekannt ist und ob sich das in eine Rechenformel oder Faustregel fassen lässt. Dass dies der bessere Weg ist, belegt die Demo nur für ihr Beispiel; in Ihrem Betrieb muss man es prüfen. Fehlt solches Wissen, lohnt eine Suche, die aus den Versuchen lernt; in der Demo ist die Bayessche Optimierung dabei nicht immer besser als eine einfachere Suche. Sie erkennen diesen Fall daran, dass jeder Versuch viel Zeit oder Geld kostet, mehrere Einstellungen zusammenspielen und niemand das Ergebnis vorab ausrechnen kann. Das gilt, solange Versuche wirklich teuer sind.

Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.

Teil 2 · Für Fachleute

Modell und Annahmen

Dieser Teil ist eigenständig lesbar. Er fasst die formale Beschreibung der Demo zusammen; die vollständige Fassung steht im Expander „📐 Mathematische Formulierung“ der Demo.

  • Ersatzmodell: Gauß-Prozess mit Matérn-5/2-Kern, je Eingabe ein Längenmaß, Rauschvarianz mitgelernt (Randwahrscheinlichkeit, L-BFGS-B mit drei festen Startpunkten); die Ausgabe wird standardisiert.
  • Auswahl: erwartete Verbesserung (EI) über die noch nicht gelaufenen Einstellungen der Kandidatenmenge; Startdesign 5 zufällige Läufe (in der Studie 10). Empfehlung ist die beste Beobachtung; bewertet wird sie an der Wahrheit, nicht am verrauschten Messwert.
  • Vergleich: Zufall (ohne Zurücklegen), TPE (eigene einfache Fassung: die besten 25 % gegen die übrigen, Gauß-Kerne) und BO mit log-Werten (nur dort, wo die Werte positiv sind).
  • Landschaften: Branin auf einem 31 × 31-Gitter mit Gauß-Rauschen (0, 5, 20); Hartmann6 mit sechs Eingaben, rauschfrei; das Terminal als Scheibe (Plätze am Stapel × Tempo des Stapels, 12 × 17 = 204 Einstellungen, Auswertungen aus einer Tabelle echter Simulationen) und als volles Netz mit sechs Entscheidungen (Geräte je Station, Plätze, beide Tempi).
  • Terminal: 33 Lkw je Stunde, Gate 4 Spuren (3 min), Kran 4 Geräte (2,4 min durch Tempo 0,7), Stapel 5 Geräte (4 min durch Tempo); Streuung der Dauer \(c_s^2 = 2\); Platzgrenze am Stapel mit Blockieren nach Abfertigung. Kosten je Stunde: 20 je Gate-Spur, 120 je Kran, 60 je Stapelgerät (die beiden letzten mal Tempo²), 4 je Stellplatz, 40 je Lkw-Stunde im System. Das sind Annahmen der Demo, keine Marktpreise.

Die Formeln

Der Kern legt fest, wie stark die Werte an zwei Einstellungen \(x, x'\) zusammenhängen. Dabei ist \(r\) der Abstand, bei dem jede Eingabe \(d\) durch ihr Längenmaß \(\ell_d\) geteilt wird, und \(\sigma_f^2\) die Signalvarianz:

\[k(x, x') = \sigma_f^2\Bigl(1 + \sqrt5\, r + \tfrac53 r^2\Bigr)\exp\bigl(-\sqrt5\, r\bigr), \qquad r = \sqrt{\textstyle\sum_d (x_d - x'_d)^2/\ell_d^2}\]

Mit Beobachtungen \(y = f(X) + \varepsilon\), \(\varepsilon \sim \mathcal N(0, \sigma_n^2)\) und \(K = k(X, X) + \sigma_n^2 I\) liefert das Ersatzmodell an jeder Einstellung \(x\) einen Mittelwert und eine Varianz:

\[\mu(x) = k(x, X)\,K^{-1} y\]

\[s^2(x) = k(x, x) - k(x, X)\,K^{-1} k(X, x)\]

Die Längenmaße, \(\sigma_f^2\) und \(\sigma_n^2\) werden durch Maximieren der Randwahrscheinlichkeit gelernt (Ausgabe vorher standardisiert):

\[\log p(y \mid X) = -\tfrac12 y^\top K^{-1} y - \tfrac12 \log|K| - \tfrac n2 \log 2\pi\]

Die Varianz \(s^2(x)\) ist klein nahe an Beobachtungen und wächst mit dem Abstand: Das ist der Spielraum der Karte. Bei Minimierung, mit \(f^*\) als kleinstem Mittelwert an den Beobachtungen und \(z = (f^* - \mu)/s\), ist die erwartete Verbesserung \(\mathrm{EI}(x) = (f^* - \mu)\,\Phi(z) + s\,\varphi(z)\), mit der Verteilungsfunktion \(\Phi\) und der Dichte \(\varphi\) der Standardnormalverteilung. Der erste Summand wächst, wenn der Mittelwert unter dem bisher Besten liegt (Ausnutzen), der zweite mit der Unsicherheit \(s\) (Erkunden). Gelaufen wird \(x_{n+1} = \arg\max_x \mathrm{EI}(x)\) über die noch nicht gelaufenen Einstellungen. TPE wählt zum Vergleich \(\arg\max_x l(x)/g(x)\), wobei die besten 25 % der Beobachtungen die Dichte \(l\) bilden und die übrigen \(g\) (Gauß-Kerne).

Befunde

Alle Zahlen stammen aus der README der Demo; deren Tests prüfen sie (tests/test_claims.py). Es sind Medianwerte über je 20 feste Läufe. „Regret“ ist der wahre Wert der Empfehlung minus der beste Wert des Gitters bzw. der Kandidatenmenge; kleiner ist besser. Die Auswertungen der Terminal-Scheibe sind echte Simulationen aus einer Tabelle mit 30 Wiederholungen je Einstellung und Lauflänge; die Wahrheit je Einstellung ist der Mittelwert zweier Läufe à 100 000 Lkw. Im vollen Netz sind es echte Simulationen à 15 000 Lkw aus einer Kandidatenmenge von 4 095 gerasterten Sobol-Punkten, die Empfehlung wird mit 2 × 100 000 Lkw nachbewertet.

FrageBefund
Branin ohne Rauschen: wer erreicht das Gitter-Optimum?Bei 30 Auswertungen BO und TPE: Regret 0 (das Optimum), Zufall 0,71.
Branin, Rauschen 5: ab wann lohnt BO?Bei 16 Auswertungen kaum: Regret 3,66 (Zufall), 2,91 (TPE), 3,13 (BO). Bei 30: 3,09 (Zufall), 1,56 (TPE), 0,94 (BO). Das Ersatzmodell braucht erst einige Läufe.
Branin, Rauschen 20Bei 30 Auswertungen Zufall 13,5, TPE 5,1, BO 5,2: Die Suchverfahren senken den Regret auf rund 40 %, TPE ist gleichauf mit BO.
Sechs Eingaben (Hartmann6, rauschfrei)Bei 40 Auswertungen Regret Zufall 1,45, TPE 0,56, BO 0,08; bei 60 Zufall 1,09, TPE 0,15. Hier ist der Abstand groß.
Terminal-Scheibe (204 Einstellungen)Optimum 5 Plätze, Tempo 0,7: 791 EUR/h; ein Fünftel aller Einstellungen liegt höchstens 5 % darüber, 8 % sind Überlast. Bei 16 Auswertungen liegen alle vier Verfahren im Median höchstens 4 % über dem Optimum: kein Unterschied.
Die Formel alleinSie kennt den Wert der Plätze nicht und wählt die kleinste Platzzahl (2): 7 070 EUR/h, rund 9-mal so teuer wie das Optimum (Überlast).
Formel + Faustregel (Plätze = Stapelgeräte)In der Terminal-Scheibe das Optimum selbst, ohne einen Lauf: 791 EUR/h. Im vollen Netz 771 EUR/h (Nachbewertung), besser als jedes Suchverfahren bei 40 Auswertungen.
Volles Netz, 40 AuswertungenMedian der wahren Kosten: Zufall 846, TPE 788, BO 846, BO mit log-Kosten 818 EUR/h. BO ohne log ist hier nicht besser als Zufall; TPE liegt ab 30 Auswertungen vorn.
Kann man dem Ersatzmodell glauben?Das nominale 95-%-Intervall deckt die wahren Kosten im Median zu 65 % (10 Beobachtungen) bis 86 % (30) ab; im schlechtesten Zehntel der Läufe bis 33 %. Szenario und Landschaft nennt die README nicht; laut Beschriftung der App sind es 20 feste Läufe mit zufälligen Einstellungen bei 15 000 Lkw je Lauf.
Rauschen der LäufeStreuung einer Auswertung im Median 0,3 % der Kosten (15 000 Lkw) bzw. 0,65 % (3 000 Lkw) auf stabilen Einstellungen.

Zusammen: Auf den Testfunktionen Branin und Hartmann6 liegt BO vor dem Zufall, bei Rauschen erst mit mehr Budget. Im vollen Netz am Terminal ist BO ohne log nicht besser als Zufall und TPE liegt ab 30 Auswertungen vorn; die Formel mit Faustregel ist dort besser als jedes Suchverfahren bei 40 Auswertungen. Der Gewinn liegt am Terminal im Wissen über das System, nicht in der Suche.

Grenzen

  • Gegenbeispiel, kein Beleg: Das Terminal ist ein Gegenbeispiel zu BO. Das Tal der Kosten ist breit und flach, und Wissen über das Netz (Formel plus eine Faustregel) schlägt hier jede Suche mit 40 Läufen. BO lohnt, wo nichts über die Struktur bekannt ist oder die Struktur nicht aufgeschrieben ist.
  • Die Faustregel ist die Entscheidung eines Kenners: Sie wurde nach dem Blick auf das Ergebnis der Formel als naheliegende Ergänzung gewählt. Ein Vergleich „Formel gegen Suche“ ohne sie hätte die Suche besser aussehen lassen, als sie ist; die Demo zeigt deshalb beide Formeln.
  • Eigene Fassungen: TPE ist eine einfache eigene Fassung, nicht Optuna; ein Urteil über TPE im Allgemeinen folgt daraus nicht. Die BO-Implementierung ist ebenfalls eigen (Kandidatenmenge statt stetiger Optimierung der Akquisition, drei Startpunkte der Hyperparameter-Suche): Zahlen anderer Bibliotheken können abweichen.
  • Tabelle statt Live-Simulation: Die Auswertungen der Scheibe sind eine Tabelle, aus der je Einstellung eine der 30 Wiederholungen ohne Zurücklegen gezogen wird; zieht man mehr als 30-mal dieselbe Einstellung, beginnt der Vorrat von vorn.
  • Kleine Stichprobe: 20 feste Läufe je Zelle; Unterschiede unter etwa 10 % des Regrets sind Zufall. Einzelne Läufe zeigen nur, was bei diesem Zufalls-Seed geschah.
  • Annahmen des Ersatzmodells: Die Zielfunktion soll glatt sein (Klippen und Plateaus wie die Überlast verzerren die Skala), das Rauschen gleichmäßig (das Modell lernt ein Rauschen für alle Einstellungen) und das Modell gut abgestimmt (die Unsicherheit ist nicht kalibriert, siehe die Abdeckung oben). Läufe laufen nacheinander und es gibt keine Nebenbedingung.
  • Wenige Entscheidungen: Zwei Entscheidungen in der Scheibe, sechs im Netz. Wie das mit mehr Entscheidungen, verrauschten Nebenbedingungen oder parallelen Läufen aussieht, ist nicht Teil dieser Demo.
  • Nicht enthalten: andere Akquisitionsfunktionen (UCB, Thompson, Wissensgradient, Entropie-Suche) und andere Kerne; echte Hyperband- oder Optuna-Läufe, BoTorch.

Quellen

  • Jones, D. R., Schonlau, M., & Welch, W. J. (1998): Efficient Global Optimization of Expensive Black-Box Functions. Journal of Global Optimization 13, 455–492 (erwartete Verbesserung für Gauß-Prozesse).
  • Rasmussen, C. E., & Williams, C. K. I. (2006): Gaussian Processes for Machine Learning. MIT Press (Kern, Randwahrscheinlichkeit).
  • Bergstra, J., Bardenet, R., Bengio, Y., & Kégl, B. (2011): Algorithms for Hyper-Parameter Optimization. Advances in Neural Information Processing Systems (TPE).
  • Quelltext, Messreihen und Tests der Demo: github.com/sebastian-hanisch/bayes-opt-demo.

Die genannten Arbeiten wurden für diese Seite nicht nachgeschlagen. Die Angaben stammen aus dem Expander „📐 Mathematische Formulierung“ der Demo, nicht aus der README. Die Deutung der beiden Summanden der erwarteten Verbesserung als Ausnutzen und Erkunden ist eine Lesart der Formel durch den Autor, keine Aussage der README.