Pommerman多智能体强化学习 Continual Match Based Training in Pommerman: Technical Report

文章地址: https://arxiv.org/pdf/1812.07297.pdf

​ Pommerman 是NeurIPS会议上开设的多智能体竞赛,将多智能体协作、非完全信息博弈以及持续学习等关键问题浓缩到炸弹人这款竞赛中,鼓励全世界优秀的研发人员一起参加解决技术挑战。

​ 本文是曾经在 The NeurIPS 2018 Pommerman Competition 中获得第一的团队发表的文章,主要介绍了一种基于连续匹配的的训练架构—— COnitnual Match BAsed Training (COMBAT) 。用持续学习(continual learning)的思想训练A2C智能体。

​ 先介绍一下 Pommerman 游戏环境,地图是11 * 11 的网格,有4个智能体分为位于四个角之一。每个回合,四个智能体可以执行以下六个动作之一:停止,向上,向下,向左,向右和放置炸弹。除代智能体以外,网格上的每个单元都可以是通道,木墙或刚性墙。 刚性墙和木墙都是无法通行的,而炸弹爆炸会破坏木墙。 木墙被摧毁后,有50%的空间成为通道,另外50%的空间由隐藏的道具组成。游戏中有三种道具:Extra Ammo,Extra Range和Can Kick,分别可以增加当前弹药、使其炸弹爆炸范围扩大一倍、使其踢出一枚炸弹。

​ 下图展示了COMBAT的架构。其中,种群模型(Population model) 存储了每一个群体的智能体的下标和参数;比赛排程器(Match Scheduler)会挑选出种群中的两个智能体,让它俩进行比赛,排出赛程;而比赛排程器排出来的那些赛程会在评估器(Evaluator)上异步地执行,也就是说,这里的种群可以理解为每一场炸弹人游戏中的4个智能体,排程器挑在每场游戏中挑选2个智能体进行pk(剩下的2个智能体是托),然后让每个异步的评估器来训练(Optimizer)智能体,使其收敛,并生成每个智能体的“成绩排名表”(Ranking List);最后更新各个种群中智能体的参数,并去除没有收敛的智能体和排名靠后的智能体。

​ 个人理解就是优胜劣汰,最终挑选出最强的那个智能体,俗称“养蛊”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zfEm02Rs-1574348235618)(C:\Users\朴素贝叶斯\AppData\Roaming\Typora\typora-user-images\image-20191121211229022.png)]

​ 后面补充一些相关知识。

终身学习:continual learning 和 meta learning

​ 终身学习是个非常大的领域,有很多问题有待解决。它也有很多名字,比如说lifelong learning、continual learning,continuous learning, meta-learning,和never-ending learning,他们都在试图解决终身学习不同方面的问题。通俗来讲终身学习就是可以把学到的知识积累下来,再用到将来的学习里去。对于终身学习来说,世界是开放式的。算法需要发现和解决新的问题,而不是只能解决一个给定问题,它学到的知识并不局限于已有的领域,而可以应用到新的领域上去。终身学习,首先要有持续学习的过程;另外知识一直要积累。终身学习还应有应用知识和自适应新场景的能力。它也要在开放在领域学习,它可以把没学过的东西识别出来并学习它,这么积累的知识就可以越来越多。另外还要做到learning on the job,就是在工作以后还要继续学,要learning while working。现在没有算法真正实现终身学习,现在的算法都在尝试完成这个任务的某一部分,还没有人可以做到把所有的功能都放在一个系统里面。

​ continual learning 和 meta learning,这几年不少人在做相关研究。

  • 持续学习 (continual learning)主要是在学习一系列任务时试图解决神经网络中灾难遗忘的问题。通过任务执行结果(参数学习)的增量记忆(模拟大脑),将知识应用于新的任务中。大脑的记忆分为缓慢记忆和突出强化,重要任务的神经元连接不会被覆盖。同理,在神经网络中,在学习任务之后,我们计算每个连接对于该任务的重要性。当我们学习一个新的任务时,每一个连接都按照器重要程度被保护起来,以免对其进行修改。因此有可能学习新的任务,而不必重写前面任务中学到的内容,也不会产生显着的计算成本。用数学的术语来说,我们可以把在新任务中对每个连接所附加的保护看作是由一个弹簧连接到旧的保护值,其刚度与连接的重要性成正比。
  • 元学习(meta-learning,也叫learning to learn)的要点是用很多tasks做为训练数据来训练一个meta-model,这个meta-model然后可以用于学新的task,这个新任务不需要太多的数据,学的速度上也会更快。它解决的是学习如何学习的问题。

​ 在Pommerman中,假设我们将每个任务定义为智能体希望学习的特定技能,例如学习如何捡起道具的学习任务或学习如何踢炸弹的任务。这些任务高度相关,并且可能在一次战斗中一起出现 。 因此,pommerman本身就是终身学习的环境,不会遭受灾难性的遗忘。

Population Based Training (PBT) :基于种群的训练

​ 是一种简单的异步优化方法PBT(population based training),主要用来自适应调节超参数。通常的深度学习,超参数都是凭经验预先设计好的,会花费大量精力且不一定有好的效果,特别是在深度强化学习这种非静态(non-stationary)的环境中,要想得到SOTA效果,超参数还应随着环境变化而自适应调整,比如探索率等等。这种基于种群(population)的进化方式,淘汰差的模型,利用(exploit)好的模型并添加随机扰动(explore)进一步优化,最终得到最优的模型。俗称“养蛊”。

https://www.cnblogs.com/initial-h/p/10519150.html

Pommerman多智能体强化学习 Continual Match Based Training in Pommerman: Technical Report_第1张图片

​ 友情提示:经费不足请不要轻易使用“养蛊”。

Advantage Actor-Critic(A2C)

https://www.jianshu.com/p/428b640046aa

Pommerman多智能体强化学习 Continual Match Based Training in Pommerman: Technical Report_第2张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MrZskded-1574348235621)(C:\Users\朴素贝叶斯\AppData\Roaming\Typora\typora-user-images\image-20191118151506615.png)]

Sparse Reward(稀疏回报)

https://blog.csdn.net/int1282951082/article/details/96429652

​ Pommerman 是一个典型的稀疏回报环境。

​ agent学习的过程中,常常无法及时获得回报,导致无法收敛。就像家长让小朋友写作业,小朋友可能觉得这个是负面的反馈而不去写作业(做作业让我觉得很痛苦qwq),而没有意识到以后会获得的巨大回报:写完作业后成绩提高,考上好大学,成为高富帅,从此走向巅峰赢取白富美…

​ 那么,下面介绍一下解决Sparse Reward的几种方法:

  • Reward Shaping: 把关键的一些动作强制地定义为正的reward,这样agent就不会反感这一学习行为,从而一步步走到最大的reward(写完作业就给糖吃)。
  • Curiosity Module : “兴趣是最好的老师 ” , 让agent预测做一个动作的未来的reward,从而使agent有兴趣的学习。
  • Curriculum Learning : “制定学习计划” , 人来设定agent的学习顺序,使agent以从易到难的顺序学习 。
  • 阶层式强化学习 Hierarchical RL : 由上层agent提出愿景,由最下层agent来执行动作 。

​ 本文给出的方法就是Curriculum Learning : “制定学习计划” 的方法,让炸弹人先学会炸木墙,再学会躲避爆炸和捡buff,接着学习放炸弹杀人,还有难度更高的踢炸弹来杀人。

你可能感兴趣的:(Pommerman多智能体强化学习 Continual Match Based Training in Pommerman: Technical Report)