Contenido del Curso
Introducción al Aprendizaje por Refuerzo
Introducción al Aprendizaje por Refuerzo
Fundamentos de Gymnasium
Gymnasium es un conjunto de herramientas de código abierto diseñado para desarrollar y evaluar agentes de aprendizaje por refuerzo (RL). Proporciona una colección de entornos estándar para probar algoritmos y entrenar agentes de manera eficiente.
Características principales
- API estandarizada: garantiza compatibilidad entre diferentes entornos;
- Variedad de entornos: admite problemas clásicos de control, juegos de Atari y simulaciones de robótica;
- Integración sencilla: compatible con marcos de aprendizaje profundo como TensorFlow y PyTorch.
Flujo de trabajo
Un flujo de trabajo típico en Gymnasium es el siguiente:
1. Importar la biblioteca
import gymnasium as gym
Después de que la biblioteca original gym
fuera descontinuada, ahora se recomienda utilizar gymnasium
, un fork de gym bien mantenido y en desarrollo activo. A pesar del cambio de nombre, la biblioteca sigue importándose comúnmente con el alias gym
para mantener la compatibilidad y por conveniencia.
2. Crear un entorno
env = gym.make("CartPole-v1")
La función gym.make()
instancia un entorno utilizando su identificador único (por ejemplo, "CartPole-v1"
). También se pueden pasar parámetros de configuración adicionales según los requisitos del entorno.
3. Reiniciar el entorno
observation, info = env.reset()
Antes de interactuar con el entorno, es necesario reiniciarlo a su estado inicial usando env.reset()
. Esto retorna:
observation
: el estado inicial del entorno;info
: datos auxiliares que pueden incluir metadatos o configuraciones específicas del estado.
4. Interactuar con el entorno
action = env.action_space.sample()
observation, reward, terminated, truncated, info = env.step(action)
En la primera línea, se elige una acción aleatoria del espacio de acciones usando env.action_space.sample()
. El espacio de acciones define el conjunto de todas las acciones posibles que el agente puede realizar en el entorno. Además, el entorno proporciona el espacio de observaciones, al que se accede mediante env.observation_space
y que representa el conjunto de todas las observaciones (estados) posibles que el agente puede encontrar.
En la segunda línea, la acción elegida se pasa a env.step(action)
, que ejecuta la acción y retorna lo siguiente:
observation
: el nuevo estado del agente después de realizar la acción;reward
: la recompensa recibida por la acción realizada;terminated
: un valor booleano que indica si el episodio ha finalizado (es decir, si la tarea está completa);truncated
: un valor booleano que indica si el episodio fue detenido prematuramente (por tiempo u otras restricciones);info
: información diagnóstica adicional, utilizada frecuentemente para depuración o registro.
5. Cerrar el entorno
env.close()
Si el entorno utiliza recursos externos (por ejemplo, ventanas de renderizado o simulaciones), se debe cerrar utilizando env.close()
.
Si desea conocer más sobre las funcionalidades que ofrece la biblioteca Gymnasium, debe visitar their website.
¡Gracias por tus comentarios!