欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 【MARL】MAT论文阅读笔记

【MARL】MAT论文阅读笔记

2024/12/23 20:41:45 来源:https://blog.csdn.net/weixin_56760882/article/details/144247477  浏览:    关键词:【MARL】MAT论文阅读笔记

文章目录

  • 前言
  • 一、如何产生这个想法
    • (TRPO -> ) PPO -> MAPPO -> HAPPO -> MAT
  • 二、多智能体优势值分解定理
  • 三、transformer 在MAT的应用
  • 四、伪代码简述
  • 五、实验效果


前言

正好有节课让我们调研最新的自己的方向的新论文,找到一篇自己觉得比较可行,效果看起来比较好的论文CommFormer
https://arxiv.org/pdf/2411.00382,发现他又是基于之前的论文改进的,于是就查到了MAT和HAPPO以及MAPPO。
好巧不巧,发现他们的代码几乎也是一体同源,后根据对论文里发表作者的大学查看,推测估计这几篇都是一个团队里的人发表的。

由于时间有限(下周讲PPT),虽然都看懂了文章,但是对于代码的修改止步于MAT,复刻完MAT了但是应该还有漏洞,以至于现在的效果不太好,故这里先讲下MAT的论文。

MAT论文:https://arxiv.org/pdf/2205.14953
MAT代码:github代码
MAT的效果展示十分不错。

以下不对论文的结构进行按章节解读,按自己理解解读。
(由于本篇文章也会用于演讲,所以,可能会有一些专业术语的解释以及图解)

参考算法推导:(强烈推荐)
1.强化学习 | 策略梯度 | Natural PG | TRPO | PPO
2.强化学习 | Multi Agents | Trust Region | HATRPO | HAPPO


一、如何产生这个想法

(TRPO -> ) PPO -> MAPPO -> HAPPO -> MAT

TRPO(Trust Region Policy Optimisation 信任区域策略优化算法):原理示意图如下:
在这里插入图片描述

PPO(Proximal Policy Optimisation近端策略优化算法):工业界常用的RL算法,也是大模型RLHF(RLHF (Reinforcement Learning from Human Feedback) ,即以强化学习方式依据人类反馈优化语言模型)的基础算法。(chatgpt背后用到了RLHF)

MAPPO:https://arxiv.org/pdf/2103.01955
对于之前的研究,MAPPO,只是简单的套用CTDE范式(即:集中式训练分散式执行),并模仿MADDPG多智能体的训练算法,将PPO从单智能体拓展到多智能体MAPPO上,采用了PPO之前有论文中研究的多种有效的tricks,在星际争霸SMAC和谷歌足球google football的环境下,取得了不错的效果,文章主要贡献在于,拓展并提出了5个在使用MAPPO时的设置参数建议。

(作者给出了两套代码,一套参数共享的,一套参数不共享。(该论文第11页伪代码下方说明)
参数共享:所有智能体共享一套参数,同一个actor网络参数,critic网络参数,智能同质的情况下。
参数不共享:每个智能体都有自己的独立的一套参数,即actor网络参数,critic网络参数)

HAPPO: (H :Heterogeneous)https://arxiv.org/pdf/2109.11251
1.针对上述MAPPO缺乏理论的收敛依据,提出并证明了多智能体优势值分解引理(multi-agent advantage decomposition lemma),并借此严格证明了算法的单调改进性。
2.针对MAPPO会出现的信用分配问题,例:在参数共享下(单个智能体不知道自己对总回报贡献了多少),参数不共享下(单个智能体不知道自己动作的奖励比其他智能体动作的奖励高多少)
利用优势值分解定理,解决了MAPPO用于异构智能体时造成的次优解的问题,将其推广到异构智能体上,这也是算法名字的由来。
效果上,智能体越多,越比MAPPO好。

(该作者从TRPO严格证明->多智能体的TRPO(HATRPO)->多智能体的HAPPO,附录近10页公式)

(由此,作者只给出了参数不共享的一套代码。)

来自该论文作者的blog图:生动展示上述出现的信用分配问题
在这里插入图片描述
MAT:(Muti-Agent transformer)
由HAPPO的优势值分解定理灵感所激发。
在这里插入图片描述
作者发现,由于优势值分解定理隐含的一个想法是,需要得到前一个智能体的动作,才能更新下一个智能体的动作,于是发现这跟transformer的文本自回归生成及其类似,于是将transformer架构引入进来,将其构造成一个 序列模型建模问题(squense model)。

HAPPO的存在问题:
优势值分解定理导致的情况是在一个智能体更新完得到它的优势值,再更新下一个智能体,导致计算效率低下。
MAT针对此引入transformer,将其计算并行化,加快计算效率,将传统的RL训练模式改造成类似于transformer训练的范式。
算法取得了惊人的效果。

二、多智能体优势值分解定理

这里重点讲下优势值分解定理是什么,为什么简单将信任区域学习拓展到多智能体会失败?

在单智能体中,信任区域学习会带来策略的稳定改进,简单的引入只能导致所有智能体在自己的范围内策略改进,可能会导致团体的的回报的下降,上述的两人开车的图。

在单个的智能体的优势值:𝐴𝜋(𝑠,𝑎)≜𝑄𝜋(𝑠,𝑎)−𝑉𝜋(𝑠),减掉的baseline是状态s的状态价值函数。

简单的想法是,我想令我当前的智能体在前一个智能体动作的达到的价值上,再做出一个动作,当前动作的价值希望比上一个价值更高。
简单写法:𝐴𝜋(𝑠,𝑎1,a2) = 𝑄𝜋(𝑠,𝑎1,a2) - 𝑄𝜋(𝑠,𝑎1) (两个智能体的情况下,第二个智能体的优势值)
(那么两个智能体的情况下,第1个智能体的优势值:𝐴𝜋(𝑠,𝑎1)≜𝑄𝜋(𝑠,𝑎1)−𝑉𝜋(𝑠))

理解:两个智能体的情况下,第二个智能体的优势值 就是第二个智能体在第一个智能体已经动作完它的动作a1之后,执行动作a2的相对好坏。

拓展到多个智能体就是多智能体优势值的定义:
在这里插入图片描述
HAPPO作者又多想一步:第一个智能体的优势值为A1,第二个智能体的优势值为A2(在第一个智能体更新的基础上)。。。
所有的智能体加起来之和就是联合智能体函数了。
在这里插入图片描述
例:
在这里插入图片描述
图来自参考2

三、transformer 在MAT的应用

原transformer框架:
在这里插入图片描述
此论文的transformer框架:

在这里插入图片描述
可以看出大体的框架和本论文的transformer框架大体一致,区别在于在此论文encoder的第二个attention还是采用的是masked attention,这与实际要解码的内容有关。

在原transformer论文中, 比方说 encoder 中文 decoder英文
encoder采用自注意机制:输入源句子 : 输出语句间的语义关系
decoder的第一个masked muti-head attention: 使用 senquence masked 为了使得 decoder 不能看见未来的信息
第二个muti-head attention :未使用masked,是因为解码器需要根据源语言句子(由编码器处理后的表示)来生成目标语言句子,此时需要全面了解源语言句子的信息,因此不应限制其关注范围。

举一个小例子来展示transformer在语言模型上是如何应用的:
推理阶段:准备两个正确的句子 中文:我喜欢吃苹果 英文 i like eating apples
1.编码器输入input :我喜欢吃苹果 解码器输入:起始标记(0 或start)
中间步:编码器输出语义到解码器的第二个attention 充当K,V(键值)
2.解码器最终输出 i (根据概率选择最大)
3.编码器输入input :我喜欢吃苹果 解码器输入:i
(将输出的i当作输入给解码器,这就是为什么解码器的开头是Outputs(shift right的原因)) -- 第一个难理解的地方
4.解码器最终输出 like
5.编码器输入input :我喜欢吃苹果 解码器输入:i like
此时attention 中的mask才发挥作用:--第二个比较难理解的地方
因为上一步计算I时是没有like的信息的,所以这里要屏蔽掉
在这里插入图片描述
之后类推 ->decoder最终输出i like eating apples

在此论文:(作者有一个很棒的gif 生动展示了 transformer是怎么做的 in https://sites.google.com/view/multi-agent-transformer)
(A-C框架下RL,有一个actor,一个critic)
编码器被看作一个输出价值的价值模拟器,替代了之前的critic
解码器被看作一个输出价值的动作模拟器,替代了之前的actor

encoder采用自注意机制:输入每个智能体的状态,输出每个智能体的状态函数
decoder的第一个mask self attention:这个和transformer一样,计算第二个智能体动作时,要屏蔽掉第一个智能体的未来信息
decoder的第二个mask self attention:可能这里作者还是觉得未来的动作应该屏蔽,所以这里还是做了mask。(作者这里并没有明确表述)

四、伪代码简述

在这里插入图片描述
最后这里伪代码,我们便能知道这个算法的总体架构了
在推理阶段使用transformer来进行对环境的探索
在训练阶段,将encoder的输出当成V函数的拟合,decoder的输出当成策略的拟合,最终通过类似于PPO的算法计算损失,来进行梯度下降。

五、实验效果

实验效果嘎嘎棒,领先于之前他们团队提出的MAPPO和HAPPO。
在这里插入图片描述
并且在他们网站上有更好的视频演示。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com