多智能体强化学习-MAAC

引入注意力机制的actor-critic强化学习

论文链接:https://arxiv.org/pdf/1810.02912.pdf

代码链接:https://github.com/shariqiqbal2810/MAAC

摘要

本文主要思想是学习一个具有注意力机制的集中式critic。(CTDE方法中,训练时拥有上帝视角,提高学习效率,通过从所有智能体那里获得的消息进行集中学习critic,执行时各自独立决策actor),在训练期间的每个时间点动态的选择要关注的智能体,从而在具有复杂交互的多智能体环境中提高性能。(有点像MADDPG和COMA的结合体)(off-policy)

方法

将多智能体任务建模为POMDP框架 G ( S , A , O , P , R , γ ) \mathcal{G}(S,A,O,P,R,\gamma ) G(S,A,O,P,R,γ),智能体部分可观测,每个智能体学习一个策略 π i : O i → P ( A i ) \pi_i: O_i \rightarrow P(A_i) πi:OiP(Ai) π i \pi_i πi将每个智能体的观测值映射到其对应的一系列动作的分布。智能体的目标是学习一个使其期望折扣回报最大的策略: J i ( π i ) = E a 1 ∼ π 1 , . . . , a N ∼ π N , s ∼ T [ ∑ t = 0 γ t r i t ( s t , a 1 t , . . . , a N t ) ] J_i(\pi_i)=E_{a_1\sim \pi_1,...,a_N\sim \pi_N,s\sim T}[\sum_{t=0}\gamma^tr_{it}(s_t,a_{1t},...,a_{Nt})] Ji(πi)=Ea1π1,...,aNπN,sT[t=0γtrit(st,a1t,...,aNt)]

策略梯度评估:

∇ θ J ( π θ ) = ∇ θ l o g ( π θ ( a t ∣ s t ) ) ∑ t ′ = t γ t ′ − t r t ′ ( s t ′ , a t ′ ) \nabla_{\theta}J(\pi_{\theta})=\nabla_{\theta}log(\pi_{\theta}(a_t|s_t))\sum_{t'=t}\gamma^{t'-t}rt'(s_{t'},a_{t'}) θJ(πθ)=θlog(πθ(atst))t=tγttrt(st,at)

actor- critic

γ t ′ − t r t ′ ( s t ′ , a t ′ ) \gamma^{t'-t}rt'(s_{t'},a_{t'}) γttrt(st,at)会带来高方差,actor-critic的方法旨在利用except-return的函数估计来缓解这个问题,例如学习一个函数来估计给定状态,动作的excepted discounted returns,通过off-policy的TD,最小化回归损失:
L Q ( ϕ ) = E ( s , a , r , s ′ ) ∼ D [ ( Q ϕ ( s , a ) − y ) 2 ] y = r ( s , a ) + γ E a ′ ∼ π ( s ′ ) [ ( Q ( ϕ ⃗ ) ( s ′ , a ′ ) ) ] L_Q(\phi)=E_{(s,a,r,s')\sim D}[(Q_\phi(s,a)-y)^2] y=r(s,a)+\gamma E{a'\sim \pi(s')[(Q_{(\vec\phi)}(s',a'))]} LQ(ϕ)=E(s,a,r,s)D[(Qϕ(s,a)y)2]y=r(s,a)+γEaπ(s)[(Q(ϕ )(s,a))]

soft actor-critic

为了鼓励探索,避免收敛到非最优的确定性策略,提出了最大熵强化学习方法- soft value function,在策略梯度中加入熵项:
∇ θ J ( π θ ) = E s ∼ D , a ∼ π [ ∇ θ l o g ( π θ ( a ∣ s ) ) ( − α l o g ( π θ ( a ∣ s ) ) + Q ϕ ( s , a ) − b ( s ) ) ] \nabla_{\theta}J(\pi_{\theta})=E_{s\sim D,a\sim \pi}[\nabla_{\theta}log(\pi_{\theta}(a|s))(-\alpha log(\pi _{\theta}(a|s))+Q_\phi(s,a)-b(s))] θJ(πθ)=EsD,aπ[θlog(πθ(as))(αlog(πθ(as))+Qϕ(s,a)b(s))]
相应的,值函数的时序差分TD的损失函数也修改为一个新的目标:
y = r ( s , a ) + γ E a ′ ∼ π ( s ′ ) [ ( Q ϕ ⃗ ) ( s ′ , a ′ ) − α l o g ( π θ ⃗ ( a ′ ∣ s ′ ) ) ] y=r(s,a)+\gamma E_{a'\sim\pi(s')}[(Q_{\vec\phi)}(s',a')-\alpha log(\pi_{\vec\theta}(a'|s'))] y=r(s,a)+γEaπ(s)[(Qϕ )(s,a)αlog(πθ (as))]

MAAC

主要思想:利用attention机制从其他智能体的观测-动作对中选取重要的信息来构造每个智能体的critic的输入,解决扩展性问题,帮助智能体有选择性的筛选出重要的环境信息,忽略不重要的信息。
在这里插入图片描述attention:每个智能体向其他智能体查询相关的O和A,并将这些信息合并到值函数的估计中。 Q i ϕ ( o , a ) Q_i^{\phi}(o,a) Qiϕ(o,a)是由智能体i的O和A,以及其他智能体的信息贡献:
Q i ϕ ( o , a ) = f i ( g i ( o i , a i ) , x i ) Q_i^{\phi}(o,a)=f_i(g_i(o_i,a_i),x_i) Qiϕ(o,a)=fi(gi(oi,ai),xi)
o i , a i o_i,a_i oi,ai表示所有智能体的观测集合和动作集合。 f i f_i fi g i g_i gi是两层的MLP, g i g_i gi用于对智能体的观测-动作对进行embedding编码.
x i x_i xi是其他智能体贡献的加权和
x i = ∑ i ≠ j α i j v j = ∑ i   j α j h ( V g j ( o j , a j ) ) x_i=\sum_{i\ne j}\alpha_{i j} v_j=\sum_{i\ j}\alpha_j h(Vg_j(o_j,a_j)) xi=i=jαijvj=i jαjh(Vgj(oj,aj))
attention机制: α i j \alpha_{i j} αij是智能体i对智能体j的注意力权重, v j v_j vj是智能体j的观测-动作对的embedding,过程如下:首先用 g j g_j gj进行embedding编码,然后利用共享矩阵V 完成线性转换,最后进行非线性操作 h.(例如ReLU)。
α i j \alpha_{i j} αij通过比较智能体i和智能体j的embedding向量的相似性( e i , e j e_i,e_j ei,ej),得到:
α i j ∝ e x p ( e j T W k T W q e i ) \alpha_{i j} \propto exp(e_j^TW_k^TW_qe_i) αijexp(ejTWkTWqei)
其中, W q W_q Wq e i e_i ei映射为query, W k T W_k^T WkT e j e_j ej映射为key

MAAC中将来自不同attention head的贡献作为单个向量进行串联作为critic的输入,每一个head可以专注于不同智能体的混合权重。
所有的extracting 选择符,键,值( W k , W q , V W_k,W_q,V Wk,Wq,V)的权重在所有的智能体之间共享,形成一个共同的嵌入空间。这种参数共享能够在异构智能体的情况下学到共同的embedding空间。
MAAC的思想就是将其他智能体的观测-动作对先进行embedding操作然后利用注意力权重加权相加然后再与自身智能体的观测-动作对连接起来作为critic的输入,注意力权重度量了两个智能体embedding的相似程度。直观上来看,这样做能够让智能体更多地关注与自己相似的智能体,理论上来说对信息的利用率应该更高,另外通过将所有智能体的观测-动作对合并成一个单维度向量,也解决了扩展性问题。
critic更新:(和COMA类似)
由于参数共享,所有的critic一起更新以最小化联合回归损失函数:
L Q ( ψ ) = ∑ i = 1 N E ( o , a , r , o ′ ) ∼ D [ ( Q i ψ ( o , a ) − y i ) 2 ] L_Q(\psi)=\sum_{i=1}^NE_{(o,a,r,o')\sim D}[(Q_i^{\psi}(o,a)-y_i)^2] LQ(ψ)=i=1NE(o,a,r,o)D[(Qiψ(o,a)yi)2]
y i = r i + γ E a ′ ∼ π θ ⃗ ( o ′ ) [ Q i ψ ⃗ ( o ′ , a ′ ) − α l o g ( π θ ⃗ i ( a i ′ ∣ o i ′ ) ) ] y_i=r_i+\gamma E_{a'\sim \pi_{\vec{\theta}(o')}}[Q_i^{\vec{\psi}}(o',a')-\alpha log(\pi_{\vec{\theta}_i}(a_i'|o_i'))] yi=ri+γEaπθ (o)[Qiψ (o,a)αlog(πθ i(aioi))]
每个智能体策略(policy)的更新:(和COMA类似)
∇ θ i J ( π θ ) = E s ∼ D , a ∼ π [ ∇ θ i l o g ( π θ i ( a i ∣ o i ) ) ( − α l o g ( π θ i ( a i ∣ o i ) ) + Q i ϕ ( o , a ) − b ( o , a i ) ) ] \nabla_{\theta_i}J(\pi_{\theta})=E_{s\sim D,a\sim \pi}[\nabla_{\theta_i}log(\pi_{\theta_i}(a_i|o_i))(-\alpha log(\pi _{\theta_i}(a_i|o_i))+Q_i^\phi(o,a)-b(o,a_i))] θiJ(πθ)=EsD,aπ[θilog(πθi(aioi))(αlog(πθi(aioi))+Qiϕ(o,a)b(o,ai))]
b ( o , a i ) b(o,a_i) b(o,ai)用反事实基线计算优势函数,和COMA类似。
在MADDPG中,其他智能体的动作是直接从经验池回放中采样,这样可能会导致过采样,在MAAC中,所有智能体的动作都从当前策略中采样,保证智能体体能够在当前策略上进行协同。

实验部分

实验环境

在这里插入图片描述

在这里插入图片描述

1.测试算法的可扩展性,合作环境
2.测试算法处理与奖励相关信息的能力,例如足球比赛(信用分配)
在这里插入图片描述

【资源说明】 基于生物启发式算法的多智能体强化学习算法python实现源码+项目说明+模型及注释.zip ## 项目介绍: 多智能体系统(MAS)由于具有解决复杂任务的灵活性、可靠性和智能性,已被广泛地应用于不同的应用领域,如计算机网络、机器人和智能电网等。通信是多代理世界保持组织和生产的重要因素。然而,以往的多代理通信研究大多试图预先定义通信协议或采用额外的决策模块进行通信调度,这将造成巨大的通信开销,并且不能直接推广到一个大型代理集合。本文提出了一个轻量级的通信框架:**基于信息素协同机制的分布式深度Q网络算法(Pheromone Collaborative Deep Q-Network, PCDQN)**,它结合了深度Q网络和stigmergy机制。它利用stigmergy机制作为部分可观察环境下独立强化学习代理之间的间接沟通桥梁。我们证明了PCDQN框架的优越性,同时也将我们的模型转移到解决多代理路径搜索问题上。利用PCDQN框架,多代理编队能够学习适当的策略,成功地在雷区导航环境中获得最优路径。 *** ## 实验环境 ```sh Windows10操作系统,8GB内存,2核Intel Core i7-6500U pytorch-1.4.0+cpu python 3.8 ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
异构多智能体强化学习(Hetero-MARL)是指在多智能体系统中,每个智能体具有不同的能力和行为策略,通过强化学习算法进行训练和协作,以完成共同的任务或目标。与同构多智能体强化学习(每个智能体的能力和策略相同)相比,异构多智能体强化学习更具挑战性,但也更接近现实世界的应用场景。 以下是异构多智能体强化学习的一些关键特点和应用: ### 关键特点 1. **异构性**:智能体具有不同的能力和策略,可能包括不同的传感器、执行器或决策机制。 2. **协作与竞争**:智能体之间可能需要协作完成任务,也可能存在竞争关系。 3. **通信与协调**:智能体之间需要有效的通信和协调机制,以确保任务的成功完成。 4. **可扩展性**:算法需要能够在智能体数量增加时保持高效和稳定。 ### 应用场景 1. **机器人团队协作**:多个机器人协同完成任务,如物流、救援和制造等。 2. **自动驾驶**:多辆自动驾驶车辆在道路上协同行驶,避免碰撞并优化交通流量。 3. **游戏AI**:在多人游戏中,智能体需要与人类玩家或其他智能体进行互动和竞争。 4. **智能电网**:多个能源管理设备协同工作,优化能源分配和使用。 ### 主要挑战 1. **非平稳性**:由于智能体之间的互动,环境的动态变化导致策略的不稳定性。 2. **部分可观察性**:智能体通常只能观察到部分环境状态,需要进行信息共享和推理。 3. **计算复杂度**:随着智能体数量的增加,策略空间的维度急剧增加,导致计算复杂度高。 ### 常用算法 1. **MADDPG(Multi-Agent Deep Deterministic Policy Gradient)**:一种基于深度学习的策略梯度算法,适用于连续动作空间。 2. **QMIX**:一种值分解方法,将联合动作值函数分解为单个智能体值函数的组合。 3. **COMA(Counterfactual Multi-Agent)**:一种反事实策略梯度算法,考虑智能体之间的相互影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值