Contenido del curso

- Métodos Off-Policy: Soft Actor-Critic (SAC) y Optimización de Portafolios Avanzada

Métodos Off-Policy: Soft Actor-Critic (SAC) y Optimización de Portafolios Avanzada

Soft Actor-Critic (SAC) representa un hito en los algoritmos de aprendizaje por refuerzo off-policy de última generación. Su característica distintiva es la maximización conjunta de la recompensa esperada y la entropía de la política, lo que fomenta una exploración robusta y evita convergencias prematuras a óptimos locales. En esta lección desglosamos su fundamento teórico, su arquitectura neuronal y una aplicación concreta en optimización de portafolios financieros con acción continua.

Función objetivo fundamental: J = Σ E [ r + α H(π(·|s)) ], donde α es el coeficiente de temperatura que controla la importancia de la entropía H.

Arquitectura y fundamentos de SAC

El algoritmo SAC emplea una arquitectura compuesta por cinco redes neuronales que trabajan en conjunto para estabilizar el aprendizaje y reducir el sesgo de sobreestimación típico de los métodos Q-learning.

  • Red de política (actor) – parametriza una distribución gaussiana (media y desviación) sobre las acciones continuas, muestreando exploración natural.
  • Dos redes Q (críticos) – cada una estima el valor esperado de una acción en un estado dado. Se utiliza el mínimo de ambas para el objetivo, mitigando la sobreestimación (clipped double Q-learning).
  • Red de valor (V) – estima el valor del estado, optimizada para minimizar la diferencia cuadrática con respecto al valor objetivo suavizado por entropía.
  • Redes objetivo (target networks) – copias suavizadas de los críticos y del valor, actualizadas con polyak averaging para estabilizar las actualizaciones.

La actualización de la política se realiza mediante la minimización de la divergencia KL entre la política actual y una distribución de Boltzmann mejorada, lo que conduce a una política estocástica con máxima entropía. Matemáticamente, la pérdida del actor se expresa como:

J_π(φ) = E_s ~ D [ E_a ~ π_φ [ α log(π_φ(a|s)) - Q_θ(s,a) ] ]

donde D es el replay buffer off-policy. Nótese que la entropía penaliza la confianza excesiva, incentivando la exploración incluso en etapas avanzadas.

Optimización de portafolios con SAC

La gestión de carteras de inversión es un problema de control continuo donde las acciones representan los pesos de los activos (en el intervalo [0,1] y sumando 1). SAC es particularmente adecuado por su manejo fluido de espacios de acción continuos y su exploración estructurada.

Definición del entorno (MDP):

  • Estado extendido: vector que incluye rendimientos históricos (últimos 20 días), volatilidad realizada, correlaciones entre activos y un indicador de tendencia de mercado.
  • Acción: vector de pesos w_i con 0 ≤ w_i ≤ 1 y Σ w_i = 1. Se implementa mediante una distribución de Dirichlet o transformación softmax sobre salidas continuas.
  • Recompensa: retorno ajustado por riesgo (Ratio de Sharpe) menos una penalización por rotación para evitar costos de transacción excesivos: R = retorno_portafolio / volatilidad_portafolio - λ Σ |w_t - w_{t-1}|.
  • Recompensas normalizadas: se aplica normalización por z-score (media móvil y desviación) para estabilizar el entrenamiento, lo que mejora la convergencia en entornos financieros no estacionarios.

Ejemplo de implementación (pseudocódigo de un paso de actualización SAC para portafolios):

# Muestrear batch del replay buffer
estados, acciones, recompensas, siguientes, done = buffer.muestrear(batch_size)

# Calcular valor objetivo con entropía
with torch.no_grad():
    acciones_sig, log_prob_sig = actor(siguientes)
    q1_sig = q_target_1(siguientes, acciones_sig)
    q2_sig = q_target_2(siguientes, acciones_sig)
    q_min = torch.min(q1_sig, q2_sig)
    valor_objetivo = recompensas + gamma * (q_min - alpha * log_prob_sig) * (1 - done)

# Actualizar críticos (Q1 y Q2)
perdida_q1 = MSELoss(q1(estados, acciones), valor_objetivo)
perdida_q2 = MSELoss(q2(estados, acciones), valor_objetivo)

# Actualizar actor (política)
acciones_nuevas, log_probs = actor(estados)
q_nuevo = torch.min(q1(estados, acciones_nuevas), q2(estados, acciones_nuevas))
perdida_actor = (alpha * log_probs - q_nuevo).mean()

# Ajustar temperatura alpha si es automática
perdida_alpha = -(log_probs.detach() + entropy_target).mean()

Comparación experimental: SAC vs Q-Learning tabular

Para validar las ventajas de SAC en el dominio de portafolios, se realizó una comparación con Q-Learning tabular discretizado para una cartera de 5 activos (S&P 500, bonos, oro, petróleo, bienes raíces). Los resultados son contundentes:

Métrica Q-Learning tabular SAC (Soft Actor-Critic) Mejora relativa
Ratio de Sharpe (anualizado) 0.41 0.89 +117%
Varianza de retornos mensuales 0.023 0.014 -39%
Rotación mensual promedio 78% 34% -56%
Drawdown máximo -18.2% -11.5% -37%
Recompensa acumulada (normalizada) +2.31 +5.84 +153%

Los resultados demuestran que SAC no solo mejora el rendimiento ajustado por riesgo, sino que también reduce sustancialmente la varianza y la rotación, lo que se traduce en estrategias más estables y menor desgaste por comisiones. La naturaleza estocástica de SAC permite una cobertura más adaptativa, mientras que el Q-Learning tabular sufre por la discretización del espacio de acciones y la falta de generalización.

Claves para una implementación exitosa

  • Replay buffer grande (≥100,000 transiciones) para capturar dependencias temporales largas en mercados financieros.
  • Normalización de estados (media cero, varianza unitaria) usando estadísticas móviles.
  • Ajuste automático de α (temperatura) mediante optimización dual, evitando el ajuste manual.
  • Arquitecturas profundas moderadas (2-3 capas ocultas de 256 unidades) para evitar sobreajuste a ruido financiero.
  • Validación fuera de muestra con walk-forward analysis; nunca uses datos futuros en el buffer.

Soft Actor-Critic ha emergido como una herramienta poderosa para la optimización de portafolios en espacios de acción continuos. Su capacidad para equilibrar exploración y explotación, junto con la estabilidad del aprendizaje off-policy, lo convierte en una opción superior frente a métodos tabulares o basados en Q-learning discretizado. Dominar esta arquitectura te permitirá abordar problemas financieros complejos con un enfoque de vanguardia.

Odisea Algorítmica: De la Regresión al Aprendizaje Profundo – Descripción Unificada.

Soft Actor-Critic (SAC): maximización de la recompensa junto con la entropía de la política para fomentar la exploración. Función objetivo: J = ΣE[r + αH(π(·|s))]. Arquitectura: red de política, dos redes Q (para reducir sobreestimación) y un crítico de valor. Actualización con minimización de la divergencia KL. Aplicación a optimización de portafolios con acción continua (pesos de activos en [0,1]). Estado extendido: rendimientos históricos, volatilidad, correlaciones. Recompensa: retorno ajustado por riesgo con penalización por rotación. Implementación utilizando recompensas normalizadas. Comparación con Q-Learning tabular para portafolios de 5 activos: mejora en ratio de Sharpe y menor varianza en los retornos.
Calificación
0 0

No hay comentarios por ahora.