Volver al inicio

CMA-ES en Optuna: optimización de hiperparámetros sin gradientes

Desglose técnico detallado del algoritmo CMA-ES en la biblioteca Optuna. Explicación de la inicialización, muestreo, adaptación de la matriz de covarianza y paso. Recomendaciones prácticas para su uso en tareas de aprendizaje automático.

Cómo CMA-ES encuentra hiperparámetros óptimos sin gradientes
Advertisement 728x90

# CMA-ES en Optuna: Desglose paso a paso de la estrategia evolutiva para la optimización de hiperparámetros

El algoritmo CMA-ES es un método de optimización sin derivadas que resuelve de manera efectiva tareas de ajuste de hiperparámetros en espacios de búsqueda complejos, multimodales o ruidosos. A diferencia de los enfoques basados en gradientes, no requiere que la función objetivo sea diferenciable y es robusto frente a mínimos locales. En este artículo, desglosaremos cómo funciona utilizando la función Rosenbrock en 2D como ejemplo para mostrar claramente cómo el algoritmo adapta su tamaño de paso y dirección de búsqueda.

Inicialización: Condiciones iniciales de búsqueda

Antes de que comience CMA-ES, debes establecer tres parámetros clave:

  • Media inicial (m) — coordenadas del punto de partida en el espacio de búsqueda. En nuestro caso — (0, -1).
  • Matriz de covarianza (C) — define la forma y orientación de la región de búsqueda. Inicialmente, es la matriz identidad, creando simetría circular alrededor del centro.
  • Paso global (σ) — escala de búsqueda. Establecido en 0.8, correspondiente a un radio de elipse de confianza de ≈1.96 para una probabilidad del 95% de que los puntos caigan dentro.

Estos parámetros forman la distribución normal inicial a partir de la cual se generan los candidatos. Importante: incluso si el punto de partida está lejos del óptimo, el algoritmo puede adaptarse gracias a sus mecanismos evolutivos.

Google AdInline article slot

Generación y evaluación de candidatos

En cada iteración, λ candidatos (15 en el ejemplo) se generan utilizando la fórmula:

x_k ~ m + σ · N(0, C)

donde N(0, C) es una distribución normal multivariante con media cero y matriz de covarianza C. Cada candidato es un conjunto de hiperparámetros que se introducen en el modelo para evaluar la función objetivo (p. ej., pérdida). Después de calcular los valores de la función, se seleccionan los μ mejores candidatos (7 en el ejemplo) para formar la base de la actualización de la distribución.

Actualización del centro de búsqueda mediante promedio ponderado

El centro de la nueva distribución se calcula como la suma ponderada de los mejores puntos:

Google AdInline article slot
m_new = Σ w_i · x_i

Los pesos w_i se calculan en una escala logarítmica:

w_i = [ln((λ+1)/2) - ln(i)] / Σ[ln((λ+1)/2) - ln(j)]

Esto asegura una contribución exponencialmente mayor de los mejores candidatos. Por ejemplo, el primer punto obtiene un peso varias veces mayor que el séptimo. Este enfoque imita la "selección natural": las soluciones exitosas tienen una influencia más fuerte en la siguiente generación.

Adaptación de la forma y escala de la búsqueda

La principal ventaja de CMA-ES es su adaptación dinámica a la topología de la función objetivo. Esto se logra mediante dos mecanismos:

Google AdInline article slot

Actualización de la matriz de covarianza

Fórmula de actualización:

C_new = (1 - c_μ) · C_old + c_μ · C_μ

donde C_μ es la matriz de covarianza construida a partir de los desplazamientos normalizados de los mejores puntos respecto al centro anterior. El parámetro c_μ (tasa de aprendizaje, p. ej., 0.9) controla el equilibrio entre datos históricos y nuevos. Si los mejores puntos se alinean a lo largo de una dirección específica (p. ej., a lo largo del "valle" de la función Rosenbrock), la matriz C deforma la región de búsqueda en una elipse elongada en esa dirección — acelerando la convergencia.

Ajuste del paso global (σ)

El paso se actualiza utilizando la fórmula:

σ_new = σ_old · exp( (c_σ / d_σ) · (||p_σ|| / E[||N(0,I)||] - 1) )

Aquí:

  • p_σ — trayectoria de evolución que acumula la dirección del movimiento del centro a lo largo de varias iteraciones.
  • E[||N(0,I)||] — longitud de referencia de un paso aleatorio (≈√n para espacio n-dimensional).
  • c_σ, d_σ — parámetros de tasa de aprendizaje y amortiguación.

Si la norma ||p_σ|| excede la referencia, indica movimiento consistente en una dirección — el paso aumenta. Si es menor, el movimiento es errático, y el paso disminuye para refinar la posición.

Ventajas y limitaciones de CMA-ES en la práctica de ML

CMA-ES es particularmente útil en estos escenarios:

  • Funciones objetivo no diferenciables, ruidosas o discontinuas.
  • Espacios de búsqueda con muchos mínimos locales.
  • Hiperparámetros con sensibilidad variable (p. ej., learning_rate vs. batch_size).

Sin embargo, tiene limitaciones:

  • La complejidad computacional crece con la dimensionalidad (O(n²) debido al almacenamiento de C).
  • Requiere más iteraciones que TPE en funciones suaves.
  • Ineficaz con presupuestos de evaluación muy pequeños (< 20).

Recomendaciones para su uso en Optuna:

  • Usa CmaEsSampler para tareas con >5 hiperparámetros o paisajes complejos.
  • Establece restart_strategy='ipop' para reinicios automáticos con σ aumentado cuando se atasque.
  • Para parámetros discretos, usa CategoricalCmaEsSampler.
  • Siempre compara con TPE y RandomSearch en un conjunto de datos de validación.

Puntos clave

  • CMA-ES no usa gradientes — funciona con cualquier caja negra.
  • La adaptación de la matriz de covarianza permite un progreso eficiente a lo largo de los "valles" en la función objetivo.
  • El tamaño de paso dinámico previene la convergencia prematura y acelera el refinamiento final.
  • Brilla con conteos de iteraciones medianos a grandes (>50) y espacios de alta dimensión.
  • En Optuna, se habilita simplemente cambiando el muestreador — no se necesitan cambios en el código del modelo.

El algoritmo es especialmente valioso para tareas donde los métodos estándar (p. ej., grid search o optimización bayesiana) fallan: métricas inestables, interacciones complejas de parámetros, falta de suavidad. Su naturaleza evolutiva lo convierte en una herramienta robusta y versátil para investigadores que abordan problemas de ML reales y "desordenados".

— Editorial Team

Advertisement 728x90

Leer después