Home
Login

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

NOASSERTIONPython 36.1kopenai Last Updated: 2024-10-11

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을 직접 사용하는 것이 좋습니다.