MO-Gymnasium是一个开源Python库,用于开发和比较多目标强化学习算法。它提供了一个标准API,用于学习算法与环境之间的通信,以及一套符合该API的标准环境。本质上,这些环境遵循标准的Gymnasium API,但返回的奖励是以numpy数组形式的向量化奖励。
文档网站位于mo-gymnasium.farama.org,我们还有一个公共的discord服务器(我们也用它来协调开发工作),你可以在这里加入:https://discord.gg/bnJ6kubTg6。
环境
MO-Gymnasium包括来自MORL文献的环境,以及经典环境的多目标版本,如MuJoco。 完整的环境列表可在这里查看。
安装
要安装MO-Gymnasium,请使用:
pip install mo-gymnasium
这不包括所有环境系列的依赖项(有些在某些系统上安装可能会有问题)。你可以像这样为一个系列安装这些依赖项 pip install "mo-gymnasium[mujoco]"
,或者使用 pip install "mo-gymnasium[all]"
来安装所有依赖项。
API
与Gymnasium一样,MO-Gymnasium API将环境建模为简单的Python env
类。创建环境实例并与之交互非常简单 - 这里是一个使用"minecart-v0"环境的例子:
import gymnasium as gym
import mo_gymnasium as mo_gym
import numpy as np
# 它遵循原始的Gymnasium API ...
env = mo_gym.make('minecart-v0')
obs, info = env.reset()
# 但vector_reward是一个numpy数组!
next_obs, vector_reward, terminated, truncated, info = env.step(your_agent.act(obs))
# 可选地,你可以使用LinearReward包装器对奖励函数进行标量化
env = mo_gym.LinearReward(env, weight=np.array([0.8, 0.2, 0.2]))
关于多目标MDP(MOMDP)和其他MORL定义的详细信息,请参见多目标强化学习和规划的实用指南。
值得注意的相关库
MORL-Baselines是一个包含各种MORL算法实现的仓库,由MO-Gymnasium的相同作者创建。它依赖于MO-Gymnasium API,并展示了包装器和环境使用的各种示例。
环境版本控制
MO-Gymnasium为了可重现性原因保持严格的版本控制。所有环境都以"-v0"这样的后缀结尾。当对环境进行可能影响学习结果的更改时,数字会增加1,以防止潜在的混淆。
开发路线图
我们的未来开发路线图可在此处查看:https://github.com/Farama-Foundation/MO-Gymnasium/issues/66。
项目维护者
项目经理:Lucas Alegre和Florian Felten。
这个项目的维护也得到了更广泛的Farama团队的贡献:farama.org/team。
引用
如果你在研究中使用了这个仓库,请引用:
@inproceedings{felten_toolkit_2023,
author = {Felten, Florian and Alegre, Lucas N. and Now{\'e}, Ann and Bazzan, Ana L. C. and Talbi, El Ghazali and Danoy, Gr{\'e}goire and Silva, Bruno C. {\relax da}},
title = {A Toolkit for Reliable Benchmarking and Research in Multi-Objective Reinforcement Learning},
booktitle = {Proceedings of the 37th Conference on Neural Information Processing Systems ({NeurIPS} 2023)},
year = {2023}
}