Gym es un kit de herramientas para desarrollar y comparar algoritmos de aprendizaje por refuerzo. Admite la enseñanza de agentes sobre cómo tomar decisiones en una variedad de entornos simulados.
Introducción Detallada al Proyecto OpenAI Gym
Resumen del Proyecto
OpenAI Gym es una biblioteca de Python de código abierto, diseñada específicamente para desarrollar y comparar algoritmos de aprendizaje por refuerzo. Proporciona una API estandarizada para conectar algoritmos de aprendizaje y entornos, y ofrece un conjunto de entornos que cumplen con este estándar de API. Desde su lanzamiento, la API de Gym se ha convertido en el estándar en el campo del aprendizaje por refuerzo.
⚠️ Declaración Importante
Cambio en el Estado de Mantenimiento del Proyecto: El equipo que ha mantenido Gym desde 2021 ha transferido todo el trabajo de desarrollo futuro a Gymnasium, que es un reemplazo directo de Gym (se puede usar import gymnasium as gym
). Gym ya no recibirá ninguna actualización futura, y se recomienda a los usuarios que cambien a Gymnasium lo antes posible.
Características Principales
API Estandarizada
- Proporciona una interfaz unificada para la comunicación entre algoritmos de aprendizaje por refuerzo y entornos.
- Simplifica el proceso de creación e interacción con entornos.
- Se ha convertido en el estándar de API en el campo del aprendizaje por refuerzo.
Amplia Biblioteca de Entornos
- Contiene una gran cantidad de entornos de aprendizaje por refuerzo predefinidos.
- Admite varios tipos de tareas y desafíos.
- Todos los entornos siguen un estándar de interfaz unificado.
Método de Instalación
Instalación Básica
pip install gym
Instalación de Familias de Entornos Específicas
# Instalar dependencias para entornos Atari
pip install gym[atari]
# Instalar dependencias para todos los entornos
pip install gym[all]
# Instalar dependencias para entornos MuJoCo (versión más reciente)
pip install gym[mujoco]
# Instalar dependencias para entornos MuJoCo (versión antigua)
pip install gym[mujoco_py]
Soporte del Sistema
- Versiones de Python: Soporta Python 3.7, 3.8, 3.9, 3.10
- Sistemas Operativos: Soporte oficial para Linux y macOS
- Windows: Se aceptan PRs relacionados, pero no se proporciona soporte oficial
Ejemplo de Uso Básico
import gym
# Crear el entorno
env = gym.make("CartPole-v1")
# Reiniciar el entorno
observation, info = env.reset(seed=42)
# Bucle de interacción con el entorno
for _ in range(1000):
# Seleccionar una acción aleatoria
action = env.action_space.sample()
# Ejecutar la acción
observation, reward, terminated, truncated, info = env.step(action)
# Comprobar si es necesario reiniciar
if terminated or truncated:
observation, info = env.reset()
# Cerrar el entorno
env.close()
Ecosistema Relacionado
Bibliotecas de Aprendizaje Recomendadas
CleanRL - Biblioteca de aprendizaje basada en la API de Gym
- Orientada a principiantes en aprendizaje por refuerzo
- Proporciona excelentes implementaciones de referencia
Tianshou - Biblioteca de aprendizaje para usuarios experimentados
- Admite modificaciones complejas de algoritmos
- Diseño flexible
RLlib - Biblioteca de aprendizaje que admite entrenamiento distribuido
- Admite entrenamiento e inferencia distribuidos
- Funcionalidades extremadamente ricas
PettingZoo - Biblioteca de entornos multiagente
- Similar a Gym pero admite entornos multiagente
Gestión de Versiones
Gym utiliza un control de versiones estricto para garantizar la reproducibilidad:
- Todos los entornos terminan con un sufijo de versión (como "_v0")
- Cuando un cambio en el entorno puede afectar los resultados del aprendizaje, el número de versión se incrementa
- Garantiza la reproducibilidad y la consistencia de los experimentos
Actualización de Entornos MuJoCo
- Las versiones más recientes "_v4" y futuras ya no dependen de
mujoco-py
- En cambio, utilizan
mujoco
como dependencia obligatoria - Las versiones antiguas de los entornos se conservan pero ya no se mantienen
Documentación y Recursos
- Documentación Oficial: https://www.gymlibrary.dev/
- Servidor de Discord: Comunidad de discusión de desarrollo
- Repositorio de GitHub: https://github.com/openai/gym
Cita Académica
El documento técnico del proyecto está disponible en arXiv, formato de cita:
@misc{1606.01540,
Author = {Greg Brockman and Vicki Cheung and Ludwig Pettersson and Jonas Schneider and John Schulman and Jie Tang and Wojciech Zaremba},
Title = {OpenAI Gym},
Year = {2016},
Eprint = {arXiv:1606.01540},
}
Resumen del Estado del Proyecto
OpenAI Gym, como herramienta pionera en el campo del aprendizaje por refuerzo, ha establecido un estándar de la industria y ha fomentado un vasto ecosistema. Aunque el proyecto original ya no se mantiene activamente, su sucesor, Gymnasium, hereda todas las funciones principales, lo que garantiza el desarrollo continuo de la comunidad. Para los nuevos proyectos, se recomienda encarecidamente utilizar Gymnasium directamente para obtener las últimas funciones y soporte continuo.