# CMA-ES in Optuna: Schritt-für-Schritt-Analyse der Evolutionsstrategie zur Hyperparameter-Optimierung
Der CMA-ES-Algorithmus ist eine derivativfreie Optimierungsmethode, die Hyperparameter-Tuning-Aufgaben in komplexen, multimodalen oder verrauschten Suchräumen effektiv löst. Im Gegensatz zu gradientenbasierten Ansätzen erfordert sie keine differenzierbare Zielfunktion und ist robust gegenüber lokalen Minima. In diesem Artikel nehmen wir ihn am Beispiel der 2D-Rosenbrock-Funktion auseinander, um klar zu zeigen, wie der Algorithmus seine Schrittweite und Suchrichtung anpasst.
Initialisierung: Anfängliche Suchbedingungen
Vor dem Start von CMA-ES müssen drei Schlüsseldarameter gesetzt werden:
- Initialer Mittelwert (m) — Koordinaten des Startpunkts im Suchraum. In unserem Fall — (0, -1).
- Kovarianzmatrix (C) — definiert die Form und Orientierung des Suchgebiets. Anfangs ist es die Einheitsmatrix, die eine kreisförmige Symmetrie um das Zentrum erzeugt.
- Globaler Schritt (σ) — Suchskala. Auf 0,8 gesetzt, was einem Konfidenzellipsen-Radius von ≈1,96 für 95 % Wahrscheinlichkeit entspricht, dass Punkte darin liegen.
Diese Parameter bilden die anfängliche Normalverteilung, aus der Kandidaten generiert werden. Wichtig: Selbst wenn der Startpunkt weit vom Optimum entfernt ist, kann sich der Algorithmus dank seiner evolutionären Mechanismen anpassen.
Generierung und Bewertung von Kandidaten
In jeder Iteration werden λ Kandidaten (15 im Beispiel) mit der Formel generiert:
x_k ~ m + σ · N(0, C)
wobei N(0, C) eine mehrdimensionale Normalverteilung mit Mittelwert null und Kovarianzmatrix C ist. Jeder Kandidat ist eine Menge von Hyperparametern, die in das Modell eingespeist werden, um die Zielfunktion (z. B. Loss) zu bewerten. Nach Berechnung der Funktionswerte werden die μ besten Kandidaten (7 im Beispiel) ausgewählt, um die Basis für die Aktualisierung der Verteilung zu bilden.
Aktualisierung des Suchzentrums über gewichteten Mittelwert
Das Zentrum der neuen Verteilung wird als gewichtete Summe der besten Punkte berechnet:
m_new = Σ w_i · x_i
Gewichte w_i werden auf logarithmischer Skala berechnet:
w_i = [ln((λ+1)/2) - ln(i)] / Σ[ln((λ+1)/2) - ln(j)]
Das gewährleistet einen exponentiell größeren Beitrag der besten Kandidaten. Zum Beispiel erhält der erste Punkt ein Gewicht, das mehrmals höher ist als das des siebten. Dieser Ansatz imitiert die „natürliche Selektion“: Erfolgreiche Lösungen haben einen stärkeren Einfluss auf die nächste Generation.
Anpassung der Form und Skala der Suche
Der entscheidende Vorteil von CMA-ES ist seine dynamische Anpassung an die Topologie der Zielfunktion. Dies wird durch zwei Mechanismen erreicht:
Aktualisierung der Kovarianzmatrix
Aktualisierungsformel:
C_new = (1 - c_μ) · C_old + c_μ · C_μ
wobei C_μ die Kovarianzmatrix ist, die aus den normierten Abständen der besten Punkte relativ zum alten Zentrum konstruiert wird. Der Parameter c_μ (Lernrate, z. B. 0,9) steuert das Gleichgewicht zwischen historischen und neuen Daten. Wenn die besten Punkte entlang einer bestimmten Richtung ausgerichtet sind (z. B. entlang des „Tals“ der Rosenbrock-Funktion), verformt die C-Matrix das Suchgebiet zu einer in diese Richtung gestreckten Ellipse – was die Konvergenz beschleunigt.
Anpassung des globalen Schritts (σ)
Der Schritt wird mit der Formel aktualisiert:
σ_new = σ_old · exp( (c_σ / d_σ) · (||p_σ|| / E[||N(0,I)||] - 1) )
Hier:
p_σ— Evolutionspfad, der die Richtung der Bewegung des Zentrums über mehrere Iterationen akkumuliert.E[||N(0,I)||]— Referenzlänge eines Zufallsschritts (≈√n für n-dimensionalen Raum).c_σ,d_σ— Lernrate- und Dämpfungsparameter.
Wenn die Norm ||p_σ|| die Referenz überschreitet, deutet das auf eine konsistente Bewegung in eine Richtung hin – der Schritt wird vergrößert. Wenn sie niedriger ist, ist die Bewegung unregelmäßig, und der Schritt wird verkleinert, um die Position zu verfeinern.
Vorteile und Einschränkungen von CMA-ES in der ML-Praxis
CMA-ES ist besonders nützlich in diesen Szenarien:
- Nichtdifferenzierbare, verrauschte oder diskontinuierliche Zielfunktionen.
- Suchräume mit vielen lokalen Minima.
- Hyperparameter mit unterschiedlicher Sensitivität (z. B. learning_rate vs. batch_size).
Allerdings hat es Einschränkungen:
- Rechenkomplexität wächst mit der Dimensionalität (O(n²) aufgrund der Speicherung von C).
- Erfordert mehr Iterationen als TPE bei glatten Funktionen.
- Unwirksam bei sehr kleinen Evaluationsbudgets (< 20).
Empfehlungen für den Einsatz in Optuna:
- Verwenden Sie
CmaEsSamplerfür Aufgaben mit >5 Hyperparametern oder komplexen Landschaften. - Setzen Sie
restart_strategy='ipop'für automatische Neustarts mit erhöhtem σ bei Stockungen. - Für diskrete Parameter verwenden Sie
CategoricalCmaEsSampler. - Vergleichen Sie immer mit TPE und RandomSearch auf einem Validierungsdatensatz.
Wichtige Punkte
- CMA-ES verwendet keine Gradienten – funktioniert mit jeder Black Box.
- Die Anpassung der Kovarianzmatrix ermöglicht effizienten Fortschritt entlang der „Täler“ in der Zielfunktion.
- Dynamische Schrittweite verhindert vorzeitige Konvergenz und beschleunigt die finale Verfeinerung.
- Glänzt bei mittleren bis großen Iterationszahlen (>50) und hochdimensionalen Räumen.
- In Optuna wird es durch einfaches Wechseln des Samplers aktiviert – keine Änderungen am Modellcode nötig.
Der Algorithmus ist besonders wertvoll für Aufgaben, bei denen Standardmethoden (z. B. Grid Search oder bayessche Optimierung) scheitern: instabile Metriken, komplexe Parameterinteraktionen, Fehlen von Glattheit. Seine evolutionäre Natur macht ihn zu einem robusten, vielseitigen Werkzeug für Forscher, die reale, „unordentliche“ ML-Probleme angehen.
— Editorial Team
Noch keine Kommentare.