OpenAI 開發的強化學習環境工具包,提供標準化 RL 演算法開發介面
Gym 是 OpenAI 開發的強化學習環境工具包,提供標準化的介面用於開發和比較 RL 演算法。每個環境遵循相同的 API:reset() 初始化環境並返回觀察、step(action) 執行一步動作並返回 (observation, reward, terminated, truncated, info)、render() 渲染環境視覺化。Gym 已於 2023 年更名為 Gymnasium,但 API 保持相容。
環境互動流程:建立環境 (gym.make) → 重置 (env.reset) → 迴圈執行動作 (env.step)。離散空間 (Discrete):動作從有限集合中選擇,如 CartPole 的左/右。 盒子空間 (Box):連續動作或觀察,用低維和高維邊界定義。 多離散/多二元/字典空間:用於複合動作和觀察空間。包裝器 (Wrapper) 如 TimeLimit、NormalizeObservation、FrameStack、RecordVideo 可擴展環境功能。
CartPole-v1:平衡桿子,觀察為 (位置, 速度, 角度, 角速度),動作離散 2。 MountainCar-v0:爬上山頂,觀察為 2D (位置, 速度),動作離散 3。 Pendulum-v1:鐘擺直立控制,觀察為 (cos θ, sin θ, ω),動作連續扭矩。 LunarLander-v2:月球登陸,動作離散 4。 BipedalWalker-v3:雙足行走,動作連續 4。
Gym 環境可與 Stable-Baselines3 整合使用 DQN、PPO 等演算法。DQN 使用經驗回放和目標網路穩定訓練,適合離散動作空間。PPO 通過裁剪的代理目標函數實現穩定更新,是目前最流行的策略梯度方法。自定義環境可通過 gym.envs.registration.register 註冊,需實現 step、reset 和空間定義。