引入注意力机制的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:Oi→P(Ai)\pi_i: O_i \rightarrow P(A_i)πi:OiP(Ai)πi\pi_iπi将每个智能体的观测值映射到其对应的一系列动作的分布。智能体的目标是学习一个使其期望折扣回报最大的策略:Ji(πi)=Ea1∼π1,...,aN∼πN,s∼T[∑t=0γtrit(st,a1t,...,aNt)]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(πθ)=∇θlog(πθ(at∣st))∑t′=tγt′−trt′(st′,at′)\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′−trt′(st′,at′)\gamma^{t'-t}rt'(s_{t'},a_{t'})γttrt(st,at)会带来高方差,actor-critic的方法旨在利用except-return的函数估计来缓解这个问题,例如学习一个函数来估计给定状态,动作的excepted discounted returns,通过off-policy的TD,最小化回归损失:
LQ(ϕ)=E(s,a,r,s′)∼D[(Qϕ(s,a)−y)2]y=r(s,a)+γEa′∼π(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(πθ)=Es∼D,a∼π[∇θlog(πθ(a∣s))(−αlog(πθ(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)+γEa′∼π(s′)[(Qϕ⃗)(s′,a′)−αlog(πθ⃗(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,并将这些信息合并到值函数的估计中。Qiϕ(o,a)Q_i^{\phi}(o,a)Qiϕ(o,a)是由智能体i的O和A,以及其他智能体的信息贡献:
Qiϕ(o,a)=fi(gi(oi,ai),xi)Q_i^{\phi}(o,a)=f_i(g_i(o_i,a_i),x_i) Qiϕ(o,a)=fi(gi(oi,ai),xi)
oi,aio_i,a_ioi,ai表示所有智能体的观测集合和动作集合。fif_ifigig_igi是两层的MLP,gig_igi用于对智能体的观测-动作对进行embedding编码.
xix_ixi是其他智能体贡献的加权和
xi=∑i≠jαijvj=∑ijαjh(Vgj(oj,aj))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=ijαjh(Vgj(oj,aj))
attention机制:αij\alpha_{i j}αij是智能体i对智能体j的注意力权重,vjv_jvj是智能体j的观测-动作对的embedding,过程如下:首先用gjg_jgj进行embedding编码,然后利用共享矩阵V 完成线性转换,最后进行非线性操作 h.(例如ReLU)。
αij\alpha_{i j}αij通过比较智能体i和智能体j的embedding向量的相似性(ei,eje_i,e_jei,ej),得到:
αij∝exp(ejTWkTWqei)\alpha_{i j} \propto exp(e_j^TW_k^TW_qe_i)αijexp(ejTWkTWqei)
其中,WqW_qWqeie_iei映射为query,WkTW_k^TWkTeje_jej映射为key

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

实验部分

实验环境

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

多智能体强化学习-MAAC相关推荐

  1. 【四】多智能体强化学习(MARL)近年研究概览 {Learning cooperation(协作学习)、Agents modeling agents(智能体建模)}

    相关文章: [一]最新多智能体强化学习方法[总结] [二]最新多智能体强化学习文章如何查阅{顶会:AAAI. ICML } [三]多智能体强化学习(MARL)近年研究概览 {Analysis of e ...

  2. 《强化学习周刊》第40期:PMIC多智能体强化学习、Lazy-MDPs、CTDS

    No.40 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...

  3. 《强化学习周刊》第16期:多智能体强化学习的最新研究与应用

    No.16 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,多智能强化学习的研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领 ...

  4. 《强化学习周刊》第2期:多智能体强化学习(MARL)赋能“AI智能时代”

    No.02 智源社区 强化学习组 R L 学  习 研究 观点 资源 活动 关于周刊 随着强化学习研究的不断成熟,如何将其结合博弈论的研究基础,解决多智能体连续决策与优化问题成为了新的研究领域,为了帮 ...

  5. 上海交大开源训练框架,支持大规模基于种群多智能体强化学习训练

    机器之心专栏 作者:上海交大和UCL多智能体强化学习研究团队 基于种群的多智能体深度强化学习(PB-MARL)方法在星际争霸.王者荣耀等游戏AI上已经得到成功验证,MALib 则是首个专门面向 PB- ...

  6. 直播 | 帝国理工王剑虹:配电网中用多智能体强化学习进行的主动电压控制

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  7. 多智能体强化学习_基于多智能体强化学习主宰星际争霸游戏

    大家好,今天我们来介绍基于多智能体强化学习主宰星际争霸游戏这篇论文 Grandmaster level in StarCraft II using multi-agent reinforcement ...

  8. 多智能体强化学习:合作关系设定下的多智能体强化学习

    0 前言         在多智能体系统中,一个智能体未必能观测到全局状态 S.设第 i 号智能体有一个局部观测,它是S的一部分.                  我们假设所有的局部观测的总和构成了 ...

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

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

最新文章

  1. 如何在ASP.NET中用OWC绘制图表
  2. 初创公司根本没数据,增长黑客个屁
  3. ABP vNext微服务架构详细教程——结束语
  4. C++顺序创建txt文件
  5. nodejs+kafka+storm+hbase 开发
  6. mysql sql先后执行_MySQL中SQL语句执行顺序
  7. 滑动窗口的最小值问题
  8. php h5读写数据库,H5学习_番外篇_PHP数据库操作
  9. perl abs函数
  10. 0x00007FFC4480532C(opencv_world310.dll)处(位于opencv-024.exe中)引发的异常:OxC0000005:读取位置0xFFFFFFFFFF时发生访问冲突
  11. 3ds max制作宋惠乔的教程----作者: 火星时代 来源: 火星时代
  12. kewail node 短信_node.js短信接口_node.js发短信_node.js短信验证码_验证码短信代码示例_互亿无线...
  13. 兄弟7180dn拆机_兄弟DCP-7010拆机图解
  14. 如何将一个向量投影到一个平面上_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...
  15. Android 录制视频添加时间水印,Android开发教程入门
  16. 法院拍卖房产税费由谁承担
  17. 金融量化分析基础环境搭建
  18. 自学Java day18 jvav反射专题 从jvav到架构师
  19. javaweb的校园快递管理系统
  20. MySQL数据库入门【最详细的入门教学】

热门文章

  1. 【求职面试】程序员面试如何做自我介绍?
  2. 编程训练1-每天吃鸡蛋花费最少问题
  3. StringBuffer之间的比较、String和StringBuffer的比较
  4. Light OJ 1129 Consistency Checker
  5. Linux下socket编程之UDP简单实现
  6. 【Java面试题】数据库三范式
  7. 人工智能+智能运维解决方案_如何建立对人工智能解决方案的信任
  8. 全国计算机一级的分类,有关全国计算机一级
  9. 模电学习第一天--PN结梳理
  10. ROTATED REGION BASED CNN FOR SHIP DETECTION 基于旋转区域的CNN舰船检测