Gym은 강화 학습 알고리즘을 개발하고 비교하기 위한 툴킷입니다. 다양한 시뮬레이션 환경에서 에이전트가 의사 결정을 내리는 방법을 가르치는 것을 지원합니다.

NOASSERTIONPythongymopenai 36.4k Last Updated: October 11, 2024

OpenAI Gym 프로젝트 상세 소개

프로젝트 개요

OpenAI Gym은 강화 학습 알고리즘을 개발하고 비교하는 데 특화된 오픈 소스 Python 라이브러리입니다. 표준화된 API를 제공하여 학습 알고리즘과 환경을 연결하고, 해당 API 표준을 준수하는 환경 집합을 제공합니다. 출시 이후 Gym의 API는 강화 학습 분야의 표준이 되었습니다.

⚠️ 중요 공지

프로젝트 유지 관리 상태 변경: 2021년부터 Gym을 유지 관리해 온 팀은 모든 향후 개발 작업을 Gymnasium으로 이전했습니다. Gymnasium은 Gym의 직접적인 대체품이며 (import gymnasium as gym을 사용하여 접근 가능합니다). Gym은 더 이상 업데이트를 받지 않으므로 사용자는 가능한 한 빨리 Gymnasium으로 전환하는 것이 좋습니다.

핵심 기능

표준화된 API

  • 강화 학습 알고리즘과 환경 간의 통신을 위한 통일된 인터페이스 제공
  • 환경 생성 및 상호 작용 과정 간소화
  • 강화 학습 분야의 API 표준으로 자리매김

풍부한 환경 라이브러리

  • 미리 정의된 다양한 강화 학습 환경 포함
  • 다양한 유형의 작업 및 도전 과제 지원
  • 모든 환경은 통일된 인터페이스 표준 준수

설치 방법

기본 설치

pip install gym

특정 환경군 설치

# Atari 환경 의존성 설치
pip install gym[atari]

# 모든 환경 의존성 설치
pip install gym[all]

# MuJoCo 환경 의존성 설치 (최신 버전)
pip install gym[mujoco]

# MuJoCo 환경 의존성 설치 (구 버전)
pip install gym[mujoco_py]

시스템 지원

  • Python 버전: Python 3.7, 3.8, 3.9, 3.10 지원
  • 운영체제: Linux 및 macOS 공식 지원
  • Windows: 관련 PR은 수락하지만 공식 지원은 제공하지 않음

기본 사용 예시

import gym

# 환경 생성
env = gym.make("CartPole-v1")

# 환경 초기화
observation, info = env.reset(seed=42)

# 환경 상호 작용 루프
for _ in range(1000):
    # 무작위 동작 선택
    action = env.action_space.sample()
    
    # 동작 실행
    observation, reward, terminated, truncated, info = env.step(action)
    
    # 재설정 필요 여부 확인
    if terminated or truncated:
        observation, info = env.reset()

# 환경 닫기
env.close()

관련 생태계

추천 학습 라이브러리

  1. CleanRL - Gym API 기반 학습 라이브러리

    • 강화 학습 초보자 대상
    • 훌륭한 참조 구현 제공
  2. Tianshou - 경험이 풍부한 사용자 대상 학습 라이브러리

    • 복잡한 알고리즘 수정 지원
    • 유연한 설계
  3. RLlib - 분산 훈련 지원 학습 라이브러리

    • 분산 훈련 및 추론 지원
    • 매우 풍부한 기능
  4. PettingZoo - 다중 에이전트 환경 라이브러리

    • Gym과 유사하지만 다중 에이전트 환경 지원

버전 관리

Gym은 재현성을 보장하기 위해 엄격한 버전 관리를 채택합니다.

  • 모든 환경은 버전 접미사로 끝남 (예: "_v0")
  • 환경 변경이 학습 결과에 영향을 미칠 수 있는 경우 버전 번호 증가
  • 실험의 재현성 및 일관성 보장

MuJoCo 환경 업데이트

  • 최신 "_v4" 및 향후 버전은 더 이상 mujoco-py에 의존하지 않음
  • mujoco를 필수 의존성으로 사용하도록 변경
  • 구 버전 환경은 유지되지만 더 이상 유지 관리되지 않음

문서 및 리소스

학술 인용

프로젝트 백서는 arXiv에서 확인할 수 있으며, 인용 형식은 다음과 같습니다.

@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},
}

프로젝트 상태 요약

OpenAI Gym은 강화 학습 분야의 선구적인 도구로서 업계 표준을 수립하고 방대한 생태계를 육성했습니다. 원래 프로젝트는 더 이상 적극적으로 유지 관리되지 않지만, 후속 프로젝트인 Gymnasium이 모든 핵심 기능을 계승하여 커뮤니티의 지속적인 발전을 보장합니다. 새로운 프로젝트의 경우 최신 기능과 지속적인 지원을 위해 Gymnasium을 직접 사용하는 것이 좋습니다.

Star History Chart