“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
地址:https://www.zhihu.com/people/zhu-yu-qi-21
文章来自ICLR 2021:RODE: Learning Roles to Decompose Multi-Agent Tasks链接:https://arxiv.org/abs/2010.01523代码:https://github.com/TonghanWang/RODE01
RODE所解决的问题是多智能体学习过程中动作-状态空间维数过大,难以搜索的问题。RODE将联合行动空间分解为受限角色行动空间,给智能体赋予不同的角色,让智能体在更小的解空间中搜索,从而降低了问题求解复杂性。RODE学习了一个基于动作效果的角色选择器,将角色选择与具体动作解藕,从而形成了一个双层次的学习解构。角色选择器先将智能体分类到具有某一动作效果的角色,之后在缩小的原始动作空间中学习角色策略。因为角色与动作效果而不是具体动作相对应,所以学习到的策略具有泛化性。
RODE在SCII的14个地图中的10个地图上的表现优于当前最先进的MARL算法,并且对于智能体数量增加的新环境下具有良好的泛化性。02
本文的大致思路是首先学习新的动作表征,之后根据行动对环境和其他代理的影响,在动作空间中对动作进行聚类,聚类后属于同一类的动作组成同一个角色的动作空间。接下来学习一个角色选择器,其作用是对不同智能体赋予相应的角色。最后将动作选择器运用到强化学习过程中去,在一段时间内运用角色选择器对智能体进行角色分类,有了角色之后,智能体在所属角色对应动作空间内进行策略学习。
1、通过学习动作表征确定角色动作空间:整体学习流程如图1(a)所示。作者运用replay buffer 中的样本 进行监督学习。学习隐动作表征 相当于学习一个动作编码器 , ,其中 。监督学习过程是通过 , , 预测下一观测值 和回报值 。通过预测值 , 和真实值 的差值计算Loss函数值,并对网络进行更新。Loss函数的公式定义如下:
通过此监督学习,可以保证学到的隐动作表征 包含着和原有动作 一样的动作效果(状态转移&回报值)。
将动作从 映射到了 ,并在新的动作空间中,对新的动作表征用k-means进行聚类。因为新的动作表征包含着动作效果信息,所以聚到一类的动作具有相同的动作效果,因此组成同一角色的动作空间。2、学习角色选择器以及角色策略:整体学习流程如图1(b)(c)所示,(b)学习角色选择器,(c)学习角色策略。对于角色选择器(b),作者会学习agent 在观测状态为 选择每个角色 的的价值: 。具体计算公式为:
由当前智能体观测状态 生成。有了 后,仿照QMIX可以生成 ,构造损失函数为:
有了角色选择器后,可以为智能体分配相应的角色。接下来智能体在相应角色动作空间中进行搜索,学习角色策略。
学习角色策略的思想是:学习当智能体被赋予角色 时,在观测状态为 时执行动作 的价值函数 。该Q函数的计算公式为:
03
实验平台选择为星际争霸II,作者从三个方面验证了RODE的有效性,分别是:1、学习出的动作表征 能否表示出对应动作 的效果?
作者在两个minigame的地图上(corridor和3s5z_vs_3s6z)对动作表征进行学习,并将学习到的动作表征进行聚类。corridor中智能体的动作效果可以分为3类,在隐空间中观察到了三个类。3s5z_vs_3s6z因为敌人有两类,所以智能体的攻击动作可分为两种动作效果,在隐空间里也观察到了两种类。
作者将RODE与几个经典baseline的结果进行了对比,在10/14个地图上RODE比baseline的表现更好。而且在非常难的地图上达到了最好的效果。
之后作者为了测试不同部分的效果,进行了消融实验,实验结果如图5所示:
3、通过RODE学习出的角色策略是否具有泛化性,当场景发生变化后是否还适用?
作者将在corridor地图中学习到的策略移植到智能体数量更多的地图中,观测该策略在其他地图中的表现,效果如图6所示。
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“源头活水”历史文章
更多源头活水专栏文章,
请点击文章底部“阅读原文”查看
分享、在看,给个三连击呗!