Comparación del rendimiento de PPO, SAC y DQN en el Lunar Lander de Gymnasium

Michael Kudlaty
Michael Kudlaty
August 1, 2024

Introducción

El entorno Lunar Lander, un punto de referencia popular en el gimnasio de OpenAI, desafía a un agente a aterrizar una nave espacial de forma segura en una plataforma de aterrizaje designada. El entorno proporciona espacios de estado y acción continuos, lo que lo convierte en un candidato adecuado para probar diferentes algoritmos de aprendizaje por refuerzo (RL). En esta entrada de blog se explica cómo se pueden utilizar tres algoritmos avanzados de RL: Proximal Policy Optimization (PPO), Soft Actor-Critic (SAC) y Deep Q-Network (DQN), para resolver el problema del módulo de aterrizaje lunar.

Comprensión de los algoritmos

Optimización de políticas proximales (PPO)

El PPO es un algoritmo basado en políticas que equilibra la simplicidad y el rendimiento. Así es como aprende PPO:

  1. Optimización de políticas: La PPO utiliza una política estocástica, lo que significa que genera una distribución de probabilidad sobre las acciones en lugar de una sola acción determinista. La política se optimiza mediante una función objetiva sustituta.
  2. Mecanismo de recorte: Para evitar actualizaciones de gran tamaño que puedan desestabilizar la formación, la PPO introduce un mecanismo de recorte. La relación de probabilidad entre las políticas nuevas y las antiguas se reduce para garantizar que la política no cambie demasiado drásticamente entre las actualizaciones.
  3. Estimación de ventajas: La PPO se basa en la estimación de la ventaja, que es la diferencia entre el rendimiento esperado (función de valor) y el rendimiento real. Esto ayuda al algoritmo a centrarse en las acciones que son mejores que la media.
  4. Épocas y procesamiento por lotes: El algoritmo actualiza la política mediante iteraciones en varias épocas y minilotes, lo que garantiza un aprendizaje eficiente y estable.

Política estocástica en PPO

Una política estocástica en la PPO genera una distribución de probabilidad sobre las acciones. Esto permite al agente tomar muestras de diferentes acciones incluso en el mismo estado, lo que promueve la exploración y reduce la posibilidad de quedarse atrapado en los valores óptimos locales. La política estocástica generalmente se modela utilizando una distribución gaussiana para espacios de acción continuos, donde la media y la desviación estándar son parámetros aprendidos.

La ventaja de utilizar una política estocástica es que alienta al agente a explorar el entorno más a fondo, lo que puede llevar a descubrir mejores estrategias que las políticas deterministas podrían pasar por alto. El equilibrio entre exploración y explotación es crucial en RL, y una política estocástica proporciona una forma natural de equilibrar este equilibrio.

El papel de la entropía en el fomento de la exploración en las PPO

Equilibrar la exploración y la explotación es vital para reforzar el aprendizaje, y el PPO aborda este desafío a través de la entropía.

¿Qué es la entropía?

En este contexto, la entropía mide la aleatoriedad o la incertidumbre en la distribución de las acciones de la política. Una entropía alta indica una selección de acciones más aleatoria, mientras que una entropía baja sugiere un enfoque más determinista.

Cómo la entropía fomenta la exploración

La entropía se integra en el PPO añadiendo una bonificación de entropía a la función de pérdida. Esta bonificación alienta a la política a mantener un nivel de aleatoriedad durante la formación, lo que evita una convergencia prematura hacia políticas subóptimas. Básicamente, el término de entropía ayuda al agente a seguir explorando diferentes acciones, lo que lleva a una comprensión más completa del entorno.

El término de entropía en la función de pérdida normalmente toma la forma:

$$ {{\ text {Pérdida} =\ text {Pérdida de política} -\ lambda\ times\ text {Entropy}} $$

En este caso, $ {{\ lambda}} $ es un hiperparámetro que controla el peso de la bonificación de entropía. Un valor más alto de λ\ lambdaλ conduce a una mayor exploración, mientras que un valor más bajo favorece la explotación.

Equilibrar la exploración y la explotación

El equilibrio adecuado entre exploración y explotación es esencial para un aprendizaje efectivo. Una exploración excesiva puede retrasar la convergencia al dedicar demasiado tiempo a acciones que no sean óptimas, mientras que una exploración insuficiente puede hacer que la política converja prematuramente hacia un mínimo local. El PPO logra este equilibrio reduciendo gradualmente la bonificación de entropía a medida que avanza el entrenamiento, lo que permite que el algoritmo se centre más en la explotación una vez que se haya acumulado suficiente conocimiento sobre el medio ambiente.

Consideraciones prácticas

Al ajustar el coeficiente de entropía λ\ lambdaλ, tenga en cuenta el problema y el entorno específicos. Una entropía más alta podría ser beneficiosa en entornos con una alta variabilidad o dinámicas complejas, mientras que una bonificación de entropía más baja podría ser suficiente en entornos más sencillos.

Al gestionar la entropía de forma eficaz, la PPO garantiza que el agente explore lo suficiente antes de comprometerse con una estrategia, lo que lleva a políticas más sólidas y generalizables.

Actor-Crítico Suave (SAC)

El SAC es un algoritmo ajeno a la política diseñado para espacios de acción continua. Así es como aprende SAC:

  1. Marco actor-crítico: El SAC emplea a un actor (política) y a dos críticos (funciones de valor). El actor selecciona las acciones, mientras que los críticos las evalúan.
  2. Regularización de entropía: El SAC maximiza tanto el rendimiento esperado como la entropía de la política. La regularización por entropía fomenta la exploración al agregar un término a la función objetivo que mide la aleatoriedad de la política. Esto ayuda a evitar una convergencia prematura hacia políticas subóptimas.
  3. Aprendizaje fuera de las políticas: SAC aprovecha un búfer de reproducción para almacenar y reutilizar experiencias pasadas, lo que mejora la eficiencia de las muestras. Las críticas se actualizan utilizando lotes de experiencias extraídas del búfer de reproducción.
  4. Q-Learning suave: SAC usa una versión suave de la ecuación de Bellman para actualizar a las críticas. Esto implica minimizar la diferencia entre los valores Q pronosticados y los valores Q objetivo, que incluyen el término de entropía.

Regularización de entropía en SAC

La regularización de la entropía en el SAC introduce un término de entropía para la función objetivo, lo que alienta a la política a mantener la aleatoriedad. El término de entropía $ {{H (\ pi (\ cdot|s))}} $ se suma a la recompensa, donde $ {{\ pi}} $ es la política y sss es el estado. Este término penaliza la certeza en la selección de acciones e incentiva al agente a explorar diferentes acciones en lugar de ceñirse a una política determinista.

La función objetivo en el SAC se convierte en: $ {{J (\ pi) =\ sum_ {t=0} ^ {T}\ mathbb {E} _ {(s_t, a_t)\ sim\ rho_\ pi}\ left [r (s_t, a_t) +\ alpha H (\ pi (\ cdot|s_t))\ right]}} $ donde $ {{alpha}} $ es una temperatura parámetro que controla la compensación entre la maximización de la recompensa y la maximización de la entropía.

Al fomentar una mayor entropía, es más probable que el agente explore diversas acciones, lo que puede llevar a descubrir mejores estrategias a largo plazo. Esto hace que el SAC sea particularmente eficaz en entornos en los que la exploración es crucial para encontrar políticas óptimas.

Marco actor-crítico en SAC

En SAC, el marco actor-crítico es fundamental para su proceso de aprendizaje. El marco se compone de dos componentes principales:

  1. Actor (Red de políticas): El actor es responsable de seleccionar las acciones en función del estado actual. Genera una distribución de probabilidad entre las acciones (una política estocástica), que garantiza una selección diversa de acciones y promueve la exploración. La red de políticas está capacitada para maximizar el rendimiento esperado y la entropía de la política, equilibrando la explotación y la exploración.
  2. Críticos (Q-Value Networks): El SAC emplea dos redes de valores Q (críticas) para estimar el rendimiento esperado de tomar una acción en un estado determinado. Tener dos críticos ayuda a reducir el sesgo de sobreestimación, que es común en los algoritmos de Q-learning. Los críticos están capacitados para minimizar el error de Bellman y garantizar una estimación precisa del valor.

El proceso de aprendizaje implica la alternancia de actualizaciones entre el actor y los críticos:

  • Actualización crítica: Las críticas se actualizan utilizando la suave ecuación de Bellman. El valor Q objetivo se calcula teniendo en cuenta tanto el término de recompensa como el de entropía, lo que alienta a la política a permanecer estocástica.
  • Actualización de actores: El actor se actualiza maximizando el rendimiento esperado y la entropía de la política. El gradiente de la política se calcula utilizando los valores Q de los críticos, lo que guía al actor hacia acciones que generen mayores beneficios sin perder de vista la exploración.

Esta interacción entre el actor y los críticos permite a SAC aprender de manera efectiva las políticas que equilibran la exploración y la explotación, lo que lo convierte en un poderoso algoritmo para espacios de acción continua.

Red Q profunda (DQN)

El DQN es un algoritmo ajeno a la política que se utiliza normalmente para espacios de acción discretos. Para el entorno del módulo de aterrizaje lunar, lo adaptamos para gestionar espacios de estado continuos. Así es como aprende DQN:

  1. Aproximación del valor Q: DQN utiliza una red neuronal para aproximar la función del valor Q, que estima el rendimiento esperado de realizar una determinada acción en un estado determinado.
  2. Repetición de experiencias: DQN almacena las experiencias pasadas en un búfer de reproducción y muestrea minilotes de experiencias durante el entrenamiento. Esto rompe la correlación entre experiencias consecutivas y mejora la estabilidad del aprendizaje.
  3. Redes objetivo: DQN emplea una red objetivo para estabilizar la formación. La red objetivo es una copia de la red Q y se actualiza con menos frecuencia. Esto reduce la probabilidad de divergencias durante el entrenamiento.
  4. Política Epsilon-Greedy: DQN utiliza una política codiciosa por el épsilon para equilibrar la exploración y la explotación. Con la probabilidad épsilon, el agente selecciona una acción aleatoria; de lo contrario, selecciona la acción con el valor Q más alto.

Espacios de acción continuos versus discretos

La elección entre espacios de acción continuos y discretos tiene un impacto significativo en el diseño y el rendimiento de los algoritmos de RL.

Espacios de acción continua

Los espacios de acción continua ofrecen una variedad de acciones posibles, lo que los hace adecuados para tareas que requieren un control preciso, como la manipulación robótica o el entorno del módulo de aterrizaje lunar. Los algoritmos diseñados para espacios de acción continua, como el PPO y el SAC, deben gestionar un rango continuo de valores para cada dimensión de acción.

  • POP: Utiliza una política estocástica, normalmente modelada mediante una distribución gaussiana, para generar acciones continuas. Esto permite a PPO gestionar eficazmente el control detallado que se necesita en entornos de acción continua.
  • SACO: También emplea una política estocástica con una distribución gaussiana, pero mejora la exploración mediante la regularización de la entropía. El espacio de acción continuo permite al SAC aprovechar el término de entropía para mantener una selección de acciones diversa, evitando así una convergencia prematura.

Espacios de acción discretos

Los espacios de acción discretos consisten en un conjunto finito de acciones, lo que los hace adecuados para tareas con acciones claras y distintas, como jugar videojuegos o juegos de mesa. El DQN está diseñado para espacios de acción discretos y funciona seleccionando la acción con el valor Q más alto.

  • DQN: Utiliza una red neuronal para aproximar los valores Q de cada acción discreta. El agente selecciona las acciones siguiendo una política ambiciosa basada en el épsilon, que equilibra la exploración y la explotación. Si bien el DQN se puede adaptar para espacios de estado continuo, su diseño original se adapta a acciones discretas.

Implementación de los algoritmos

Analicemos la implementación de cada algoritmo para el entorno del Lunar Lander.

1. Optimización de políticas proximales (PPO)

1import gymnanisum as gym
2from stable_baselines3 import PPO
3
4# Create the Lunar Lander environment
5env = gym.make("LunarLander-v3")
6
7# Initialize the PPO model
8model = PPO("MlpPolicy", env, verbose=1)
9
10# Train the model
11model.learn(total_timesteps=100000)
12
13# Save the model
14model.save("ppo_lunar_lander")
15
16# Evaluate the model
17obs = env.reset()
18for _ in range(1000):    
19	action, _states = model.predict(obs)    
20    obs, rewards, dones, info = env.step(action)    
21    env.render()
22env.close()

2. Actor y crítico blando (SAC)

1import gymnasium as gym
2from stable_baselines3 import SAC
3
4# Create the Lunar Lander environment
5env = gym.make("LunarLanderContinuous-v3")
6
7# Initialize the SAC model
8model = SAC("MlpPolicy", env, verbose=1)
9
10# Train the model
11model.learn(total_timesteps=100000)
12
13# Save the model
14model.save("sac_lunar_lander")
15
16# Evaluate the mode
17lobs = env.reset()
18for _ in range(1000):    
19	action, _states = model.predict(obs)
20    obs, rewards, dones, info = env.step(action)
21    env.render()
22env.close()

3. Red Q profunda (DQN)

1import gymnasium as gym
2from stable_baselines3 import DQN
3
4# Create the Lunar Lander environment
5env = gym.make("LunarLander-v3")
6
7# Initialize the DQN model
8model = DQN("MlpPolicy", env, verbose=1)
9
10# Train the model
11model.learn(total_timesteps=100000)
12
13# Save the model
14model.save("dqn_lunar_lander")
15
16# Evaluate the model
17obs = env.reset()
18for _ in range(1000):
19	action, _states = model.predict(obs)
20    obs, rewards, dones, info = env.step(action)
21    env.render()
22env.close()


Comparación y resultados

Cada uno de estos algoritmos tiene sus puntos fuertes y débiles cuando se aplica al entorno del módulo de aterrizaje lunar:

  • POP: Proporciona un buen equilibrio entre exploración y explotación, lo que lo hace adecuado para entornos con espacios de estado y acción continuos. Por lo general, converge más rápido y es más estable.
  • SACO: Ofrece una exploración sólida mediante la regularización de la entropía, lo que a menudo conduce a un mejor rendimiento en entornos con espacios de acción continuos. Sin embargo, puede requerir más recursos computacionales y tiempos de entrenamiento más prolongados.
  • DQN: Si bien se utiliza tradicionalmente para espacios de acción discretos, se puede adaptar al entorno del módulo de aterrizaje lunar. Por lo general, funciona bien, pero es posible que no sea tan eficaz como el PPO o el SAC para espacios de acción continua.

Conclusión

Resolver el entorno del Lunar Lander con PPO, SAC y DQN demuestra la versatilidad y los puntos fuertes de estos algoritmos de RL avanzados. Al aprovechar las propiedades únicas de cada algoritmo, podemos lograr soluciones eficientes y efectivas para este desafiante problema. Ya sea que priorice la estabilidad, la exploración o la eficiencia computacional, existe un algoritmo de RL que se adapta bien a sus necesidades.

Materiales de aprendizaje adicionales

Repositorio de código y modelos

Responsive Table

Model Performance

Environment Model Type Average Reward Total Training Steps HuggingFace Google Colab
LunarLander-v3 PPO 220.66 +/- 93.99 750,000 View Model View Colab
LunarLanderContinuous-v3 PPO 214.55 +/- 67.09 750,000 View Model View Colab
LunarLanderContinuous-v3 SAC 288.74 +/- 15.01 750,000 View Model View Colab
LunarLander-v3 DQN 218.56 +/- 63.62 750,000 View Model View Colab
Updated On:
November 5, 2025
Follow on social media: