HyperparameteroptimierungIm 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ätzeRastersucheDie 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[1] oder nicht beim Training betrachteten Validierungsdaten berechnet wird.[2] 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: 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.[3] ZufallssucheBei 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.[3] 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 OptimierungBayes’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.[4][5][6][7] Gradientenbasierte OptimierungFü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.[8] Später wurden sie auch für andere Modelle wie Support Vector Machines[9] und logistische Regression[10] eingesetzt. Ein anderer Ansatz, Gradienten in Bezug auf Hyperparameter zu erhalten, besteht darin, die Schritte eines iterativen Optimierungsalgorithmus automatisch zu differenzieren.[11][12] Evolutionäre OptimierungBei der evolutionären Optimierung werden evolutionäre Algorithmen eingesetzt, um nach dem globalen Optimum einer verrauschten Black-Box-Funktion zu suchen.[5] Die evolutionäre Hyperparameteroptimierung folgt dabei einem von der Evolution inspirierten Prozess:
Evolutionäre Optimierung wurde zur Hyperparameteroptimierung für statistische Lernalgorithmen,[5] automatisiertes maschinelles Lernen und die Suche nach Architekturen tiefer neuronaler Netze eingesetzt.[13][14] Ein Beispiel für einen evolutionären Optimierungsalgorithmus ist CMA-ES. Early-Stopping basierte AnsätzeWenn 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.:
Einzelnachweise
|