# Bayes’sche Optimierung

Die Bayes’sche Optimierung (BO, engl. Bayesian Optimization) ist eine sequenzielle Optimierungsmethode für die Optimierung von Black-Box-Funktionen deren Auswertung teuer ist, d. h. in der Regel Minuten oder Stunden dauert. Dies tritt beispielsweise auf, wenn die zu optimierende Funktion nicht geschlossen darstellbar ist, sondern etwa das Ergebnis einer Simulation ausgibt, die Ergebnisse des Trainings eines Machine-Learning-Modells darstellt (s. Hyperparameteroptimierung) oder das Ergebnis eines experimentellen Versuchs zurückgibt (s. Design of Experiment).
Die Grundidee Bayes’sche Optimierung besteht aus dem Prinzip Exploitation and Exploration. Dies bedeutet, dass beim Vorschlagen neuer Punkte ein Trade-off zwischen bereits bekannten guten Punkten (Exploitation) und neuen hoffentlich noch besseren Punkten (Exploration) gefunden wird, welcher durch die gewählte Akquisitionsfunktion (acquisition function) beeinflusst wird. Sucht man in der Bayes’schen Optimierung einen Tradeoff für die Maximierung eines Erwartungswertes und die Minimierung der Streuung kann dies als Mehrzieloptimierung betrachtet werden.

## Geschichte

Der Begriff wird im Allgemeinen Harold J. Kushner und Jonas Mockus zugeschrieben, welche in den 1960er und 1970er Jahren begannen, dazu zu publizieren.

## Ausgangslage

Die Bayes'sche Optimierung wird typischerweise bei Optimierungsproblemen der Form max$_{x∈A}$f(x){\textstyle \max _{x\in A}f(x)} eingesetzt, wobei A{\textstyle A} die Menge aller zulässigen Punkte x{\textstyle x} ist, welche auch zulässige Menge genannt wird. Die Bayes'sche Optimierung ist besonders vorteilhaft für Probleme, bei denen die Berechnung eines Funktionswerts f(x){\textstyle f(x)} der Zielfunktion $f$ mit großem Aufwand verbunden ist. Die Zielfunktion f{\textstyle f} ist in der Regel stetig und ist ansonsten von unbekannter Struktur, die als „Black Box“ bezeichnet wird. Bei ihrer Auswertung wird nur Funktionswert f(x){\textstyle f(x)} beobachtet und die Ableitungen nicht berechnet.

## Strategie

Da die Zielfunktion $f$ unbekannt ist, besteht die Bayes'sche Strategie darin, sie als Zufallsfunktion zu behandeln und ihr einen Prior zuzuweisen. Der Prior gibt die Annahmen über das Verhalten der Funktion wieder. Nach dem Sammeln einer Stichprobe bestehend aus Punkten $x_{i}$ und zugehörigen „wahren“ Funktionswerten $f(x_{i})$, wird der Prior aktualisiert, um die Posterior-Verteilung über die Zielfunktion zu bilden. Die Posterior-Verteilung wird wiederum verwendet, um eine Akquisitionsfunktion (oft auch als Infill-Sampling-Kriterium bezeichnet) zu konstruieren, die optimiert wird, um den nächsten Abfragepunkt zu bestimmen.
In der Optimierung sollen neue Punkte $x_{t}^{*}$ vorgeschlagen werden, die $f$ maximieren/minimieren.

### Surrogatmodell

Die Bayes'sche Optimierung beruht darauf, dass ein Surrogatmodell ${\hat {f}}$ an der Stelle $x\in A$ leichter auszuwerten ist als die echte Black-Box Funktion $f$. Typischerweise werden als Surrogatmodelle Gauß-Prozesse, Parzen-Tree Estimator, Random Forests oder andere bootstrap aggregated models verwendet. Gemeinsam haben diese Schätzmodelle, dass sie eine Varianzschätzung (und damit eine Schätzung der Verteilung) erlauben. Diese Varianzsschätzung wird anschließend in der Akquisitionsfunktion verwendet, um nicht nur das (mittlere, erwartete) Optimum zu finden, sondern zusätzlich einen Erwartungswert-Varianz-Trade-off einzugehen: Punkte $x$ mit hoher Varianz in der Vorhersage des Surrogatmodells könnten beispielsweise einen deutlich höheren echten Wert $f$ aufweisen als das Modell ${\hat {f}}$ bisher modelliert hat. Punkte mit hoher Chance auf eine mögliche Verbesserung (gemessen durch die Akquisitionsfunktion) werden als neue Punkte zur Auswertung von $f$ vorgeschlagen.

### Vorschlagen neuer Punkte

Jedes Mal, wenn eine Auswertung erfolgt, wird das neue Wertepaar $(x,f(x))$ in das Trainingsset des Surrogatmodells aufgenommen. Es ergeben sich dann neue Punkte mit hoher Chance auf eine mögliche Verbesserung und der Vorgang wird bis zur Konvergenz wiederholt, wobei keine Konvergenz im mathematischen Sinne erwartet wird, sondern die Methode beispielsweise nach einer bestimmten Anzahl von Iterationen aus Budget-Gründen endet oder ein vorzeitiger Abbruch vorgenommen wird, falls sich in den letzten Iterationen keine Verbesserung mehr feststellen ließ.
Mit Kenntnis der durch das Surrogatmodell geschätzten bedingten Wahrscheinlichkeitsdichte ${\hat {p}}(f|x_{i})$ kann die Akquisitionsfunktion iterativ optimiert werden. Der nächste zu überprüfenden Punkt ist $x_{t}={\text{argmax}}_{x}{\text{Acquisition function}}(x)$ (wenn die Akquisitionsfunktion maximiert werden soll). Die argmax Funktion kann näherungsweise für eine endliche Menge an zufälligen Punkten $\{x_{1},\dots x_{n}\}$ausgewertet werden. Die Näherung an argmax ist dann der x-Wert, welcher den größten Wert der Akquisitionsfunktion hat.

## Pseudocode

Die folgende algorithmische Grundidee der Bayes'schen Optimierung wird wie folgt in Anlehnung an die Literatur dargestellt.

## Exotische Bayes'sche Optimierung

Probleme, die von der oben gemachten Annahme der leichten Auswertung abweichen, werden als exotische Bayes'sche Optimierungsprobleme bezeichnet. Optimierungsprobleme können exotisch werden, wenn bekannt ist, dass es Rauschen gibt, die Auswertungen parallel durchgeführt werden, die Qualität der Auswertungen von einem Kompromiss zwischen Schwierigkeit und Genauigkeit abhängt, zufällige Umgebungsbedingungen vorhanden sind oder die Auswertung Ableitungen beinhaltet.

## Beispiele für Akquisitionsfunktionen

Akquisitionsfunktionen stellen einen Kompromiss (Trade-off) zwischen Erkundung und Ausnutzung dar, um die Anzahl der Funktionsabfragen zu minimieren. Die Bayes'sche Optimierung eignet sich daher gut für Funktionen, deren Auswertung teuer ist.
Beispiele für Akquisitionsfunktionen (engl. acquisition function) sind:
* obere ($\kappa >0$), bzw. untere ($\kappa <0$) Konfidenzgrenzen $CB(x)={\hat {\mu }}(x)+\kappa {\hat {\sigma }}(x)$,
* die Verbesserungswahrscheinlichkeit $p(f(x)>f(x^{\dagger })+\kappa )$,
* die erwartete Verbesserung,
* die erwarteten Verluste nach Bayes,
* Thompson-Sampling und Mischformen davon.

### Erwartete Verbesserung

Die erwartete Verbesserung (expected improvement) ist $EI(x)=E[f|x]-f(x^{\dagger })$. Hierbei ist $f(x^{\dagger })$ der bisher tatsächlich beobachtete Maximalwert der Blackbox-Funktion $f$. Der bedingte Erwartungswert berechnet sich durch $E[f|x]=\int _{\mathbb {R} }fp(f|x)df$.
In der Literatur gibt es auch andere nicht äquivalente Definitionen der erwarteten Verbesserung:
    $EI(x)=\int _{\mathbb {R} }\max(f-f(x^{\dagger }),0)p(f|x)df$.
Für einen Gauss-Prozess folgt aus der Definition:
    $EI(x)=\left({\hat {\mu }}(x)-f(x^{\dagger })\right)\Phi \left({\frac {{\hat {\mu }}(x)-f(x^{\dagger })}{{\hat {\sigma }}(x)}}\right)+{\hat {\sigma }}(x)\phi \left({\frac {{\hat {\mu }}(x)-f(x^{\dagger })}{{\hat {\sigma }}(x)}}\right),$
wobei $\Phi$ die Verteilungsfunktion der Normalverteilung ist und $\phi$ die Wahrscheinlichkeitsdichtefunktion der Normalverteilung ist. Die erwartete Verbesserung ermöglicht somit den Vorschlag von Punkten $x$ für die ${\hat {\mu }}(x)<f(x^{\dagger })$, bei denen aber ${\hat {\sigma }}(x)$ groß ist. Somit ermöglicht diese Akquisitionsfunktion die Exploration.
Die erwartete Verbesserung wählt im Vergleich zur Akquisionsfunktion mit Konfidenzgrenzen einen gewissen Explorations-Exploitation Trade-off ohne weiteren expliziten Hyperparameter $\kappa$ (welcher bei LCB or UCB als Akquisitionsfunktion vorliegt).

## Lösungsmethoden

Die Maximierung der Akquisitionsfunktion erfolgt durch Verfahren der mathematischen Optimierung (Newtonverfahren, Quasi-Newton-Methoden wie dem Broyden-Fletcher-Goldfarb-Shanno-Algorithmus …) oder durch Random Sampling, das heißt dem Auswerten der Akquisitionsfunktion an zufällig gezogenen Punkten der zulässigen Menge $A$.

## Anwendungsgebiete

Der Ansatz wurde zur Lösung einer Vielzahl von Problemen angewandt, darunter Hyperparameteroptimierung, Rangordnungslernen, Computergrafik und visuelles Design, Robotik, Sensornetzwerke, automatische Algorithmenkonfiguration, automatische Toolboxen für maschinelles Lernen, Reinforcement Learning, Planung, visuelle Aufmerksamkeit, Architekturkonfiguration beim Deep Learning, statische Programmanalyse, experimentelle Teilchenphysik, Chemie, Materialdesign und Arzneimittelentwicklung.