MAPPO 算法的深度解析与应用和实现

【论文研读】 The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games

说明:

  1. 来源:36th Conference on Neural Information Processing Systems (NeurIPS 2022) Track on Datasets and Benchmarks. 是NIPS文章,质量有保障,放心食用。
  2. 第5章节, Factors Influential to PPO's Performance,分析了各个参数对于多智能体系统的影响,其分析方法和消融实验的方法是值得学习的。

0. 摘要

PPO 属于 on-policy 的算法,所以被认为它的样本效率比较低。在多智能体的环境下,off-policy的策略被广泛使用。在这项工作中,我们仔细研究了PPO在合作多智能体设置下的性能。我们展示了基于ppo的多智能体算法在四种流行的多智能体测试平台(粒子世界环境、星际争霸多智能体挑战、Google Research Football和Hanabi挑战)中实现了惊人的强大性能,只需要最小的超参数调整,并且没有任何特定领域的算法修改或架构。重要的是,与竞争性的 off-policy 方法相比,PPO通常在最终回报和样本效率方面都具有竞争力或更好的结果。

1. Intro

我们进行了全面的实证研究,以检验PPO在四种流行的合作多智能体基准测试中的性能:多智能体粒子世界环境(MPE)[22]、星际争霸多智能体挑战(SMAC)[28]、谷歌研究足球(GRF)[19]和Hanabi挑战[3]。我们首先表明,与 off-policy 基线相比,PPO实现了强大的任务性能和具有竞争力的样本效率。

然后,我们确定了五个对PPO性能特别重要的实现因素和超参数,提供了关于这些配置因素的具体建议,并直观地说明了为什么这些建议成立。

我们在这项工作中的目的 不是提出一种新的MARL算法,而是通过经验证明,通过简单的修改,PPO可以在各种合作多智能体设置中获得强大的性能。 我们还相信,我们的建议将有助于从业者与PPO取得有竞争力的结果。

我们的贡献总结如下:

•我们证明,PPO在没有任何特定领域的算法更改或架构以及最小调优的情况下,在四个多智能体合作基准测试中实现了与off-policy 方法竞争的最终性能。(PPO 可用性的证明,实证研究)

•我们证明PPO在使用与许多off-policy 方法相当数量的样本时获得了这些强有力的结果。(推翻先前PPO样本效率不如off-policy 的普遍认知)

•我们确定并分析了在这些环境中控制PPO实际性能的五个实施和超参数因素,并就这些因素提供了最佳实践的具体建议。(消融实验对超参数的分析)

2. 相关工作

MARL算法通常分为两种框架:集中式和分散式学习。

  • 集中式方法[6]直接学习单一策略,产生所有智能体的联合动作。
  • 在分散学习中[21],每个智能体独立地优化其奖励; 这些方法可以处理一般和博弈,但即使在简单的矩阵博弈中也可能存在不稳定性[12]。
  • 集中训练和分散执行(CTDE)算法介于这两种框架之间。过去的几种CTDE方法[22,11]采用行动者-评论家结构,并学习以全局信息为输入的集中式评论家。值分解(VD)方法是另一类CTDE算法,它将联合 q 函数表示为智能体局部q函数的函数[32,27,31],并在流行的MARL基准测试中建立了最先进的结果[37,36]。

在单智能体连续控制任务中[8],非策略方法(如SAC[13])的进步导致了一个共识,即尽管它们早期取得了成功,但策略梯度(PG)算法(如PPO)的样本效率低于非策略方法。在多智能体领域也得出了类似的结论:[25]报告称,在粒子世界环境[23]和《星际争霸》多智能体挑战[28]中,多智能体PG方法(如COMA)的表现 被 MADDPG和QMix 超越 [27]。

多个并行工作研究了 PPO 在多智能体域中的使用。 [7] 经验表明,去中心化、独立的 PPO(IPPO)可以在几个硬 SMAC 地图中取得很高的成功率 - 然而,报告的 IPPO 结果总体上仍差于 QMix,并且该研究仅限于 SMAC。 [25] 对各种 MARL 算法进行了广泛的基准测试,并注意到基于 PPO 的方法通常与其他方法相比具有竞争力。 另一方面,我们的工作重点是 PPO,并在一组更全面的合作多智能体基准上分析其性能。 我们展示了 PPO 在绝大多数任务中取得了良好的结果,并识别和分析了 PPO 的不同实现和超参数因素,这些因素对其多智能体领域的性能有影响; 据我们所知,在过去的工作中,特别是在多智能体环境中,尚未对这些因素进行如此深入的研究。

我们对多智能体环境中 PPO 的实现和超参数因素的实证分析与单智能体强化学习中的策略梯度方法的研究类似[34,17,9,1]。 我们发现其中一些建议很有用,并将它们纳入我们的实施中。 在我们的分析中,我们关注的是现有文献中很大程度上没有得到充分研究的因素,或者是多智能体环境中完全独特的因素。

3. 多智能体下的PPO 架构

3.1 预备知识

我们研究具有共享奖励的分散式部分可观察马尔可夫决策过程(DEC-POMDP)[24]。关于这种类型的马尔可夫决策过程的描述如下所示:

所谓部分可观测,就是说每个智能体只能看到它周围的环境。(和这个有点不一样的是,在广告算力系统下,每个智能体的观测是全局的)

3.2 MAPPO 和 IPPO

我们在多智能体环境中实现的PPO与单智能体环境中的PPO非常相似,它通过学习一个策略πθ和一个值函数Vφ(s)来进行训练;这些函数被表示为两个独立的神经网络。值函数Vφ(s)用于方差减少,并且仅在训练过程中使用;因此,它可以接收额外的全局信息作为输入,这些信息在智能体的局部观察中不存在,使得多智能体领域中的PPO可以遵循CTDE结构。为了明确起见,我们将具有集中值函数输入的PPO称为MAPPO(多智能体PPO),将策略和值函数都使用局部输入的PPO称为IPPO(独立PPO)。需要注意的是,MAPPO和IPPO都适用于智能体共享共同奖励的环境,因为我们只关注合作环境。

通过上文,认识 IPPO和MAPPO的区别。

3.3 实现的细节

• 参数共享:在具有同质智能体的基准环境中(即智能体具有相同的观察和动作空间),我们利用参数共享;以前的研究表明,这可以提高学习的效率[5, 33],这也与我们的实证结果一致。在这些设置中,智能体共享策略和值函数的参数。附录C.2中提供了使用参数共享设置和为每个智能体学习独立参数的比较。我们指出,除了MPE中的Comm设置外,所有基准测试中的智能体都是同质的。

• 常见的实施做法:我们还采用了实施PPO的常见做法,包括广义优势估计(GAE)[29]、优势归一化和值剪辑。关于超参数搜索设置、训练细节和实施细节的完整描述详见附录C。我们的实施代码可以在https://github.com/marlbenchmark/on-policy找到。

4. 主要实验结果

5. 影响PPO性能的因素

null

6. 结论

这项工作表明,PPO(一种on-policy的策略梯度 RL 算法)在最终回报和样本效率方面都取得了强劲的成果,可与各种合作多智能体挑战的最先进方法相媲美,这表明 正确配置的 PPO 可以成为合作 MARL 任务的竞争基准。 我们还确定并分析了在这些环境中影响 PPO 性能的五个关键实施和超参数因素。 根据我们的实证研究,我们针对这些因素给出了最佳实践的具体建议。 这项工作存在一些局限性,为未来的研究指明了方向。 首先,我们的基准环境都使用离散的动作空间,都是合作的,并且在绝大多数情况下都包含同质代理。

在未来的工作中,我们的目标是在更广泛的领域测试 PPO,例如具有连续动作空间和异构代理的竞争性游戏和 MARL 问题。 此外,我们的工作本质上主要是实证性的,并没有直接分析 PPO 的理论基础。 我们相信,对我们建议的实证分析可以作为进一步分析 PPO 在 MARL 中的特性的起点。

7. 附录

7.1 算法的详情

MAPPO 训练两个独立的神经网络:参数为 θ 的行动者网络和参数为 φ 的值函数网络(称为批评家)。 如果代理是同质的,这些网络可以在所有代理之间共享,但每个代理也可以拥有自己的一对演员和评论家网络。 为了符号方便,我们在这里假设所有代理共享评论家和参与者网络。 具体来说,批评者网络(表示为 Vφ)执行以下映射:S → R。全局状态可以是特定于代理的或与代理无关的。

actor网络表示为 πθ,将代理观察 o(a) t 映射到离散动作空间中动作的分类分布,或者映射到多元高斯分布的均值和标准差向量,从中连续采样动作 行动空间。 actor 网络经过训练以最大化下面的目标:

上面目标的第一部分,目的是最大化优势,让actor朝着批评家指引的方向去走。第二部分,目的是让策略的熵最大化,也就是尽可能的分散一些,避免输出的动作分布过于集中。

这里需要注意,actor网络的输出不是一个特定的动作,而是一个分布!!!
所以接着还有从分布中抽样动作的一步。

批评家网络的目标是啥呢?

让估计的未来的回报最大化。

在上面的损失函数中,B 指的是批量大小,n 指的是代理的数量。

如果批评者和行动者网络是 RNN,则损失函数会随着时间的推移而求和,并且网络通过时间反向传播 (BPTT) 进行训练。

8. 个人思考后余留问题

Compute advantage estimate A via GAE on τ , using PopArt。这句话中GAE方法计算优势函数的原理和技术是什么。

RNN 计算的隐藏状态是如何被使用的?


原文地址:
https://arxiv.org/pdf/2103.01955.pdf
https://bair.berkeley.edu/blog/2021/07/14/mappo/

相关推荐
闻缺陷则喜何志丹7 分钟前
【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567
c++·算法·动态规划·力扣·图论·最短路·路径
Lenyiin26 分钟前
01.02、判定是否互为字符重排
算法·leetcode
鸽鸽程序猿41 分钟前
【算法】【优选算法】宽搜(BFS)中队列的使用
算法·宽度优先·队列
Jackey_Song_Odd42 分钟前
C语言 单向链表反转问题
c语言·数据结构·算法·链表
Watermelo6171 小时前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
乐之者v1 小时前
leetCode43.字符串相乘
java·数据结构·算法
A懿轩A2 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
古希腊掌管学习的神2 小时前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
云边有个稻草人2 小时前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
半盏茶香2 小时前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法