[论文阅读]LDSA: Learning Dynamic Subtask Assignment in Cooperative Multi-Agent Reinforcement Learning

标题含义:LDSA: 在合作式多智能体强化学习中学习动态任务分配
文章来源:NeurIPS 2022
原文链接:https://arxiv.org/abs/2205.02561

博主是一个科研萌新,刚刚入门多智能体强化学习。如有对本论文理解错误或不周之处,还请各位大佬海涵与斧正。

摘要

为了保证训练时的效率和scalability,绝大部分MARL会让智能体共享策略或价值网络。在许多复杂的多智能体任务中,我们希望不同的智能体具有处理不同子任务的特定能力。不加选择地共享参数可能会导致所有智能体的行为相似,这将限制探索效率并降低最终性能。为了平衡训练复杂性和智能体行为的多样性,文章提出LDSA框架来学习协作 MARL 中的动态子任务分配。

简介

许多复杂的多智能体任务可以视为许多子任务的组合,每一个子任务的transition和奖励函数是不一样的,解决每一个子任务需要特定的能力,而全参数共享可能导致智能体的行为都是相似的,阻碍了智能体策略的多样性。其中一个解决方法为按照子任务划分智能体,为每一个子任务学习一个网络。这个方法有两个难点:(1)如何划分子任务(2)如何实现智能体的分配。
之前有一篇叫做RODE: Learning Roles to Decompose Multi-Agent Tasks是较早研究这个方向的,RODE希望在不引入先验知识的情况下,通过划分联合动作空间,依据动作效果对动作进行聚类来实现子任务的划分。在LDSA一文中,作者认为RODE可能会在某些基本动作是所有子任务所需的情况下失效,而且当动作对环境产生的效果变化较为频繁时,界定动作的效果是比较困难的。[?]
文章提出了LDSA框架。具体来说文章提出了:
①subtask encoder 子任务编码器。子任务编码器依据子任务的identity,构建了每一个子任务的向量表征(vector representation )。
②trajectory encoding network 轨迹编码网络。动作观察历史轨迹反应了一个智能体的行为习惯和能力,可以作为选择子任务的重要依据。轨迹编码网络用于获取并编码每一个智能体的动作观察历史轨迹。
③subtask decoder 轨迹解码器。根据子任务表征生成每个子任务的策略参数,这也可以避免不同子任务之间策略的相似性。
④引入两个正则化来稳定训练,增大子任务之间的差异性。
然后,对于每个时间步长,每个智能体根据其动作观察历史和所有子任务表征的余弦相似度来获取子任务选择的分类分布,并使用 Gumbel-Softmax对子任务进行采样进行训练。

preliminaries

问题建模

方法

子任务表征

首先介绍如何构造一组不同的子任务来分解多智能体任务,如图1(a) 蓝色 部分所示。为了消除对先验知识的依赖并将其应用于更广泛的多智能体任务,根据子任务的identity iii 为每个子任务ϕi\phi_iϕi学习向量表征xϕix_{\phi_i}xϕi[?]。采用两层全链接层来学习子任务编码器fe(⋅∣θe):Rk−>Rmf_e(·|\theta_e): R^k->R^mfe(θe):Rk>Rm。子任务编码器将子任务 ϕi\phi_iϕi的独热标识映射到 m 维表示空间,激活函数tanh用于限制输出大小。

当子任务相似度较高,进行任务分解是没有意义的,为了保持子任务之间的不同,提出了:

子任务表征学习贯穿整个训练过程,可以自动适应环境的动态变化。

基于能力的子任务选择 (Ability-based subtask selection)

通过子任务表征划分完任务后,文章根据每个智能体的能力设计了子任务选择策略。正如前文所说,智能体的行为观察历史可以反映其行为习惯和潜在能力。 如图1(b) 绿色所示,利用由 GRU和两个全连接网络组成的轨迹编码器fh(⋅∣θh)f_h(·|\theta_h)fh(θh)来获取每个智能体的动作观察历史。 该编码器是共享的,将智能体的gag_agad的trajectory编码为向量xτax_{\tau_a}xτaRmR^mRmxτax_{\tau_a}xτa就是智能体gag_aga的能力表征。

对于每一个智能体gag_aga,计算其xτax_{\tau_a}xτa 和每一个子任务表征xΦ:=[xϕi]i=1kx_\Phi:={[x_{\phi_i}]}_{i=1}^kxΦ:=[xϕi]i=1k的余弦相似度,因为子任务表征经过了tanh被限制了大小,因此相似度可以表示为similarity(xτa,xϕi)=xτaTxϕisimilarity(x_{\tau_a},x_{\phi_i})=x_{\tau_a}^Tx_{\phi_i}similarity(xτa,xϕi)=xτaTxϕi。在相似度上采用softmax,得到子任务选择的分类分布:

直接从分类分布采样时不可微的。为了训练子任务选择过程,采用straight-through gumbel softmax estimator 来采样子任务ϕj\phi_jϕjϕj\phi_jϕj会被分解为k维独热编码,即独热子任务identity djd_jdj.
每一个时间步,每一个智能体都会选择一个子任务。为了平滑子任务的子任务选择并稳定训练,引入了第二个正则化器,以最小化任意两个相邻时间步长的子任务选择分布之间的 KL 散度,KL散度越小,表示越接近。

基于表征的子任务策略

在根据智能体的能力将智能体分组到不同的子任务之后,要学习每个子任务的策略,如图 1©紫色所示。处理相同子任务的智能体共享策略参数,不同的子任务具有不同的策略参数。采用一个新的(共享的)轨迹编码器fτ(⋅∣θτ)f_\tau(·|\theta_\tau)fτ(θτ)以生成智能体的动作观测历史hτah_{\tau_a}hτa。每一个子任务的策略是一个全连接的网络fϕi(⋅;θϕi)f_{\phi_i}(·;\theta_{\phi_i})fϕi(;θϕi)。采用子任务解码器fd(⋅∣θd)f_d(·|\theta_d)fd(θd),基于子任务表征来生成ϕi\phi_iϕi策略网络的参数。
对于解决ϕi\phi_iϕi的每一个gag_agaAϕiA_{\phi_i}Aϕi,将其hτah_{\tau_a}hτa输入至所有子任务策略网络,产生个体Q函数Qa,ϕiQ_{a,\phi_i}Qa,ϕi。被选中子任务的独热identity可以理解为掩码,如果gag_aga选中了ϕj\phi_jϕj,个体Q函数Qa=Qa,ϕjQ_a =Q_{a,\phi_j}Qa=Qa,ϕj。每个智能体只训练其所选子任务的策略参数。 通过这种方式,具有相似能力的智能体倾向于选择相同的子任务,从而可以分享经验来加速训练和提高性能。

全局的损失

采用类似QMIX的混合网络的形式。

整体优化目标为:

λϕ\lambda_\phiλϕλh\lambda_hλh分别是两个正则化器的正系数。 在测试去中心化策略阶段,每个智能体选择子任务选择分布上概率最大的子任务。

实验部分

LDSA与QMIX、ROMA、RODE进行比较。作者认为RODE在执行过程中采用了许多基于环境先验信息的规则,所以在对比中就去除掉RODE中的这些规则。



总结

任务分解是简化复杂多智能体任务的重要方法,在不使用先验知识的情况下还没有得到很好的解决。 LDSA将任务分解为由latent embedding表示的几个子任务。 智能体根据他们的能力选择子任务,这些能力基于行动观察历史。 通过这种方式,处理相同子任务的智能体可以共享他们的学习来解决子任务,这可以在可控的训练复杂度下学习所有子任务所需的特定能力。 尽管每个子任务的embedding representation 可能是抽象的,但它本质上将具有相似能力的智能体聚集到同一组中,因此可以动态地分享他们的经验以加速训练并提高性能。

个人疑问思考:

(1)不太理解对于子任务的representation具体是如何得到的。如果是基于identity,按照建模部分讲的就是一串编号1,..,k{{1,..,k}}1,..,k,这串编号独热编码后,感觉和任务本身也没有什么实质性关系,怎么就可以作为分类依据。
(2)对于划分子任务部分仍存在疑问。整个任务空间是依据什么划分出来的,fig1.(a)感觉更像是在划分后然后根据每一个子任务的向量进行操作。感觉全文没有定义任务,而是根据行为动态的进行参数分享,对于task decomposition的部分讲解有些抽象。
(3)不太理解作者说的RODE需要的基于先验的规则是哪一些。就我对于RODE的阅读,没发现需要先验规则.(和我太菜没有看代码有关,下一步会着重提升看代码的能力,明白了之后再来解答)。就算RODE基于先验了,为什么不和基于先验的RODE进行对比呢。
(4) SMAC好像出现了在全参数共享的情况下,QMIX加上一定的修改就可以实现100%胜率,感觉需要使用别的环境进行实验验证。

[论文阅读]LDSA:Learning Dynamic Subtask Assignment in Cooperative Multi-Agent Reinforcement Learning相关推荐

  1. 论文阅读:On Dynamic Resource Allocation for Blockchain Assisted Federated Learning over Wireless Channel

    论文阅读:On Dynamic Resource Allocation for Blockchain Assisted Federated Learning over Wireless Channel ...

  2. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》

    深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...

  3. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

  4. 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?

    强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同? 目录

  5. 【论文阅读】A Survey of Image Synthesis Methods for Visual Machine Learning --- 图像生成,计算机视觉

    论文原文地址:A Survey of Image Synthesis Methods for Visual Machine Learning ,是对目前image synthesis方法的一个总结和归 ...

  6. AutoML论文笔记(十四)Automatic Data Augmentation via Deep Reinforcement Learning for Effective Kidney Tumor

    文章题目:Automatic Data Augmentation via Deep Reinforcement Learning for Effective Kidney Tumor Segmenta ...

  7. 论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》

    小样本学习&元学习经典论文整理||持续更新 核心思想   本文提出一种不会遗忘的动态小样本学习算法,严格来讲应该也属于基于外部记忆的小样本学习算法.本文的主体结构依旧是特征提取+分类器的组合, ...

  8. 论文阅读:Predicting Dynamic Embedding Trajectory inTemporal Interaction Networks(JODIE模型)

    最近阅读了Jure组的工作,是关于时序交互图的JODIE模型,所思所想写在这篇文章中,如果有愿意讨论的伙伴可以评论或者私聊我指出我的问题. Abstract 作者在摘要部分提出处理有顺序的交互是一个十 ...

  9. 【论文阅读】 Beyond Inferring Class Representatives: User-Level Privacy Leakage From Federated Learning

    本文提出了一种 multi-task 的 GAN(multi-task GAN for Auxiliary Identification (mGAN-AI)) ,可以恢复 client 级别的多种隐私 ...

  10. 论文阅读笔记之Replacing Mobile Camera ISP with a Single Deep Learning Model

    这篇文章做了啥 根据ccd或者cmos图像传感器获得的图像,要经过一系列的复杂的处理才能得到最终的图像,而且不同的cmos有不同的算法,作者这里的motivation是能不能有一个比较统一的框架来处理 ...

最新文章

  1. 如何根据SRA accession number 从NCBI下载数据
  2. 学习python:练习3.随机生成200个序列号存入文件
  3. RaDirect交换器-搭建环境
  4. java引用类的关键字_java中定义类通常使用的关键字有哪些
  5. MySQL——数据库和表的增删改查
  6. 初探webpack之从零搭建Vue开发环境
  7. Python内置函数eval()用法及其安全问题
  8. CentOs7.3 搭建 Solr单机服务
  9. Nginx惊群问题分析及解决
  10. apache多域名403配置
  11. 10.计蒜客ACM题库.A1007 作弊揭发者
  12. JAVA_OPTS参数说明与配置
  13. JAVA小乌龟游泳_描写乌龟游泳的作文
  14. 基于VisualStudio历时20年打造的史诗级游戏
  15. Spark-Spark Streaming(4)-- 部署、监控
  16. vue-cli项目局域网访问
  17. 【Web前端】彼岸の花——网上花店(网页制作)
  18. JAVA公路车几何图_单车基械匠:读懂自行车几何角度图,是你成为老鸟的关键一步...
  19. vscode无法跳转到函数定义
  20. 漫谈何时从单体架构迁移到微服务?

热门文章

  1. 论文阅读:NEURAL MACHINE TRANSLATIONBY JOINTLY LEARNING TO ALIGN AND TRANSLATE
  2. 爬取北京市公交线路信息
  3. Git通过SSH拉取报错kex_exchange_identification
  4. Citrix PVS架构和工作原理
  5. 郭德纲家训--话糙理不糙
  6. java 回调机制分为:异步回调 同步回调
  7. 图片识别不了小程序怎么办_图片转文字【小程序】
  8. eval()函数用法详解
  9. widows 句柄HINSTANCE
  10. 历史小说《雍正皇帝》后感(电视剧雍正王朝)