☰
MO-Gymnasium 与 MORL-Baselines 联调实战:多目标强化学习基准测试完全手册
2026/10/14 15:31:26 网站建设 项目流程

【免费下载链接】MO-Gymnasium

Multi-objective Gymnasium environments for reinforcement learning

项目地址:https://gitcode.com/gh_mirrors/mo/MO-Gymnasium
点击查看免费下载

MO-Gymnasium 是一个面向多目标强化学习(MORL)的开源 Python 环境库,提供遵循 Gymnasium 标准 API 的多目标基准环境——step返回向量化的 numpy 奖励数组而非单一标量。它与同作者的 MORL-Baselines 算法仓库配套使用,可以完成"选环境 → 标量化 → 训练 → 基准对比"的完整多目标强化学习基准测试流水线。本文带你走通从安装、选环境、联调算法到可复现性验证的全部环节。

1. 为什么多目标基准测试需要专门的环境库 🎯

传统强化学习只优化一个标量奖励,而现实任务往往同时存在多个相互冲突的目标。以mo-halfcheetah为例:半豹子跑得越快,能量消耗越大。若把两个目标合并成一个奖励,权重取 0.9:0.1 和 0.1:0.9 会得到完全不同的策略——这正是多目标基准测试要量化的东西。

上图展示了mo-halfcheetah-v5在"速度 / 能量效率"两个目标上的权衡:不同权重下的学习结果落在帕累托前沿的不同位置,这就是 MORL 算法需要对比评估的典型场景。

MO-Gymnasium 的设计哲学是:环境保持多目标原貌(返回奖励向量),标量化交给包装器完成,这样同一套环境既能服务多目标算法(如 MO-DQN、Pareto 学习),也能无缝喂给单目标算法库。

2. 一键安装与环境自检 🚀

安装非常简单,一行 pip 命令即可:

pip install mo-gymnasium

默认安装不含所有环境族的依赖。如需 MuJoCo 类环境或全部依赖,可分别执行:

pip install "mo-gymnasium[mujoco]" pip install "mo-gymnasium[all]"

也可以从源码安装:

git clone https://gitcode.com/gh_mirrors/mo/MO-Gymnasium

安装后用三行代码自检环境是否可用(vector_reward是 numpy 数组,这是 MO-Gymnasium 与普通 Gymnasium 的关键区别):

import mo_gymnasium as mo_gym env = mo_gym.make("minecart-v0") obs, info = env.reset() next_obs, vector_reward, terminated, truncated, info = env.step(env.action_space.sample()) print(vector_reward) # 输出如 [0. 0. 0.1] 的奖励向量

详细安装说明见 docs/introduction/install.md,完整示例见 README.md 的 API 部分。

3. 基准环境选型:三大环境家族 🗺️

环境按形态分为三类,全部注册在 mo_gymnasium/envs/init.py 中,环境 ID 带有严格的版本号后缀(如-v0)以保证可复现性。

3.1 经典控制环境(Classic Control)

对 Gymnasium 经典环境的多目标改造,适合入门与快速实验:

环境 ID目标向量说明
mo-mountaincar-v0[time_penalty, reverse_penalty, forward_penalty]山车爬坡,增加前进/后退惩罚,源自 Vamplew et al. 2011
mo-mountaincarcontinuous-v0[time_penalty, fuel_consumption_penalty]连续动作版本,增加油耗惩罚
mo-lunar-lander-v2[landed, shaped_reward, main_engine_fuel, side_engine_fuel]月球着陆器,区分主/侧喷油消耗

3.2 网格世界(Grid-World)

离散观察空间的经典 MORL 基准,许多环境附带解析已知的帕累托前沿,是做算法正确性验证的首选:

  • deep-sea-treasure-v0/deep-sea-treasure-concave-v0/deep-sea-treasure-mirrored-v0:[treasure, time_penalty],潜艇在"宝藏价值 vs 时间成本"间权衡,是最常用的 MORL 测试床;
  • fishwood-v0:[fish_amount, wood_amount],钓鱼还是捡柴的经典二选一问题;
  • fruit-tree-v0:[nutri1..nutri6],六营养素的树状采集任务;
  • 此外还有resource-gathering-v0、four-room-v0、breakable-bottles-v0等。

3.3 MuJoCo 物理环境

mo-hopper-v5、mo-ant-v5、mo-humanoid-v5等 7 种高维连续控制环境,目标向量通常为"速度 + 能量",是检验多目标算法扩展性的主力(见 mo_gymnasium/envs/mujoco/ 下的各环境实现):

完整环境清单及目标定义见 docs/environments/classical.md、docs/environments/grid-world.md 与 docs/environments/mujoco.md。

4. 与 MORL-Baselines 联调:从环境到训练 🔗

MORL-Baselines 是同一团队实现的多种 MORL 算法库(基于 MO-Gymnasium API),两者配合有两种典型联调方式:

方式一:标量化后喂给单目标算法库。用LinearReward包装器把奖励向量与权重向量做点积,还原成标量奖励后,即可直接复用 Stable-Baselines3 等成熟算法:

import numpy as np import stable_baselines3 as sb3 import mo_gymnasium as mo_gym # 线性标量化:权重决定了关注哪个目标 env = mo_gym.wrappers.LinearReward( mo_gym.make("mo-mountaincar-v0"), weight=np.array([0.9, 0.1, 0.0]), ) agent = sb3.DQN("MlpPolicy", env) agent.learn(10_000)

方式二:直接用多目标算法。MORL-Baselines 中的算法原生消费奖励向量,通过扫描权重集训练一族策略,再把每个策略的累积回报点画到帕累托前沿上,与解析前沿(如 DST 环境自带的答案)对比——这就是基准测试的闭环。

官方演示笔记本 mo_gymnasium_demo.ipynb 完整演示了安装、创建环境、查看reward_space、随机策略回放与 DQN 训练六步流程,建议边读边跑。

5. 实战关键:MO 包装器速查表 📦

多目标基准测试中,奖励的处理逻辑基本由 mo_gymnasium/wrappers/wrappers.py 中的包装器承担:

包装器作用典型用途
LinearReward奖励向量 × 权重向量 = 标量奖励对接单目标算法;set_weight支持训练后换权重评估
MONormalizeReward对指定下标的奖励分量做移动平均归一化稳定训练,可多层叠加逐分量归一
MOClipReward将指定分量裁剪到 [min, max]抑制极端奖励值
MORecordEpisodeStatistics记录每回合向量累积回报、折扣回报与长度基准测试出图(帕累托前沿绘制的数据来源)
MOMaxAndSkipObservation帧跳过 + 双帧取最大面向像素环境(如 Super Mario)

包装器文档见 docs/wrappers/wrappers.md。注意包装器顺序:MORecordEpisodeStatistics依赖info为 dict,建议放在最外层。

6. 可复现性验证:确定性测试与帕累托前沿校验 ✅

基准测试的价值在于可复现。MO-Gymnasium 的测试套件 tests/test_envs.py 本身就是一套"环境质检清单":

  1. API 合规:所有环境通过 Gymnasium 官方check_env校验(先套LinearReward转标量);
  2. 确定性 rollout:同种子双环境 50 步对跑,逐位比对 obs/reward/terminated/info;
  3. 奖励边界:验证每步vector_reward都落在reward_space内;
  4. 解析前沿校验:如test_ccs_dst把deep-sea-treasure-v0的env.unwrapped.pareto_front(gamma=0.99)与已知凸组合解逐点比对(见 tests/test_envs.py#L195-L214)。

做基准测试时,可直接调用pareto_front(gamma)拿到环境的理论答案,用它评估算法学到的策略离最优还有多远——这比单纯看回报曲线更有说服力。

7. 引用与延伸阅读 📚

若在你的研究中使用了本仓库,请参考 CITATION.bib 中的 NeurIPS 2023 论文:

Felten, F., Alegre, L. N., et al. "A Toolkit for Reliable Benchmarking and Research in Multi-Objective Reinforcement Learning." NeurIPS 2023.

  • 环境源码:mo_gymnasium/envs/(如 deep_sea_treasure.py、fishwood.py)
  • 环境文档:docs/environments/
  • 示例与算法联调:docs/examples/morl_baselines.md

一句话总结:MO-Gymnasium 负责提供"标准答案"(多目标环境 + 解析前沿),MORL-Baselines 负责提供"考生"(MORL 算法),两者联调即可构建一套严谨、可复现的多目标强化学习基准测试。

【免费下载链接】MO-Gymnasium

Multi-objective Gymnasium environments for reinforcement learning

项目地址:https://gitcode.com/gh_mirrors/mo/MO-Gymnasium
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询