The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games 阅读笔记
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(θ)=[Bn1∑i=1B∑k=1nmin(rθ,i(k)Ai(k),clip(rθ,i(k),1−ϵ,1+ϵ)Ai(k))]+δBn1∑i=1B∑k=1nS[πθ(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(ϕ)=Bn1∑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分享链接
文章中的局限性:
只考虑了合作的环境,没有竞争环境
只考虑了离散的动作空间,没有考虑连续的动作空间(如果你的任务是连续动作空间,可以自己修改为多元高斯分布的方法,在mappo原有代码上修改为连续动作空间的效果并不好)
考虑的问题中,绝大多数都只包含同质多智能体,未考虑异质多智能体
[1] 官方github仓库
[2] 文章地址
[3] 多智能体强化学习(二) MAPPO算法详解 - 小小何先生的文章 - 知乎
[4] mappo算法的代码实现
The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games 阅读笔记相关推荐
- MAPPO:The Surprising Effectiveness of MAPPO in Cooperative, Multi-Agent Games
MAPPO 论文代码 1.研究动机是什么 2.主要解决了什么问题 3.所提方法是什么 MAPPO算法细节 提升PPO性能的5个关键 4.关键结果及结论是什么 主要结论 MPE实验 SMAC实验 Han ...
- 【论文阅读】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 ...
- 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述
概述 在我之前的工作中,我自己总结了一些多智能体强化学习的算法和通俗的理解. 首先,关于题目中提到的这三个家伙,大家首先想到的就是强化学习的五件套: 状态:s 奖励:r 动作值:Q 状态值:V 策略: ...
- Low Resource ASR: The surprising effectiveness of High Resource Transliteration--低资源ASR:高资源音译的惊人效果
摘要: 从高资源语言到低资源语言的跨语言知识转移是自动语音识别(ASR)的一个重要研究问题.我们提出了一种新的转移学习策略,即利用大量高资源语言的语音进行预训练,但其文本被翻译成目标低资源语言.这种简 ...
- professor‘s great paper in multi agent system
http://people.csail.mit.edu/brooks/papers/AIM-864.pdf
- multi agent system university of liverpool professional presentation
https://cgi.csc.liv.ac.uk/~trp/COMP310.html
- 2020 AAAI-GMAN: A Graph Multi‐Attention Network for Traffic Prediction阅读笔记(翻译)
注明:本文仅是翻译了论文,主要目的方便日后温故
- Gated Mechanism for Attention Based Multi Modal Sentiment Analysis 阅读笔记
GATED MECHANISM FOR ATTENTION BASED MULTIMODAL SENTIMENT ANALYSIS 阅读笔记 最近在跟进多模态的情感分析发现多模态榜一又被刷下来了,这篇 ...
- 多智能体强化学习思路整理
多智能体强化学习算法思路整理 目录 摘要 背景和意义 研究背景 强化学习 多智能体强化学习与博弈论基础 研究意义 问题与挑战 问题分类 问题分析 环境的不稳定性与可扩展性的平衡 部分可观测的马尔可夫决 ...
最新文章
- nginx技术(2)nginx的配置详解
- checkpoint技术mysql_认识MySQL中的Checkpoint技术
- 学Android开发 这19个开发工具助你顺风顺水
- 一款名为Blue_Moon的后台模板的初步研究
- boost::signals2模块实现连接类测试
- web服务器 http请求返回 不同返回码的 对应 语意
- Android防盗系统推荐
- Python高级——with上下文管理器
- 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)
- Deformable CNNs论文笔记
- Hibernate学习基本配置
- mysql开发平台_搭建mysql编程平台
- 数据结构与算法——线性表的链式储存结构
- matlab飞思卡尔工具包,IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解-迅为电子...
- 认识c语言程序,认识C语言
- 创建一个简单OIO模式的socket服务端
- Oracle中和计算总工资,Oracle求部门员工工资占总工资的比率
- B - 阿克曼函数(记忆化搜索(啊呸))
- hdu6441 Find Integer 求勾股数 费马大定理
- 【Linux】创建、修改和删除用户(useradd | usermod | userdel)
热门文章
- Nexus5X Root分享
- matlab计算最小二乘问题,MATLAB求解方程的最小二乘解问题
- R语言开发之协方差分析了解下
- 英语写作中“增加”、“减少”的表达总结
- 无界鼠标,更新系统后连不上
- 高中数学导数极值点偏移专题(二)
- ITK入门教程(7)ITK定义原点和间距
- 查找谷歌已安装的浏览器插件的包所在位置和打包扩展程序
- python中repr_python中__str__和__repr__的区别
- windows和Linux比较