跳转到主要内容

多目标强化学习(MORL)算法的实现。

项目描述

Project Status: Active – The project has reached a stable, usable state and is being actively developed. tests License Discord pre-commit Code style: black Imports: isort

Multiple policies

MORL-Baselines

MORL-Baselines是一个多目标强化学习(MORL)算法库。这个仓库旨在包含PyTorch中可靠的MORL算法实现。

它严格遵循MO-Gymnasium API,与标准Gymnasium API的不同之处仅在于环境返回一个NumPy数组作为奖励。

有关多目标MDP(MOMDP)和其他MORL定义的详细信息,建议阅读多目标强化学习和规划实用指南。在基于分解的多目标强化学习:一个分类法和框架中也提供了一些MORL算法中使用的技术概述。

MO-Gymnasium和MORL-Baselines的教程也可用: 在Colab中打开

功能

  • 在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库(如cleanRLStable Baselines 3)的跟踪实验。

我们在MO-Gymnasium的各种环境中运行了我们算法的实验。结果可以在以下位置找到:https://wandb.ai/openrlbenchmark/MORL-Baselines。所有设置的跟踪问题都可以在#43处找到。一些关于实验协议的设计文档也可在我们的文档网站上找到。

以下是我们带有Pareto支持的仪表板示例可视化:WandB仪表板

结构

尽可能多,这个仓库试图遵循所有算法的单文件实现规则。仓库的结构如下

  • 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 (121.5 kB 查看哈希值)

上传时间 源代码

构建分布

morl_baselines-1.0.0-py3-none-any.whl (143.2 kB 查看哈希值)

上传时间 Python 3

支持