多目标强化学习(MORL)算法的实现。
项目描述
MORL-Baselines
MORL-Baselines是一个多目标强化学习(MORL)算法库。这个仓库旨在包含PyTorch中可靠的MORL算法实现。
它严格遵循MO-Gymnasium API,与标准Gymnasium API的不同之处仅在于环境返回一个NumPy数组作为奖励。
有关多目标MDP(MOMDP)和其他MORL定义的详细信息,建议阅读多目标强化学习和规划实用指南。在基于分解的多目标强化学习:一个分类法和框架中也提供了一些MORL算法中使用的技术概述。
MO-Gymnasium和MORL-Baselines的教程也可用:
功能
- 在SER和ESR标准下实现了单策略和多策略算法。
- 所有算法都遵循MO-Gymnasium API。
- 性能将自动在Weights and Biases仪表板上报告。
- 代码的lint和格式化通过预提交钩子强制执行。
- 代码有良好的文档。
- 所有算法都自动进行了测试。
- 提供了实用函数,例如pareto剪枝、经验缓冲区等。
- 性能已进行测试并以可重复的方式报告。
- 提供超参数优化。
实现的算法
名称 | 单/多策略 | ESR/SER | 观测空间 | 动作空间 | 论文 |
---|---|---|---|---|---|
GPI-LS + GPI-PD | 多 | SER | 连续 | 离散/连续 | 论文和补充材料 |
MORL/D | 多 | / | / | / | 论文 |
Envelope Q-Learning | 多 | SER | 连续 | 离散 | 论文 |
CAPQL | 多 | SER | 连续 | 连续 | 论文 |
PGMORL 1 | 多 | SER | 连续 | 连续 | 论文 / 补充材料 |
Pareto条件网络(PCN) | 多 | SER/ESR 2 | 连续 | 离散/连续 | 论文 |
Pareto Q-Learning | 多 | SER | 离散 | 离散 | 论文 |
MO Q学习 | 单 | SER | 离散 | 离散 | 论文 |
MPMOQLearning(外部循环MOQL) | 多 | SER | 离散 | 离散 | 论文 |
乐观线性支持(OLS) | 多 | SER | / | / | 论文第3.3节 |
预期效用策略梯度(EUPG) | 单 | ESR | 离散 | 离散 | 论文 |
:warning: 一些算法功能有限。
1: 目前,PGMORL仅限于具有2个目标的环境。
2: PCN假设环境具有确定性转移。
基准测试
MORL-Baselines参与了Open RL Benchmark,该基准包含了来自流行的RL库(如cleanRL和Stable Baselines 3)的跟踪实验。
我们在MO-Gymnasium的各种环境中运行了我们算法的实验。结果可以在以下位置找到:https://wandb.ai/openrlbenchmark/MORL-Baselines。所有设置的跟踪问题都可以在#43处找到。一些关于实验协议的设计文档也可在我们的文档网站上找到。
以下是我们带有Pareto支持的仪表板示例可视化:
结构
尽可能多,这个仓库试图遵循所有算法的单文件实现规则。仓库的结构如下
examples/
包含了一组使用 MO-Gymnasium 环境与 MORL Baselines 一起使用的示例。common/
包含了重复出现的概念实现:重放缓冲区、神经网络等。有关更多详细信息,请参阅文档。multi_policy/
包含了多策略算法的实现。single_policy/
包含了单策略算法(ESR和SER)的实现。
引用项目
如果您在研究中使用了 MORL-Baselines,请引用我们的NeurIPS 2023论文
@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 Castro 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}
}
维护者
MORL-Baselines目前由Florian Felten (@ffelten) 和 Lucas N. Alegre (@LucasAlegre) 维护。
贡献
这个仓库对贡献开放,我们总是很高兴接受新的算法、错误修复或功能。如果您想做出贡献,您可以加入我们的Discord服务器并与我们讨论您的想法。您也可以直接打开一个问题或拉取请求。
致谢
- Willem Röpke,感谢他实现了Pareto Q-Learning (@wilrop)
- Mathieu Reymond,感谢他提供了PCN的原始实现。
- Denis Steckelmacher和Conor F. Hayes,感谢他们提供了EUPG的原始实现。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分布
构建分布
morl-baselines-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 54db64cf2fe455b289777e1164ee4a9961cdc8526e5eff0c65f0ab3983119844 |
|
MD5 | af3fe1e0ed767e8518f7ba5037908f44 |
|
BLAKE2b-256 | cb46746134220094d4c90433d658162e2dbc4b1caa40648d398aa30e07cc1dce |
morl_baselines-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 966db5e2a080c4b1314f6ea6ccfab42875519e5ef8a93898d01c401cbdc55642 |
|
MD5 | 05a2658d538e83ff73690c60ed882745 |
|
BLAKE2b-256 | 979b2ba5881f43de4a84177046f2527a9686c12e0574aed2c000ef1595000c6d |