MAPPO算法是PPO算法专用于多智能体环境的变体。PPO作为on-policy算法,在多智能体环境下有着与其他off-policy的算法相比有着相同的采样效率,并在大多数场景下有着更好的表现。MAPPO算法可以同时作为CTDE(集中训练,分散执行, 有集中的价值函数)算法或分散学习算法(分散的价值函数)。

名词解释:

DEC-POMDP: decentralized observable Markov decision processes

GAE: Generalized Advantage Estimation

homogeneous/heterogeneous agents: 同质/异质 智能体

文章中研究是的分散部分可观察马尔科夫决策过程 (DEC-POMDP),并假设环境中的智能体都是同质智能体并通过共享参数 θ \theta θ的策略 π θ ( a i ∣ o i ) \pi_{\theta}(a_i|o_i) πθ​(ai​∣oi​) 通过局部观察 o i o_i oi​产生动作 a i a_i ai​,并优化累积奖励函数 J ( θ ) = E a t , s t [ ∑ t γ t R ( s t , a t ) ] J(\theta)=\mathbb{E}_{a^t,s^t}[\sum_t \gamma^t R(s^t, a^t)] J(θ)=Eat,st​[∑t​γtR(st,at)].

建议一:利用值正规化来稳定值的学习.

建议二:将特定智能体的局部特征加入全局状态,并保证状态空间的维度不会变得更大.

建议三:避免使用过多的训练epoch和将数据分割为mini-batches.

训练数据的使用

PPO算法使用重要性采样来对经验进行采样重用,从而将on-policy策略转换为off-policy策略。并用采样得到的数据用于多次epoch的训练。通常为10个epoch和每个epoch大约64个mini-batch。而在MAPPO中,频繁的采样会导致性能的下降,所以在难的任务中epoch为5,而简单的任务中为15。使用更多的数据用于估计梯度能够提高实际的性能,所以并不将mini-batch设为默认的64,而是更小(在SMAC中为2)。

建议四:为了更好的PPO算法性能,通过调整裁剪率 ϵ \epsilon ϵ 来权衡训练的稳定性和快速的收敛.

PPO裁剪

在PPO算法中,通过裁剪后的重要性比率(importance ratio)和价值损失(value loss)来限制策略和价值函数在迭代时的剧烈变化。

建议五:对于已经“死亡”的智能体,将取0的状态值和智能体的ID作为价值网络的输入.

“死亡”隐藏:在多智能体博弈中,一个智能体可能在博弈终止之前“死亡”。在多智能体策略梯度(PG)中,可以使用全局博弈状态来为“死亡”的智能体计算一个特定的全局状态。使得可以在接下来的timestep中继续使用包含已经“死亡”智能体的信息。但这样会放大学习到的价值函数(value function)的偏差(bias)。对“死亡”智能体价值的预测误差就会随着GAE的计算而累积,从而阻碍仍然“存活”智能体策略的学习。

MAPPO算法细节

MAPPO训练两个独立的神经网络: a c t o r actor actor 网络的参数为 θ \theta θ,值函数网络 c r i t i c critic critic的参数为 ϕ \phi ϕ。同质的多智能体之间可以共享同一个 a c t o r actor actor网络和 c r i t i c critic critic网络,但也可以拥有各自的 a c t o r actor actor网络和 c r i t i c critic critic网络。
c r i t i c critic critic网络表示为 V ϕ V_{\phi} Vϕ​,网络的输入为 S S S,而输出为 R \mathbb{R} R。
a c t o r actor actor 网络表示为 π θ \pi_{\theta} πθ​,输入为智能体的观察 o t ( a ) o^{(a)}_{t} ot(a)​,输出为离散动作空间中的分类分布( categorical distribution)或是在连续动作空间进行采样的多元高斯分布(Multivariate
Gaussian Distribution)的均值(mean)和标准差(standard deviation)向量。
a c t o r actor actor网络的训练目标是最大化训练目标:
L ( θ ) = [ 1 B n ∑ i = 1 B ∑ k = 1 n min ⁡ ( r θ , i ( k ) A i ( k ) , c l i p ( r θ , i ( k ) , 1 − ϵ , 1 + ϵ ) A i ( k ) ) ] + δ 1 B n ∑ i = 1 B ∑ k = 1 n S [ π θ ( o i ( k ) ) ] L(\theta)=[\frac{1}{B_n} \sum^{B}_{i=1} \sum^{n}_{k=1} \min(r^{(k)}_{\theta, i}A^{(k)}_{i},clip(r^{(k)}_{\theta,i},1-\epsilon,1+\epsilon)A^{(k)}_{i})]+\delta\frac{1}{B_n}\sum^{B}_{i=1} \sum^{n}_{k=1} S[\pi_{\theta}(o^{(k)}_{i})] L(θ)=[Bn​1​∑i=1B​∑k=1n​min(rθ,i(k)​Ai(k)​,clip(rθ,i(k)​,1−ϵ,1+ϵ)Ai(k)​)]+δBn​1​∑i=1B​∑k=1n​S[πθ​(oi(k)​)]
其中
r θ , i ( k ) = π θ ( a i ( k ) ∣ o i ( k ) ) π θ o l d ( a i ( k ) ∣ o i ( k ) ) r^{(k)}_{\theta,i}=\frac{\pi_\theta(a^{(k)}_i | o^{(k)}_{i})}{\pi_{\theta_{old}}(a^{(k)}_{i} | o^{(k)}_{i})} rθ,i(k)​=πθold​​(ai(k)​∣oi(k)​)πθ​(ai(k)​∣oi(k)​)​

A i ( k ) A^{(k)}_{i} Ai(k)​ 是使用GAE计算的优势值, S S S是策略的熵, d e l t a delta delta是熵系数超参数。
c r i t i c critic critic网络的训练目标是最小化损失函数:
L ( ϕ ) = 1 B n ∑ i = 1 B ∑ k = 1 n ( max ⁡ [ V ϕ ( s i ( k ) − R ^ i ) 2 , ( c l i p ( V ϕ ( s i ( k ) ) , V ϕ o l d ( s i ( k ) ) − ϵ ) , V ϕ o l d ( s i ( k ) ) + ϵ ) − R ^ i ) 2 ] ) L(\phi)=\frac{1}{B_n} \sum^{B}_{i=1}\sum^{n}_{k=1}(\max[V_{\phi}(s^{(k)}_{i} - \widehat{R}_{i})^{2}, (clip(V_{\phi}(s^{(k)}_{i}),V_{\phi_{old}}(s^{(k)}_{i})-\epsilon), V_{\phi_{old}}(s^{(k)}_{i})+\epsilon)-\widehat{R}_{i})^2]) L(ϕ)=Bn​1​∑i=1B​∑k=1n​(max[Vϕ​(si(k)​−R i​)2,(clip(Vϕ​(si(k)​),Vϕold​​(si(k)​)−ϵ),Vϕold​​(si(k)​)+ϵ)−R i​)2])
其中 R ^ i \widehat{R}_{i} R i​是折扣的奖励, B B B指的是batch size , n n n指的是智能体的数量。如果 c r i t i c critic critic网络使用RNN,则损失函数随时间相加,通过BPTT (Backpropagation Through time)对网络进行训练。
MAPPO算法的共同超参数

作为比较的MADDPG算法和QMIX算法的共同超参数

MAPPO,MADDPG和QMIX算法在MPE环境中使用的共同超参数

MAPPO算法的大致结构(根据light_mappo)

ProcessOn分享链接

文章中的局限性:

  1. 只考虑了合作的环境,没有竞争环境

  2. 只考虑了离散的动作空间,没有考虑连续的动作空间(如果你的任务是连续动作空间,可以自己修改为多元高斯分布的方法,在mappo原有代码上修改为连续动作空间的效果并不好)

  3. 考虑的问题中,绝大多数都只包含同质多智能体,未考虑异质多智能体


[1] 官方github仓库
[2] 文章地址
[3] 多智能体强化学习(二) MAPPO算法详解 - 小小何先生的文章 - 知乎
[4] mappo算法的代码实现

The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games 阅读笔记相关推荐

  1. MAPPO:The Surprising Effectiveness of MAPPO in Cooperative, Multi-Agent Games

    MAPPO 论文代码 1.研究动机是什么 2.主要解决了什么问题 3.所提方法是什么 MAPPO算法细节 提升PPO性能的5个关键 4.关键结果及结论是什么 主要结论 MPE实验 SMAC实验 Han ...

  2. 【论文阅读】Where Did You Learn That From? Surprising Effectiveness of Membership Inference Attacks Agains

    一.论文信息 题目:Where Did You Learn That From? Surprising Effectiveness of Membership Inference Attacks Ag ...

  3. 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述

    概述 在我之前的工作中,我自己总结了一些多智能体强化学习的算法和通俗的理解. 首先,关于题目中提到的这三个家伙,大家首先想到的就是强化学习的五件套: 状态:s 奖励:r 动作值:Q 状态值:V 策略: ...

  4. Low Resource ASR: The surprising effectiveness of High Resource Transliteration--低资源ASR:高资源音译的惊人效果

    摘要: 从高资源语言到低资源语言的跨语言知识转移是自动语音识别(ASR)的一个重要研究问题.我们提出了一种新的转移学习策略,即利用大量高资源语言的语音进行预训练,但其文本被翻译成目标低资源语言.这种简 ...

  5. professor‘s great paper in multi agent system

    http://people.csail.mit.edu/brooks/papers/AIM-864.pdf

  6. multi agent system university of liverpool professional presentation

    https://cgi.csc.liv.ac.uk/~trp/COMP310.html

  7. 2020 AAAI-GMAN: A Graph Multi‐Attention Network for Traffic Prediction阅读笔记(翻译)

    注明:本文仅是翻译了论文,主要目的方便日后温故

  8. Gated Mechanism for Attention Based Multi Modal Sentiment Analysis 阅读笔记

    GATED MECHANISM FOR ATTENTION BASED MULTIMODAL SENTIMENT ANALYSIS 阅读笔记 最近在跟进多模态的情感分析发现多模态榜一又被刷下来了,这篇 ...

  9. 多智能体强化学习思路整理

    多智能体强化学习算法思路整理 目录 摘要 背景和意义 研究背景 强化学习 多智能体强化学习与博弈论基础 研究意义 问题与挑战 问题分类 问题分析 环境的不稳定性与可扩展性的平衡 部分可观测的马尔可夫决 ...

最新文章

  1. nginx技术(2)nginx的配置详解
  2. checkpoint技术mysql_认识MySQL中的Checkpoint技术
  3. 学Android开发 这19个开发工具助你顺风顺水
  4. 一款名为Blue_Moon的后台模板的初步研究
  5. boost::signals2模块实现连接类测试
  6. web服务器 http请求返回 不同返回码的 对应 语意
  7. Android防盗系统推荐
  8. Python高级——with上下文管理器
  9. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)
  10. Deformable CNNs论文笔记
  11. Hibernate学习基本配置
  12. mysql开发平台_搭建mysql编程平台
  13. 数据结构与算法——线性表的链式储存结构
  14. matlab飞思卡尔工具包,IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解-迅为电子...
  15. 认识c语言程序,认识C语言
  16. 创建一个简单OIO模式的socket服务端
  17. Oracle中和计算总工资,Oracle求部门员工工资占总工资的比率
  18. B - 阿克曼函数(记忆化搜索(啊呸))
  19. hdu6441 Find Integer 求勾股数 费马大定理
  20. 【Linux】创建、修改和删除用户(useradd | usermod | userdel)

热门文章

  1. Nexus5X Root分享
  2. matlab计算最小二乘问题,MATLAB求解方程的最小二乘解问题
  3. R语言开发之协方差分析了解下
  4. 英语写作中“增加”、“减少”的表达总结
  5. 无界鼠标,更新系统后连不上
  6. 高中数学导数极值点偏移专题(二)
  7. ITK入门教程(7)ITK定义原点和间距
  8. 查找谷歌已安装的浏览器插件的包所在位置和打包扩展程序
  9. python中repr_python中__str__和__repr__的区别
  10. windows和Linux比较