本章介绍 OpenAI 2017 发表在 NIPS 上的一篇文章,主要是将 基于 AC 的 DDPG 算法进行了一系列改进,使其能够适用于传统RL 算法无法处理的复杂多智能体场景。

摘要

我们研究了将深度强化学习用于多智能体领域。首先,我们分析了传统的算法用于多智能体环境下的困难:Q-learning会受到环境不稳定性的挑战,而policy gradient方法在智能体数目增多时,会有variance变大的问题。因此,我们提出了一个actor-critic方法的变种,在考虑其他智能体的action policy的同时,能够成功地学到多智能体的协同policy。另外,我们还引入了一种训练规则,它集成了各个智能体的policy,来得到一个更加鲁棒的多智能体policy。我们展示了我们的方法相比现存方法在既合作又竞争的环境下的优势,在这种环境下, 智能体群体能够发现各种物理和信息层面上的合作策略。

算法

image.png
MADDPG 算法具有以下三点特征:

  1. 通过学习得到的最优策略,在应用时只利用局部信息就能给出最优动作。
  2. 不需要知道环境的动力学模型以及特殊的通信需求。
  3. 该算法不仅能用于合作环境,也能用于竞争环境。

MADDPG 算法具有以下三点技巧:

  1. 集中式训练,分布式执行:训练时采用集中式学习训练critic与actor,使用时actor只用知道局部信息就能运行。critic需要其他智能体的策略信息,本文给了一种估计其他智能体策略的方法,能够只用知道其他智能体的观测与动作。
  2. 改进了经验回放记录的数据。为了能够适用于动态环境,每一条信息由 📝[MADDPG]Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments - 图2 组成, 📝[MADDPG]Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments - 图3 表示每个智能体的观测。
  3. 利用策略集合效果优化(policy ensemble):对每个智能体学习多个策略,改进时利用所有策略的整体效果进行优化。以提高算法的稳定性以及鲁棒性。

其实MADDPG本质上还是一个DPG算法,针对每个智能体训练一个需要全局信息的Critic以及一个需要局部信息的Actor,并且允许每个智能体有自己的奖励函数(reward function),因此可以用于合作任务或对抗任务。并且由于脱胎于DPG算法,因此动作空间可以是连续的。

总结

MADDPG 是 OpenAI 提出的解决多智能体在竞争、合作以及竞争合作同时存在的复杂环境中学习适应的算法,其主要思想是采用 Centralized training with decentralized execution 的构架进行训练,即训练 Agent 时给予 Critic 更多的信息(其他 Agent 的 Observation 以及 Action 信息),而在测试时去掉 Critic 部分,使 Agent 在得到充分的训练之后可以只通过Actor就可以自己通过即时环境获取自己下一步的动作。通过获得额外的信息可以避免像 Q-Learning、Policy Gradient 等单 Agent 算法在多 Agent 复杂环境下由于只能获取自己的状态和动作而使得环境是非稳定、动态的问题,MADDPG 使得每 个Agent 所面临的环境仍然可以视为稳定的。

本文以比较直接的形式将 DDPG 算法扩展到多智能体强化学习中,通过“集中式训练分布式执行”的思路,计算出每个智能体的最优策略。个人觉得在论文贡献上,其仿真实验的重要性远大于算法设计的本身。
此外,当智能体数量比较大的时候,该算法的计算规模将会非常大。因为每个智能体都对应两个 actor 网络(另一个是 target actor 网络)和两个 critic 网络(另一个是 target critic 网络)。如果再加上对其它智能体策略的估计,或者策略集合的训练,更是如此。

参考

  1. MADDPG的理解
  2. MADDPG翻译
  3. 多智能体强化学习入门(四)——MADDPG算法
  4. MADDPG:Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments
  5. OpenAI-Maddpg原理与实现
  6. MADDPG多智能体场景的Pytorch实现

About

[Homepage]
[PDF]
[Code]