CMA-ES v Optuna: podrobný krok za krokem rozbor evoluční strategie optimalizace hyperparametrů
Algoritmus CMA-ES je metoda optimalizace bez derivací, která efektivně řeší úlohy výběru hyperparametrů v složitých, multimodálních nebo zašuměných prostorech. Na rozdíl od gradientových přístupů nevyžaduje diferencovatelnost cílové funkce a je odolný vůči lokálním minimům. V tomto článku rozebereme jeho fungování na příkladu dvourozměrné funkce Rosenbrockovy, abychom názorně ukázali, jak algoritmus adaptuje krok a směr hledání.
Inicializace: počáteční podmínky hledání
Před zahájením práce CMA-ES je nutné nastavit tři klíčové parametry:
- Počáteční střed (m) — souřadnice výchozího bodu v prostoru hledání. V našem případě — (0, -1).
- Kovariační matice (C) — určuje tvar a orientaci oblasti hledání. Původně je jednotková, což vytváří kruhovou symetrii kolem centra.
- Globální krok (σ) — měřítko hledání. Nastaven jako 0.8, což odpovídá poloměru důvěrového elipsy ≈1.96 pro 95% pravděpodobnost dopadu bodů.
Tyto parametry tvoří počáteční normální rozdělení, ze kterého budou generováni kandidáti. Důležité: i když je počáteční bod daleko od optima, algoritmus se dokáže adaptovat díky evolučním mechanismům.
Generování a vyhodnocení kandidátů
Na každé iteraci se generuje λ kandidátů (v příkladu — 15) podle vzorce:
x_k ~ m + σ · N(0, C)
kde N(0, C) je vícerozměrné normální rozdělení s nulovým středem a kovariační maticí C. Každý kandidát představuje sadu hyperparametrů, která se podává do modelu pro vyhodnocení cílové funkce (např. loss). Po výpočtu hodnot funkce se vybere μ nejlepších kandidátů (v příkladu — 7), kteří tvoří základ pro aktualizaci rozdělení.
Aktualizace středu hledání pomocí váženého průměru
Střed nového rozdělení se vypočítá jako vážená součet nejlepších bodů:
m_new = Σ w_i · x_i
Váhy w_i se počítají na logaritmické škále:
w_i = [ln((λ+1)/2) - ln(i)] / Σ[ln((λ+1)/2) - ln(j)]
To zajišťuje exponenciálně větší příspěvek nejlepším kandidátům. Například první bod dostane váhu několikrát vyšší než sedmý. Tento přístup napodobuje „přirozený výběr“: úspěšná řešení mají silnější vliv na další generaci.
Adaptace tvaru a měřítka hledání
Klíčová výhoda CMA-ES spočívá v dynamické adaptaci na topologii cílové funkce. To se dosahuje dvěma mechanismy:
Aktualizace kovariační matice
Vzorec aktualizace:
C_new = (1 - c_μ) · C_old + c_μ · C_μ
kde C_μ je kovariační matice sestavená z normalizovaných posunů nejlepších bodů vzhledem k starému středu. Parametr c_μ (learning rate, např. 0.9) řídí rovnováhu mezi historií a novými daty. Pokud se nejlepší body seřadí podle určitého směru (např. podél „rokle“ funkce Rosenbrockovy), matice C deformuje oblast hledání do elipsy protáhnuté tímto směrem — což urychluje konvergenci.
Korekce globálního kroku (σ)
Krok se aktualizuje podle vzorce:
σ_new = σ_old · exp( (c_σ / d_σ) · (||p_σ|| / E[||N(0,I)||] - 1) )
Zde:
p_σ— evoluční cesta, která akumuluje směr pohybu středu přes několik iterací.E[||N(0,I)||]— referenční délka náhodného kroku (≈√n pro n-rozměrný prostor).c_σ,d_σ— parametry rychlosti učení a tlumení.
Pokud norma ||p_σ|| překročí referenci, znamená to souvislý pohyb jedním směrem — krok se zvětší. Pokud je nižší — pohyb je chaotický, krok se zmenší pro přesnější lokalizaci.
Výhody a omezení CMA-ES v praxi ML
CMA-ES je obzvláště užitečný v následujících scénářích:
- Cílová funkce není diferencovatelná, je zašuměná nebo má přerušení.
- Prostor hledání obsahuje mnoho lokálních minim.
- Hyperparametry mají různou citlivost (např. learning_rate vs. batch_size).
Nicméně existují i omezení:
- Výpočetní složitost roste s dimenzí prostoru (O(n²) kvůli ukládání C).
- Vyžaduje více iterací než TPE na hladkých funkcích.
- Neefektivní při velmi malém počtu vyhodnocení (< 20).
Doporučení pro použití v Optuna:
- Začněte s
CmaEsSamplerpro úlohy s >5 hyperparametry nebo složitým krajinnem. - Nastavte
restart_strategy='ipop'pro automatický restart s zvětšeným σ při zaseknutí. - Pro diskrétní parametry použijte
CategoricalCmaEsSampler. - Vždy porovnejte s TPE a RandomSearch na kontrolním datovém souboru.
Co je důležité
- CMA-ES nepoužívá gradienty — funguje s jakoukoli černou skříňkou.
- Adaptace kovariační matice umožňuje efektivní pohyb podél „roklí“ cílové funkce.
- Dynamický krok zabraňuje předčasné konvergenci a urychluje finální doladění.
- Nejlépe se projevuje při středním a velkém počtu iterací (>50) a ve vysokodimenzionálních prostorech.
- V Optuna se snadno zapojí nahrazením sampleru — nevyžaduje změnu kódu modelu.
Algoritmus je obzvláště cenný v úlohách, kde standardní metody (např. grid search nebo Bayesian optimization) narazí na problémy: nestabilita metrik, složité interakce parametrů, absence hladkosti. Jeho evoluční povaha ho činí odolným a univerzálním nástrojem pro výzkumníky pracující s reálnými, „špinavými“ úlohami ML.
— Editorial Team
Zatím žádné komentáře.