Zpět na domů

CMA-ES v Optuna: optimalizace hyperparametrů bez gradientů

Podrobný technický rozbor fungování algoritmu CMA-ES v knihovně Optuna. Vysvětlení inicializace, vzorkování, adaptace kovariační matice a kroku. Praktická doporučení pro použití v úlohách strojového učení.

Jak CMA-ES nachází optimální hyperparametry bez gradientů
Advertisement 728x90

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.

Google AdInline article slot

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ů:

Google AdInline article slot
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:

Google AdInline article slot

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 CmaEsSampler pro ú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

Advertisement 728x90

Číst dál