# Hyperparameteroptimierung

Im Bereich des maschinellen Lernens bezeichnet Hyperparameteroptimierung die Suche nach optimalen Hyperparametern. Ein Hyperparameter ist ein Parameter, der zur Steuerung des Trainingsalgorithmus verwendet wird und dessen Wert im Gegensatz zu anderen Parametern vor dem eigentlichen Training des Modells festgelegt werden muss.

## Ansätze
### Rastersuche

Die Rastersuche oder Grid Search ist der traditionelle Weg, nach optimalen Hyperparametern zu suchen. Dabei wird eine erschöpfende Suche auf einer händisch festgelegten Untermenge des Hyperparameterraumes des Lernalgorithmus durchgeführt. Eine Rastersuche muss durch eine Performance-Metrik geführt werden, die typischerweise durch Kreuzvalidierung auf Trainingsdaten oder nicht beim Training betrachteten Validierungsdaten berechnet wird.
Für reelle oder unbegrenzte Räume einzelner Hyperparameter muss vor der Rastersuche eine Diskretisierung und Beschränkung auf einen Teil des Raumes festgelegt werden.
Ein Beispiel dafür ist die Hyperparameteroptimierung eines SVM-Klassifikators mit einem RBF-Kernel. Dieser besitzt zwei Hyperparameter, die für eine gute Performance auf ungesehenen Daten justiert werden müssen: eine Regularisierungskonstante C und ein Kernel-Hyperparameter γ. Beide Parameter sind kontinuierlich; daher muss zur Durchführung der Rastersuche eine endliche Menge sinnvoller Werte für jeden Hyperparameter gewählt werden, zum Beispiel:
    $C\in \{10,100,1000\}$
    $\gamma \in \{0.1,0.2,0.5,1.0\}$
Bei der Rastersuche wird dann eine Support Vector Machine für jedes Paar (C, γ) im kartesischen Produkt dieser beiden Mengen trainiert und auf Validierungsdaten bewertet. Abschließend wird von der Rastersuche die Kombination zurückgegeben, die gemäß der gewählten Metrik am besten abschneidet.
Die Rastersuche leidet unter dem Fluch der Dimensionalität. Die einzelnen Versuche können allerdings parallel ausgeführt werden, da keine Abhängigkeit untereinander besteht.

### Zufallssuche

Bei der Zufallssuche oder Random Search wird anstatt des erschöpfenden Ausprobierens aller Kombinationen eine zufällige Auswahl von Werten innerhalb des vorgegebenen Hyperparameterraumes vorgenommen. Im Gegensatz zur Rastersuche ist keine Diskretisierung des Raumes erforderlich. Die Zufallssuche kann die Rastersuche in Geschwindigkeit und Performance übertreffen, besonders wenn nur eine kleine Anzahl von Hyperparametern die Qualität des Lernalgorithmus beeinflusst. Der Grund hierfür ist, dass bei der Rastersuche für jeden Parameter nur wenige Werte ausprobiert werden (dafür aber mehrfach), während zufällig ausgewählte Werte im Suchraum wesentlich besser verteilt sind.
Die Zufallssuche kann ebenfalls parallel ausgeführt werden und bietet zu jedem Zeitpunkt ein vollständiges Ergebnis über den Suchraum, ohne dass Bereiche vernachlässigt wurden. Prozesse können daher zu jeder Zeit hinzugefügt oder abgeschaltet werden.

### Bayessche Optimierung

Bayes’sche Optimierung ist eine globale Optimierungsmethode für verrauschte Black-Box-Funktionen, die zur Hyperparameteroptimierung ein probabilistisches Surrogatmodell der Funktion zwischen Hyperparameterwerten und der auszuwertenden Metrik auf Validierungsdaten aufbaut. Dabei werden iterativ Hyperparameterkonfigurationen ausprobiert, die nach dem aktuellen Modell vielversprechend erscheinen, und anschließend das Modell durch die neuen Erkenntnisse angepasst. Bayessche Optimierung versucht so möglichst viele Beobachtungen über die Funktion zu sammeln, insbesondere über die Lage des Optimums. Sie berücksichtigt gleichzeitig die Erkundung von Bereichen, in denen wenig Wissen über die zu erwartende Performance vorliegt, (Exploration) und die Ausnutzung von Wissen über Bereiche, in denen das Optimum erwartet wird (Exploitation), siehe Exploration-Exploitation Tradeoff. In der Praxis hat sich gezeigt, dass mit bayesscher Optimierung aufgrund des gesammelten Wissens bessere Ergebnisse als bei der Raster- oder Zufallssuche in weniger Versuchen erzielt werden können.

### Gradientenbasierte Optimierung

Für manche Lernalgorithmen ist es möglich, den Gradienten in Bezug auf die Hyperparameter zu berechnen und sie durch das Verfahren des steilsten Abstiegs zu optimieren. Die erste Anwendung solcher Techniken fand für neuronale Netze statt. Später wurden sie auch für andere Modelle wie Support Vector Machines und logistische Regression eingesetzt.
Ein anderer Ansatz, Gradienten in Bezug auf Hyperparameter zu erhalten, besteht darin, die Schritte eines iterativen Optimierungsalgorithmus automatisch zu differenzieren.

### Evolutionäre Optimierung

Bei der evolutionären Optimierung werden evolutionäre Algorithmen eingesetzt, um nach dem globalen Optimum einer verrauschten Black-Box-Funktion zu suchen. Die evolutionäre Hyperparameteroptimierung folgt dabei einem von der Evolution inspirierten Prozess:
* Erstelle eine initiale Population zufälliger Lösungen (zufällig gewählte Hyperparameterwerte)
* Werte die Hyperparameterkonfigurationen aus und bestimme die Fitness (beispielsweise die mittlere Performance in zehnfacher Kreuzvalidierung)
* Ordne die Hyperparameterkonfigurationen nach ihrer Fitness
* Ersetze die am schlechtesten abschneidenden Konfigurationen durch neue, die durch Rekombination und Mutation generiert werden
* Wiederhole die Schritte 2 bis 4, bis eine zufriedenstellende Performance erreicht wird oder sich die Performance nicht weiter verbessert
Evolutionäre Optimierung wurde zur Hyperparameteroptimierung für statistische Lernalgorithmen, automatisiertes maschinelles Lernen und die Suche nach Architekturen tiefer neuronaler Netze eingesetzt. Ein Beispiel für einen evolutionären Optimierungsalgorithmus ist CMA-ES.

### Early-Stopping basierte Ansätze

Wenn Ressourcen für die Untersuchung des Hyperparameterraumes knapp sind, und während der Hyperparametersuche so alloziert werden sollen, dass keine Ressourcen für schlechte Hyperparameter verschwendet werden, kann mit Early Stopping gearbeitet werden. Algorithmen, die Early Stopping benutzen, sind z. B.:
* Sukzessive Halbierung (successive halving)
* Hyperband (Optimierung)