强化学习(六):Shared Experience Actor-Critic for Multi-Agent Reinforcement Learning论文解读,附源码

强化学习(六):Shared Experience Actor-Critic for Multi-Agent Reinforcement Learning论文解读,附源码

链接:https://pan.baidu.com/s/1EhDJxQ0FATflAVF8NS2hEA
提取码:8888

作用采用的框架为Pytorch,具体需要的第三方库可以在压缩包中requirement.txt文档查看。下述为我对论文的理解,对摘要以及正文的内容进行了简化,并且主要解读了Multi-Robot Warehouse环境,如有不对,欢迎指正。

Shared Experience Actor-Critic for Multi-Agent Reinforcement Learning

摘要:

本文提出了一种在稀疏奖励环境(environments with sparse rewards)下,通过在agent之间共享经验来进行有效探索的方法。该算法称之为Shared Experience Actor-Critic(SEAC),通过结合不同agent的梯度在AC框架中应用经验分享机制。并且结果表明该方法可以以更少的学习步骤来获得更高的回报。并且跟几个前沿的方法进行了对比。

正文:

作者在这篇论文中提出了一种有效的multi-agents强化学习方法,在ageng之间通过共享经验。

Introduction:

图1所示的例子,是一个multi-agents的游戏,其中两个agents必须同时抵达一个目标位置,这个游戏的主要难点在于因为两个agents的位置是随机的,一般情况下总有一个agent离目标点更近,这就要求该agent在抵达目标点之前徘徊一段时间才能使得与另一个agent同时抵达目标点。

在这里插入图片描述

作者分析:两个agents利用它们的集体经验在一个回合成功之后,从两个不同的角度去学习这次成功的经验。这种经验分享可以使得agent在学习过程中学习速度比较接近(后面会说这个具体有什么用),可以显著的加快学习速度并且最终获得的回报更高。

作者提出的SEAC算法将基于agent经验计算的梯度与基于其它agent经验计算的加权梯度相结和来更新agent的actor和critic参数。

Related Work:

1.集中训练和分散执行(Centralised Training with Decentralised Execution):SEAC不会像MADDPG等算法只学习agent自己尝试过的action,而是通过经验共享的机制学习所有agents都尝试过的动作,这就是集中训练;然后再每个agent单独执行,即分散执行;

2.教学(Agents Teaching Agents):这一段我的理解是类似于老师和学生一般,采用一个teacher-agent来向其他student-agents共享经验,这个思想跟A3C很像;

3.从示例中学习(Learning from Demonstrations):这一段的意思大概是为了在多机器人强化学习(MARL)中加速和同步训练进度,可以使用以前生成的agent行驶轨迹来学习,在SEAC中是通过multi-agents系统并行学习agent生成其他agent的轨迹;

4.分布式强化学习(Distributed Reinforcement Learning):将多个agents的action收集并在单个learner上进行学习优化,然后进行网络参数、observation的交换,这样做可以打破数据间的相关性,但这样做并没有解决MARL中的同步和样本效率的问题;

5.群里训练(Population-play):作者在这里提到他们只训练了一组agents集的数据以避免训练多组agents的数据产生的巨大计算成本。

Technical Preliminaries:

这一段主要是对价值函数等进行更新,具体的函数推导可以看附录C。

Shared Experience Actor-Critic:

假设在某个环境中agents的局部策略梯度为所有的agents提供了有效的学习方向。这说明某一个agent可以从其他agents的成功经验中学习而不必像其他agents一样要拥有reward。

每一个agent都有自己on-policy的行驶轨迹。通常强化学习只会使用每个agent自己的轨迹来更新网络。因为作者在这篇文章中提出同时也使用其他agents的off-policy轨迹,但由于其他agents的轨迹是off-policy的,所以需要对样本进行抽样处理。

由于神经网络的权值初始化是随机的,每个agent都是根据不同策略产生的经验进行训练的,导致探索更加多样化。

在这里插入图片描述

Experiments:

作者在四种不同的稀疏奖励环境(Predator Prey、SMAC -3 marines、Level-Based Foraging、Multi-Robot Warehouse)中进行了实验,并且将SEAC与IAC、SNAC以及三个前沿的MARL算法(MADDPG、QMIX、ROMA)进行了比较。

SEAC与IAC、SNAC对比:IAC是每一个agent都有一个AC,只使用自己的经验单独训练;SNAC因为采用统一的策略,并且各自遵循该策略。在训练过程中利用策略和值损失梯度的总和来优化共享参数,因此不需要重要性抽样,因为所有的轨迹的策略都是一样的。而SEAC每一个agent的策略都不一样,每一个agent使用其他agents的轨迹进行训练时需要进行重要性抽样,而且使用的经验是群体的。

实验结果(仅分析Multi-Robot Warehouse):

下图展示了在Multi-Robot Warehouse中的测试结果,测试难度由易到难。

在这里插入图片描述
在RWARE中,IAC和SNAC在难度更大的任务中获得的回报比SEAC低,在最难的任务中,SEAC获得的回报比IAC高70%,比SNAC高160%,并且比IAC收敛的更快。

结果分析:

由于agent在经验分享时以相似的速度进行学习,再加上灵活制定不同的策略以便于多agents之间的协调,SEAC能够得到更高的回报。并且SEAC可以像SNAC一样快速地学习是因为合并的局部梯度可以指引一个非常好的学习方向。但是SNAC由于使用了相同的策略,这限制了不同agent之间的协调能力,而SEAC在这点上进行了改进。

而IAC比SEAC开始学习的时间要慢,这是因为agents需要更长的探索实践,当它们开始学习时,往往是一个agent先开始学习,其它的agents后面再赶上,这导致了较低的学习效率。

作者发现,在四个测试环境中,agent以不同的速度学习对整体是不利的。比如在RWARE中,一个agent通过自己交付所有的任务而会使得其他agents的学习变得困难;在其他三个环境也是一样的。

Appendix:

Multi-Robot Warehouse Environments:

RWARE模拟了一个由机器人移动和交付任务的物流仓库。机器人载货架并将其运输到工作站。然后放下货物后再将空货架找个空位置放回,然后才能拿起新的货架。这是该环境中的一个难点。

agent的动作共有五类:前进、左转、右转、载起货架、放下货架;

agent可观察到的范围为3×3的栅格;

agent将货架运输到工作站获得的reware=1;

当agent不携带货架时,它们可以移动到货架下面;但是当agent携带货架时,它们只能走图中的走廊。

在这里插入图片描述
物流仓库的尺寸共有四种:极小(10×11)、小(10×20)、中(16×20)、大(16×29);agent的数量为N,需要运输的货架数量为R。默认R=N,环境简单的情况下R=2N;环境困难的情况下R=N/2。

R越小,奖励越稀疏,挑战越难。

Additional Experimental Details:

SEAC采用n步返回和并行采样环境。实验中使用的超参数如下表所示:

在这里插入图片描述
Shared Experience Q-Learning:

这里是作者将经验分享机制用在DQN上。结果分析对于off-policy的Q-Learning中进行经验分享确实能提高性能,但效果没有AC好。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值