【论文笔记】Neural Auto-Curricula (NAC)

论文介绍

论文链接:https://arxiv.org/abs/2106.02745
论文代码:https://github.com/waterhorse1/nac
论文发表于NeurIPS 2021,属于多智能体强化学习领域。目前我还没有找到介绍这篇paper的相关博客。写一点自己的心得就当作是抛砖引玉了。
!

在多智能体强化学习训练过程中,常常会创建agent的种群,通过对“对手种群策略”的best response(BR)来更新迭代自身策略,如NFSP、Double Oracal等。在这种算法框架下,“与谁玩”和“如何学习BR”就成了绕不过去的点。

相比以往的工作,本文提出的NAC是一种对手选择策略,解决的是“和谁玩”这个问题。通过神经网络学习对手选择,不需要人手动设计就可以达到相比目前Sota算法(PSRO等)还要好的学习效果。

核心算法

相关知识

Meta-Game

可以简单理解成,对手是固定种群的游戏。也就是说,对手的策略可以近似认为是固定策略,该策略是所有对手策略的平均。

Meta-Solver

神经网络,细节不展开讲了。

Best Response Oracle

一旦Meta-Game被确定,对手种群固定,当前的求解目标就变成了求解该对手种群策略下的BR。

学到的新BR策略会被不断地加入到种群中,形成新的种群。

学习目标

学习目标就是策略可利用度的最小化。花体m表示可利用度,花体exp表示策略可利用度。当可利用度为0时,策略已经最优,学习过程结束。
在这里插入图片描述

通过元梯度优化元求解器

这是本文最核心的地方。因为改变了对手meta-policy的选取方式,所以反向梯度传播就成了问题,这里主要是解决梯度反传这个问题的数学方法。

基于上面可利用度最小化的那个式子,mata-solver其实就是求解:
在这里插入图片描述
这样一来,就可以用梯度下降方式进行BR的求解。

将梯度进行展开如下:
在这里插入图片描述
其中上面的第三行等式,明示了是用递归法迭代求解。

在用强化学习求解BR过程中,用到了DICE算法。DICE是一种无偏高阶梯度估计器,与自动微分完全兼容。H为trajectory的长度,⊥是pytorch.detach(),将variable参数从网络中隔离开,不参与参数更新。
在这里插入图片描述

通过ES算法求解梯度

Evolutionary Strategies(ES)版本的NAC。区别就是每次计算meta-gradient的时候,不是使用梯度求解,而是引入一些小幅度的“策略突变”,用策略突变后的期望收益来表征梯度。
在这里插入图片描述
在这里插入图片描述
这种算法的好处就在于,即使是一些不太容易用反向传播自动求导的情况,也可以用ES算法求出梯度。

算法伪代码

在这里插入图片描述

算法框图

在这里插入图片描述
这张图一开始理解起来可能会有点困难,所以我把它放到结尾再解释每一步作用(可以结合伪代码一起理解)。总的来说,算法循环部分主要在于 元博弈求解、BR求解和策略池扩张这三个模块。

图片分为上下两层。
上层体现的是meta game中种群策略不断增加的,优化目标为策略的可利用度。
元博弈求解使用下层的Meta-Solver进行计算,得到种群中各个策略的概率分布,实现解决“和谁玩”的问题。BR求解则用神经网络解决。

NAC里面解决“和谁玩”这个问题的概率分布,就是上层中央图中橙色和绿色的柱状图。
在这里插入图片描述

总结

文章核心就是解决“who to compete with”这个问题。用神经网络在对手池中进行对手策略的选取,并设计了梯度求导的办法。

具体执行时,使用MAML的方式对一个环境分布上的固定T次迭代后的Exploitability的期望优化,得到meta-solver的参数,不同的参数可以视作不同的meta-solver。

肉眼可见,该算法和PSRO的计算复杂度是在同一数量级的(大于等于,因为多了meta-policy生成这一个步骤),解决思路也是比较直观的,难点在于数学公式推导,以及和PSRO一样,非常消耗训练资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邵政道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值