【Mava】一个分布式多智能体强化学习研究框架

深度强化学习实验室

官网:http://www.neurondance.com/

论坛http://deeprl.neurondance.com/

来源:https://github.com/instadeepai/Mava

【Mava】一个分布式多智能体强化学习研究框架_第1张图片

Mava 是一个用于构建多智能体强化学习 (MARL) 系统的库。Mava 为 MARL 提供了有用的组件、抽象、实用程序和工具,并允许对多进程系统训练和执行进行简单的扩展,同时提供高度的灵活性和可组合性。 

注意:我们发布 Mava 的首要目的是使更广泛的社区受益,并使研究人员更容易在 MARL 上工作。但是,我们认为此版本是 Mava 的 Beta 版。与许多框架一样,Mava 是(并且可能永远保持)正在进行中的工作,并且团队旨在在未来的版本中提供和改进更多内容。从结合最新的研究和创新到使框架更加稳定、健壮和经过良好测试。此外,我们承诺并将尽最大努力保持一切正常运行,并尽可能使使用 Mava 的体验愉快。在 Beta 开发期间,可能会发生重大更改以及重大设计更改(如果我们认为这可以大大提高框架的可用性),但这些将在被合并到代码库之前进行清楚地传达。也不可避免地可能存在我们不知道的错误,并且事情可能会不时中断。我们将尽最大努力修复这些错误并尽快解决任何问题。

Systems and the Executor-Trainer Paradigm

Mava 框架的核心是系统的概念。系统是指完整的多智能体强化学习算法,由以下特定组件组成:执行器、训练器和数据集。

“执行器(Executor)”是系统的一部分,它与环境交互,为每个智能体采取行动并观察下一个状态作为观察集合,系统中的每个代理一个。本质上,执行器是 Acme 中 Actor 类的多智能体版本,它们本身是通过向执行器提供策略网络字典来构建的。Trainer 负责从最初从 executor 收集的 Dataset 中采样数据,并更新系统中每个 agent 的参数。因此,Trainers 是 Acme 中 Learner 类的多智能体版本。数据集以字典集合的形式存储了执行者收集的所有信息,用于操作、观察和奖励,并带有与各个智能体 ID 对应的键。基本系统设计如上图左侧所示。可以查看系统实现的几个示例

Distributed System Training

Mava 出于同样的原因分享了 Acme 的大部分设计理念:为新研究(即构建新系统)提供高水平的可组合性,以及使用相同的底层多智能体RL 系统代码。Mava 使用 Launchpad 来创建分布式程序。在 Mava 中,系统执行器(负责数据收集)分布在多个进程中,每个进程都有一个环境副本。每个进程收集和存储数据,训练器使用这些数据来更新每个执行器中使用的所有参与者网络的参数。这种分布式系统训练方法如图所示。


Supported Environments

  • PettingZoo

  • SMAC

  • Flatland

  • 2D RoboCup

  • OpenSpiel

【Mava】一个分布式多智能体强化学习研究框架_第2张图片

System Implementations

【Mava】一个分布式多智能体强化学习研究框架_第3张图片

【Mava】一个分布式多智能体强化学习研究框架_第4张图片

Usage

为了了解如何使用 Mava 系统,我们提供了以下启动分布式 MADQN 系统的简化示例。

# Mava imports
from mava.systems.tf import madqn
from mava.components.tf.architectures import DecentralisedPolicyActor
from . import helpers

# Launchpad imports
import launchpad

# Distributed program
program = madqn.MADQN(
    environment_factory=helpers.environment_factory,
    network_factory=helpers.network_factory,
    architecture=DecentralisedPolicyActor,
    num_executors=2,
).build()

# Launch
launchpad.launch(
    program,
    launchpad.LaunchType.LOCAL_MULTI_PROCESSING,
)

程序的前两个参数是环境和网络工厂函数。这些辅助函数负责为系统创建网络,在不同的计算节点上初始化它们的参数,并为每个执行器提供环境的副本。下一个参数 num_executors 设置要运行的执行程序进程数。构建程序后,我们将其提供给 Launchpad 的启动函数并指定启动类型以执行本地多处理,即在单台机器上运行分布式程序。向上或向下扩展只是调整执行程序进程数量的问题。

如需更深入的了解,请查看我们的 examples 子目录中的详细工作代码示例,这些示例展示了如何实例化一些 MARL 系统和环境。

Components

Mava 提供了多个组件来支持 MARL 系统的设计,例如不同的系统架构和模块。您可以更改架构以支持代理之间不同形式的信息共享,或添加模块以增强系统功能。下面给出了一些常见架构的示例。

【Mava】一个分布式多智能体强化学习研究框架_第5张图片

【Mava】一个分布式多智能体强化学习研究框架_第6张图片

Installation

已经在 Python 3.6、3.7 和 3.8 上测试了 mava。

Python虚拟环境 如果不使用 docker,我们强烈建议使用 Python 虚拟环境来管理您的依赖项,以避免版本冲突。请注意,由于 Launchpad 仅支持基于 Linux 的操作系统,因此使用 python 虚拟环境仅适用于以下情况

python3 -m venv mava
source mava/bin/activate
pip install --upgrade pip setuptools

pip install id-mava
pip install id-mava[reverb]

pip install id-mava[tf]
pip install id-mava[launchpad]

pip install id-mava[envs]
pip install id-mava[flatland]

pip install id-mava[open_spiel]
# 对于星际争霸 II 安装,必须根据您的操作系统单独安装。 要安装星际争霸 II ML 环境和相关包,请按照 PySC2 上的说明安装星际争霸 II 游戏文件。 请确保您在星际争霸 II 地图目录中提取了所需的游戏地图(适用于 PySC2 和 SMAC)。 完成此操作后,您可以为单代理案例 (PySC2) 和多代理案例 (SMAC) 安装软件包。
pip install pysc2
pip install git+https://github.com/oxwhirl/smac.git

#对于 2D RoboCup 环境,本地安装仅使用 Ubuntu 18.04 操作系统进行了测试。 可以通过在 Mava python 虚拟环境中运行 RoboCup bash 脚本来执行安装。
./install_robocup.sh

引用

@article{pretorius2021mava,
    title={Mava: A Research Framework for Distributed Multi-Agent Reinforcement Learning},
    author={Arnu Pretorius and Kale-ab Tessera and Andries P. Smit and Kevin Eloff
    and Claude Formanek and St John Grimbly and Siphelele Danisa and Lawrence Francis
    and Jonathan Shock and Herman Kamper and Willie Brink and Herman Engelbrecht
    and Alexandre Laterre and Karim Beguir},
    year={2021},
    journal={arXiv preprint arXiv:2107.01460},
    url={https://arxiv.org/pdf/2107.01460.pdf},
}

Github:  https://github.com/instadeepai/Mava

总结1:周志华 || AI领域如何做研究-写高水平论文

总结2:全网首发最全深度强化学习资料(永更)

总结3:  《强化学习导论》代码/习题答案大全

总结4:30+个必知的《人工智能》会议清单

总结52019年-57篇深度强化学习文章汇总

总结6:   万字总结 || 强化学习之路

总结7:万字总结 || 多智能体强化学习(MARL)大总结

总结8:深度强化学习理论、模型及编码调参技巧

第114篇:使用新的物理模拟引擎加速强化学习

第113篇:如何降低深度强化学习研究的计算成本

第112篇:基于Novelty-Pursuit的高效探索方法

第111篇:Reward is enough奖励机制。

第110篇:163篇ICML2021强化学习领域论文汇总

第109篇:【Easy-RL】200页强化学习总结笔记

第108篇:清华大学李升波老师《强化学习与控制》

第107篇:阿里巴巴2022届强化学习实习生招聘

第106篇:奖励机制不合理:内卷,如何解决?

第105篇:FinRL: 一个量化金融自动交易RL库

第104篇:RPG: 通过奖励发现多智能体多样性策略

第103篇:解决MAPPO(Multi-Agent PPO)技巧

第102篇:82篇AAAI2021强化学习论文接收列表

第101篇:OpenAI科学家提出全新强化学习算法

第100篇:Alchemy: 元强化学习(meta-RL)基准环境

第99篇:NeoRL:接近真实世界的离线强化学习基准

第98篇:全面总结(值函数与优势函数)的估计方法

第97篇:MuZero算法过程详细解读

第96篇:  值分布强化学习(Distributional RL)总结

第95篇:如何提高"强化学习算法模型"的泛化能力?

第94篇:多智能体强化学习《星际争霸II》研究

第93篇:MuZero在Atari基准上取得了新SOTA效果

第92篇:谷歌AI掌门人Jeff Dean获冯诺依曼奖

第91篇:详解用TD3算法通关BipedalWalker环境

第90篇:Top-K Off-Policy  RL论文复现

第89篇:腾讯开源分布式多智能TLeague框架

第88篇:分层强化学习(HRL)全面总结

第87篇:165篇CoRL2020 accept论文汇总

第86篇:287篇ICLR2021深度强化学习论文汇总

第85篇:279页总结"基于模型的强化学习方法"

第84篇:阿里强化学习领域研究助理/实习生招聘

第83篇:180篇NIPS2020顶会强化学习论文

第82篇:强化学习需要批归一化(Batch Norm)吗?

第81篇:《综述》多智能体强化学习算法理论研究

第80篇:强化学习《奖励函数设计》详细解读

第79篇: 诺亚方舟开源高性能强化学习库“刑天”

第78篇:强化学习如何tradeoff"探索"和"利用"?

第77篇:深度强化学习工程师/研究员面试指南

第76篇:DAI2020 自动驾驶挑战赛(强化学习)

第75篇:Distributional Soft Actor-Critic算法

第74篇:【中文公益公开课】RLChina2020

第73篇:Tensorflow2.0实现29种深度强化学习算法

第72篇:【万字长文】解决强化学习"稀疏奖励"

第71篇:【公开课】高级强化学习专题

第70篇:DeepMind发布"离线强化学习基准“

第69篇:深度强化学习【Seaborn】绘图方法

第68篇:【DeepMind】多智能体学习231页PPT

第67篇:126篇ICML2020会议"强化学习"论文汇总

第66篇:分布式强化学习框架Acme,并行性加强

第65篇:DQN系列(3): 优先级经验回放(PER)

第64篇:UC Berkeley开源RAD来改进强化学习算法

第63篇:华为诺亚方舟招聘 || 强化学习研究实习生

第62篇:ICLR2020- 106篇深度强化学习顶会论文

第61篇:David Sliver 亲自讲解AlphaGo、Zero

第60篇:滴滴主办强化学习挑战赛:KDD Cup-2020

第59篇:Agent57在所有经典Atari 游戏中吊打人类

第58篇:清华开源「天授」强化学习平台

第57篇:Google发布"强化学习"框架"SEED RL"

第56篇:RL教父Sutton实现强人工智能算法的难易

第55篇:内推 ||  阿里2020年强化学习实习生招聘

第54篇:顶会 || 65篇"IJCAI"深度强化学习论文

第53篇:TRPO/PPO提出者John Schulman谈科研

第52篇:《强化学习》可复现性和稳健性,如何解决?

第51篇:强化学习和最优控制的《十个关键点》

第50篇:微软全球深度强化学习开源项目开放申请

第49篇:DeepMind发布强化学习库 RLax

第48篇:AlphaStar过程详解笔记

第47篇:Exploration-Exploitation难题解决方法

第46篇:DQN系列(2): Double DQN 算法

第45篇:DQN系列(1): Double Q-learning

第44篇:科研界最全工具汇总

第43篇:起死回生|| 如何rebuttal顶会学术论文?

第42篇:深度强化学习入门到精通资料综述

第41篇:顶会征稿 ||  ICAPS2020: DeepRL

第40篇:实习生招聘 || 华为诺亚方舟实验室

第39篇:滴滴实习生|| 深度强化学习方向

第38篇:AAAI-2020 || 52篇深度强化学习论文

第37篇:Call For Papers# IJCNN2020-DeepRL

第36篇:复现"深度强化学习"论文的经验之谈

第35篇:α-Rank算法之DeepMind及Huawei改进

第34篇:从Paper到Coding, DRL挑战34类游戏

第33篇:DeepMind-102页深度强化学习PPT

第32篇:腾讯AI Lab强化学习招聘(正式/实习)

第31篇:强化学习,路在何方?

第30篇:强化学习的三种范例

第29篇:框架ES-MAML:进化策略的元学习方法

第28篇:138页“策略优化”PPT--Pieter Abbeel

第27篇:迁移学习在强化学习中的应用及最新进展

第26篇:深入理解Hindsight Experience Replay

第25篇:10项【深度强化学习】赛事汇总

第24篇:DRL实验中到底需要多少个随机种子?

第23篇:142页"ICML会议"强化学习笔记

第22篇:通过深度强化学习实现通用量子控制

第21篇:《深度强化学习》面试题汇总

第20篇:《深度强化学习》招聘汇总(13家企业)

第19篇:解决反馈稀疏问题之HER原理与代码实现

第18篇:"DeepRacer" —顶级深度强化学习挑战赛

第17篇:AI Paper | 几个实用工具推荐

第16篇:AI领域:如何做优秀研究并写高水平论文?

第15篇:DeepMind开源三大新框架!

第14篇:61篇NIPS2019DeepRL论文及部分解读

第13篇:OpenSpiel(28种DRL环境+24种DRL算法)

第12篇:模块化和快速原型设计Huskarl DRL框架

第11篇:DRL在Unity自行车环境中配置与实践

第10篇:解读72篇DeepMind深度强化学习论文

第9篇:《AutoML》:一份自动化调参的指导

第8篇:ReinforceJS库(动态展示DP、TD、DQN)

第7篇:10年NIPS顶会DRL论文(100多篇)汇总

第6篇:ICML2019-深度强化学习文章汇总

第5篇:深度强化学习在阿里巴巴的技术演进

第4篇:深度强化学习十大原则

第3篇:“超参数”自动化设置方法---DeepHyper

第2篇:深度强化学习的加速方法

第1篇:深入浅出解读"多巴胺(Dopamine)论文"、环境配置和实例分析

【Mava】一个分布式多智能体强化学习研究框架_第7张图片

你可能感兴趣的:(分布式,编程语言,python,人工智能,java)