[0001]技术领域
[0002]本申请涉及人工智能技术领域,特别涉及一种多智能体参数共享方法及多智能体系统。
[0003]背景技术
[0004]随着社会的进步和科技的发展,在人工智能技术领域中,智能体(Agent)的应用越来越广泛。智能体是指通过对环境进行感知,并利用既有知识或者自身不断迭代的策略,与环境进行交互,完成指定任务的个体系统。而多个这样的智能体可以组成一个多智能体系统(Multi-Agent System,MAS),可以解决单个智能体能力受限的问题。同时,随着人工智能技术的深入发展,强化学习技术常应用在智能体建模上,以增强智能体的感知、学习、决策能力。另外,多智能体之间的协作也会提高整体系统的能力上限,使系统可以处理更为复杂的任务。因此,协作多智能体强化学习建模应运而生。
[0005]在协作多智能体强化学习建模中,常采用完全参数共享机制,即协作多智能体系统中所有智能体共享一个策略网络(或Q网络)。但是,完全参数共享机制只能为多个智能体提供固定的合作模式,这不仅限制了多个智能体探索多样性的策略,而且不允许智能体根据实时的环境要求灵活地改变其合作模式,导致多个智能体无法根据环境的实时需求建立并改进互补可靠的协作关系,进而导致任务失败。
[0006]发明内容
[0007]本申请提供了一种多智能体参数共享方法及多智能体系统,既能提高多智能体的协作能力,又不受实验场景复杂程度的限制,具有更好的动态性。所述技术方案如下:
[0008]第一方面,提供了一种多智能体参数共享方法,所述方法包括:
[0009]对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征;利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到多个智能体的第二抽象特征;第二抽象特征相较于第一抽象特征为高层抽象特征;根据第一抽象特征为多个智能体分别选择匹配的第一Q网络;其中,所匹配的第一Q网络相同的智能体参数共享;根据第二抽象特征为多个智能体分别选择匹配的第二Q网络;其中,所匹配的第二Q网络相同的智能体参数共享。
[0010]在一些可能的实现方式中,第一智能体与环境处于交互状态的情况下,若当前时刻不满足第一更新条件,则收集第一智能体的时变对比序列至时变对比序列集合中;第一智能体为多个智能体中的任一个;若当前时刻满足第一更新条件,则对时变对比序列集合中的元素进行编码,得到第一智能体的第一抽象特征。
[0011]在一些可能的实现方式中,将时变对比序列集合中的元素输入门控循环单元,得到时变对比序列对应的第一时序特征;将第一时序特征输入编码器网络,得到隐层高斯分布;对隐层高斯分布进行采样,得到第一智能体的第一抽象特征;清空时变对比序列集合。
[0012]在一些可能的实现方式中,第一智能体与环境处于交互状态的情况下,若当前时刻满足第二更新条件,则利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到第一智能体的第二抽象特征。
[0013]在一些可能的实现方式中,将第一时序特征输入编码器网络,得到隐层高斯分布之后,方法还包括:将隐层高斯分布收集至隐层高斯分布集合中;利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到第一智能体的第二抽象特征,包括:将隐层高斯分布集合中的元素输入门控循环单元,得到第一智能体的第二时序特征;将第二时序特征输入图注意力机制网络,生成价值分布;利用强化学习方法对价值分布进行采样,得到第一智能体的第二抽象特征;清空隐层高斯分布集合。
[0014]在一些可能的实现方式中,在第一Q网络池中选择与第一智能体的第一抽象特征匹配的第一Q网络,得到第一智能体的第一Q网络;第一智能体为多个智能体中的任一个。
[0015]在一些可能的实现方式中,在第二Q网络池中选择与第一智能体的第二抽象特征匹配的第二Q网络,得到所述第一智能体的第二Q网络;所述第一智能体为所述多个智能体中的任一个。
[0016]在一些可能的实现方式中,确定是否满足预设的网络训练触发条件;若满足网络训练触发条件,则训练并更新神经网络;若不满足网络训练触发条件,则执行步骤:对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征;将多个智能体的第二抽象特征作为差异判别依据,对多个智能体进行分组,得到第二分组结果之后,方法还包括:若不满足预设循环终止条件,则返回执行步骤:对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征;若满足预设循环终止条件,则返回执行步骤:确定是否满足预设的网络训练触发条件。
[0017]本申请第一方面提供的一种多智能体参数共享方法,通过对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征,利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到多个智能体的第二抽象特征,根据第一抽象特征为多个智能体分别选择匹配的第一Q网络,其中所匹配的第一Q网络相同的智能体参数共享;根据第二抽象特征为多个智能体分别选择匹配的第二Q网络,其中,所匹配的第二Q网络相同的智能体参数共享。首先,该方法多智能体提供了多样化策略选择,能够更加精准的辨别智能体之间的差异。其次,该方法在进行参数共享时,Q网络不是固定的,智能体能够根据环境变化适时选择恰当的合作伙伴,同时设置的第一抽象特征和第二抽象特征的最大可采样种类远小于智能体数量,因此本案提出的参数共享机制不容易受到智能体数量增大造成的影响,从而提高了Q网络的可靠性,进而多智能体之间的协作性。另外,该方法中,第二抽象特征是对第一抽象特征进行连接组合得到的,也即,第一抽象特征与第二抽象特征之间存在关联关系,因而基于第一抽象特征与第二抽象特征得到的分组之间也存在关联协作关系,进而提高了多智能体的协作能力,进而提高了整体系统的能力上限,使系统可以处理更为复杂的任务。且该方法进行参数共享时,不受实验场景复杂程度的限制,因而,具有更好的动态性。
[0018]第二方面,提供了一种多智能体系统,该系统包括第一方面提供的多个智能体。
[0019]第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的多智能体参数共享方法。
[0020]可以理解的是,上述第二方面、第三方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
[0021]附图说明
[0022]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1是本申请实施例提供的不同参数共享机制的示意图;
[0024]图2是本申请实施例提供的一种多智能体参数共享方法的流程图;
[0025]图3是本申请实施例提供的又一例多智能体参数共享方法的流程图;
[0026]图4是本申请实施例提供的一例多智能体参数共享方法的结构示意图;
[0027]图5是本申请实施例提供的一例多智能体参数共享方法的代码示意图;
[0028]图6是本申请实施例提供的多智能体参数共享装置的结构示意图;
[0029]图7是本申请实施例提供的多智能体系统的结构示意图。
[0030]具体实施方式
[0031]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0032]应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0033]为更好地理解本申请实施例,以下对实施例中可能涉及的术语或概念进行解释说明。
[0034]1.学习率
[0035]神经网络的学习率是指神经网络对数据进行学习的速率。学习率是监督学习以及深度学习中重要的超参数,决定着目标函数是否能收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。在梯度下降法中,学习率指导我们如何使用损失函数的梯度调整网络权重。
[0036]2.经验重放缓存(Replay Buffer)
[0037]在强化学习中,重放缓存是一种用于存储过去的经验的数据结构。重放缓存是一种缓存,用于存储代理在环境中执行的动作和观察结果。重放缓存可以帮助代理从以前的经验中学习,以便更好地执行当前任务。
[0038]3.目标网络(target network)
[0039]在强化学习中,目标网络是一个用于计算Q值的神经网络。它是一个与主网络(main network)不同的网络,用于计算目标Q值。目标网络的参数是由主网络的参数定期更新而来。目标网络可以使训练更加稳定,因为目标网络可以减少目标值的波动。
[0040]4.交互周期(episode)
[0041]交互周期即智能体与环境完整交互一个周期。
[0042]5.门控循环单元(Gated Recurrent Units,GRU)
[0043]GRU是循环神经网络中的一种门控机制,是由Kyunghyun Cho等人于2014年引入的,它与具有遗忘门的长短期记忆网络(LSTM)相类似。GRU相对LSTM来说,门控机制更为简便,只存在更新门和重置门两个门控机制。GRU的内部结构包括重置门、更新门和候选隐藏状态三个部分。其中,重置门用于控制前一时刻的隐藏状态对当前时刻的输入进行多少遗忘;更新门用于控制前一时刻的隐藏状态对当前时刻的输入进行多少更新;候选隐藏状态则是当前时刻的输入和前一时刻的隐藏状态共同决定的。
[0044]6.图注意力网络(Graph Attention Network,GAT)
[0045]GAT是一种图神经网络(Graph Neural Networks,GNN)。GNN使用注意力机制来学习图中节点的表示。GAT引入了多头注意力机制,以丰富模型容量并稳定学习过程。每个注意力头都有自己的参数,它们的输出可以通过两种方式合并:多个图注意力层的连接或平均值,图注意力网络包括K头的图注意力网络(K-GAT)。
[0046]7.注意力机制
[0047]注意力机制是一种模仿认知注意力的技术,可以增强神经网络输入数据中某些部分的权重,同时减弱其他部分的权重,以此将网络的关注点聚焦于数据中最重要的一小部分。注意力机制可以应用于各种深度学习模型中,如图像分类、自然语言处理等。
[0048]8.批处理(batch)
[0049]批处理智能体与环境完整交互的多个周期(即多个episode)。
[0050]在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
[0051]本申请应用于多智能体系统,多智能体系统中包括多个智能体。很多场景下,多个智能体之间需要协作,完成共同的任务。因此,需要对协作多智能体进行强化学习建模。在协作多智能体强化学习建模的过程中,若智能体之间不进行参数共享,则各个智能体分别采用各自的Q网络,如图1中的b图所示。不进行参数共享,智能体之间的协作能力有限,执行任务的复杂程度也有限,甚至无法协作。因而,智能体之间可以通过Q网络参数的共享,提高整体系统的能力上限,使系统可以处理更为复杂的任务。
[0052]相关技术中,协作多智能体强化学习建模中的Q网络参数共享机制包括以下几种:
[0053]1)完全参数共享
[0054]如图1中的a图所示,完全参数共享机制即所有的智能体共享一个策略网络。完全参数共享机制只能为智能体们提供固定的合作模式,因此这不仅限制了智能体们探索多样性的策略,而且不允许智能体根据实时的环境要求灵活的改变其合作模式,导致智能体无法根据环境的实时需求建立并改进互补可靠的协作关系,进而导致任务失败。
[0055]2)部分参数共享(Celebrating diversity in shared multi-agentreinforcement learning,CDS)
[0056]如图1中的c图所示,CDS机制将智能体的策略网络分为共享和独立的两部分,每个智能体引入的策略网络的独立部分是固定的,因此独立部分的计算消耗对智能体的数量变化非常敏感。虽然类数据共享机制引入了一项正则项以引导智能体们更多的选择与其他智能体进行共享,但如何平衡共享和独立部分之间的关系受到环境的严重影响。
[0057]3)静态可选择的参数共享机(Scaling multi-agent reinforcement learningwith selective parameter sharing,SePS)
[0058]如图1中的d图所示,SePS机制基于经验轨迹和固定编码实现对智能体的聚类分组,对处在同一分组的智能体进行参数共享。但该参数共享机制存在两个方面的问题:一方面通过聚类分组的方法对智能体进行分组的有效性取决于实验场景的复杂程度,只能在集中式训练时实现,严重限制了参数共享机制的动态性;另一方面智能体的不同分组之间没有建立协作关系。
[0059]为此,本申请实施例提供了一种多智能体参数共享方法,能够有效提高智能体策略的多样性,促进智能体之间根据环境的动态要求开展可靠的互补协作。
[0060]下面对本申请实施例提供的一种多智能体参数共享方法进行详细地解释说明。
[0061]图2是本申请实施例提供的一种多智能体参数共享方法的流程图。参见图2,控制多智能系统中的各个智能体与环境按照交互周期进行交互,交互的过程中,在当前交互周期episode内,执行下述步骤S101至S104。可以理解,在其他交互周期内,重复执行下述步骤S101至S104。
[0062]S101:对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征。
[0063]时变对比序列也即字对比序列,智能体引入了时变对比序列来定义智能体之间的抽象差异。根据智能体的时变对比序列编码,得到的低层的抽象特征称为第一抽象特征(也称为低层抽象概念)。
[0064]具体的,以多个智能体中的任一个智能体(称为第一智能体)为例,对获取第一智能体的第一抽象特征的过程进行说明:
[0065]A、对第一智能体的第一抽象特征进行初始化。具体的,可以随机确定第一智能体的第一抽象特征作为第一智能体的第一初始抽象特征。例如,第一初始抽象特征为{0、1、2}。
[0066]B、在第一智能体与环境交互的过程中,在当前交互周期episode内,实时判断当前时刻是否满足第一更新条件;若当前时刻不满足第一更新条件,则执行步骤C;若当前时刻满足第一更新条件,则执行步骤D。
[0067]第一更新条件是更新第一抽象特征的条件,其可以为时间条件,可选的,第一更新条件根据第一预设周期确定,例如第一更新条件可以为:当前时刻为第一预设周期的起始时刻,且当前时刻不为当前交互周期的起始时刻。
[0068]C、将第一初始抽象特征作为第一智能体的第一抽象特征,并收集第一智能体的时变对比序列至时变对比序列集合中。
[0069]D、对时变对比序列集合中的元素进行编码,得到第一智能体的第一抽象特征。
[0070]具体的,步骤D可以通过下述过程实现:第一智能体将时变对比序列集合中的元素输入门控循环单元,得到时变对比序列对应的第一时序特征。将第一时序特征输入编码器网络,得到隐层高斯分布(也称为隐空间分布),对隐层高斯分布进行采样,得到第一智能体的第一抽象特征。
[0071]可选的,可以用argmax函数对隐层高斯分布进行采样,得到隐层高斯分布的最大值,将得到的最大值确定为第一智能体的第一抽象特征。
[0072]S102:利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到多个智能体的第二抽象特征;第二抽象特征相较于第一抽象特征为高层抽象特征。
[0073]第二抽象特征(也称为高层抽象概念)。通过模仿人脑中不同投影区域的连接机制,对多个智能体的第一抽象特征进行连接组合,得到第一智能体的第二抽象特征。
[0074]具体的,以多个智能体中的任一个第一智能体为例,对获取第一智能体的第二抽象特征的过程进行说明:
[0075]A、对第一智能体的第二抽象特征进行初始化。具体的,可以随机确定第一智能体的第二抽象特征作为第一智能体的第二初始抽象特征。例如,第二初始抽象特征为{0、1、1}。
[0076]B、在第一智能体与环境交互的过程中,在当前交互周期episode内,实时判断当前时刻是否满足第二更新条件;若当前时刻不满足第二更新条件,则执行步骤C;若当前时刻满足第二更新条件,则执行步骤D。
[0077]第二更新条件是更新第二抽象特征的条件,其可以为时间条件,可选的,第二更新条件根据第二预设周期确定,例如第二更新条件为:当前时刻为第二预设周期的起始时刻,且当前时刻不为当前交互周期的起始时刻。
[0078]可选的,第二更新条件的第二预设周期为满足第一更新条件的第一预设周期的整数倍。例如,满足第一更新条件的时刻为7,则满足第二更新条件的时刻可以为14、21、28等。需要说明的是,第二预设周期是第一预设周期的整数倍,即当满足第二更新条件时,可以产生多个隐层高斯分布。例如,第二预设周期为14,第一预设周期为7,当前时刻为14时,可以产生2个隐层高斯分布,周期的单位可以是微秒、毫秒等。
[0079]C、将第二初始抽象特征作为第一智能体的第二抽象特征,并收集第一智能体的时变对比序列至时变对比序列集合中。
[0080]D、将第一时序特征输入编码器网络,得到隐层高斯分布。
[0081]E、将隐层高斯分布收集至隐层高斯分布集合中。将隐藏高斯分布集合中的元素输入门控循环单元,得到第一智能体的第二时序特征。
[0082]F、将第二时序特征输入图注意力机制网络,生成价值分布。
[0083]G、利用强化学习方法对价值分布进行采样,得到第一智能体的第二抽象特征。
[0084]S103:根据第一抽象特征为多个智能体分别选择匹配的第一Q网络;其中,所匹配的第一Q网络相同的智能体参数共享。
[0085]可选的,可以预先建立并逐步训练网络池,网络池包括第一Q网络池和第二Q网络池。第一Q网络池中包括多个适用于第一抽象特征(即低层抽象概念)的Q网络;第二Q网络池中包括多个适用于第而抽象特征(即高层抽象概念)的Q网络。第一Q网络由生成第一抽象特征的编码器网络以及训练第一抽象特征的解码器网络组成,通过获取编码器网络参数和解码器网络参数可以得到第一Q网络参数。
[0086]多智能体系统中的每个智能体根据其第一抽象特征,在第一Q网络池中选择对应的Q网络,所选择的Q网络相同的智能体即为同一组智能体。如此,实现对多个智能体的分组,得到的分组结果称为第一分组结果。
[0087]例如,第一智能体在第一Q网络池中选择与第一智能体的第一抽象特征匹配的第一Q网络,得到第一智能体的第一Q网络。第二智能体在第一Q网络池中选择与第二智能体的第一抽象特征匹配的第一Q网络,得到第二智能体的第一Q网络。若第一智能体的第一Q网络与第二智能体的Q网络相同,则第一智能体与第二智能体属于同一分组。以多智能体系统包括8个智能体,第一抽象特征的最大可采样数为4为例,对多智能的分组过程进行举例说明。8个智能体的第一抽象特征例如分别为{0、1、3、0、2、1、3、2},第一个智能体选择0号Q网络,第二个智能体选择1号Q网络,第三个智能体选择3号Q网络,第四个智能体选择0号Q网络,第五个智能体选择2号Q网络,第六个智能体选择1号Q网络,第七个智能体选择3号Q网络,第八个智能体选择2号Q网络。选择同号的Q网络的智能体进行Q网络参数共享,即第一个智能体和第四个智能体共享Q网络参数,第二个智能体和第六个智能体共享Q网络参数,第三个智能体和第七个智能体共享Q网络参数,第五个智能体和第八个智能体共享Q网络参数。
[0088]S104:根据第二抽象特征为多个智能体分别选择匹配的第二Q网络;其中,所匹配的第二Q网络相同的智能体参数共享。
[0089]第二Q网络由生成第二抽象特征的图注意力网络以及训练第二抽象特征的混合网络组成,通过获取图注意力网络参数和混合网络参数得到第二Q网络参数。初始化第二Q网络,初始化第一智能体的第二抽象特征的最大可采样数,第二抽象特征的最大可采样数是获取的第二Q网络参数的数量。
[0090]多智能体系统中的每个智能体根据其第二抽象特征,在第二Q网络池中选择与第一智能体的第二抽象特征匹配的第二Q网络,得到第一智能体的第二Q网络,将多个智能体中第二Q网络相同的智能体作为一个分组,得到第二分组结果。
[0091]可选的,在执行上述过程之前,可以先对相关参数和网络进行初始化。初始化的参数和网络例如可以包括:第一抽象特征的最大可采样数量、第二抽象特征最大可采样数量、第一Q网络、第二Q网络。其中,第一抽象特征的最大可采样数量是获取的第一Q网络的数量,第二抽象特征的最大可采样数量是获取第二Q网络的数量。
[0092]以多个智能体的第一抽象特征分别为{0、0、0、0、1、1、1、1},最大可采样数为2为例来说,第一个智能体、第二个智能体、第三个智能体和第四个智能体选择0号第二Q网络,因此,第一个智能体、第二个智能体、第三个智能体和第四个智能体共享第0号Q网络参数。第五个智能体、第六个智能体、第七个智能体和第八个智能体选择1号第二Q网络;第五个智能体、第六个智能体、第七个智能体和第八个智能体共享第1号Q网络参数。
[0093]本申请实施例提供的多智能体参数共享方法,通过对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征,利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到多个智能体的第二抽象特征,根据第一抽象特征为多个智能体分别选择匹配的第一Q网络,其中所匹配的第一Q网络相同的智能体参数共享;根据第二抽象特征为多个智能体分别选择匹配的第二Q网络,其中,所匹配的第二Q网络相同的智能体参数共享。首先,该方法多智能体提供了多样化策略选择,能够更加精准的辨别智能体之间的差异。其次,该方法在进行参数共享时,Q网络不是固定的,智能体能够根据环境变化适时选择恰当的合作伙伴,同时设置的第一抽象特征和第二抽象特征的最大可采样种类远小于智能体数量,因此本案提出的参数共享机制不容易受到智能体数量增大造成的影响,从而提高了Q网络的可靠性,进而提高了多智能体之间的协作性。另外,该方法中,第二抽象特征是对第一抽象特征进行连接组合得到的,也即,第一抽象特征与第二抽象特征之间存在关联关系,因而基于第一抽象特征与第二抽象特征得到的分组之间也存在关联协作关系,进而提高了多智能体的协作能力,进而提高了整体系统的能力上限,使系统可以处理更为复杂的任务。且该方法进行参数共享时,不受实验场景复杂程度的限制,因而,具有更好的动态性。
[0094]在一个实施例中,在执行上述步骤S101之前,所述方法还包括:
[0095]S105、确定是否满足预设的网络训练触发条件;若满足网络训练条件,则执行步骤S106;若不满足则执行上述步骤S101。
[0096]满足网络训练条件可以为智能体与环境完整交互多个预设周期,预设周期可以为7、14、20等。
[0097]S106、训练并更新神经网络。
[0098]在一个实施例中,步骤S104之后,所述方法还包括:
[0099]S107、判断预设循环终止条件;若不满足,则返回上述步骤S101;若满足则返回上述步骤S105。
[0100]下面结合附图和实例,对本申请实施例提供的一种多智能体参数共享方法的过程进行进一步的解释说明。
[0101]图3是本申请实施例提供的一例多智能体参数共享方法的流程图。参见图3,该方法包括以下步骤:
[0102]S201:初始化第一抽象特征最大可采样数量、第二抽象特征最大可采样数量、第一更新条件、第二更新条件、编码器网络、解码器网络、图注意力网络、混合网络。
[0103]例如,第一抽象特征最大可采样数量k为4,第二抽象特征最大可采样数量m为2,第一更新条件U为7,第二更新条件V为17。需要说明的是,k为整数倍的m,V为整数倍的U。
[0104]编码器网络和解码器网络用于生成第一Q网络参数,图注意力网络和混合网络用于生成第二Q网络参数。
[0105]S202:判断算法是否达到最大执行步数,若否,则执行S203,若是则程序停止。
[0106]例如,可以设置算法的最大执行步骤为2兆步、5兆步等。当算法执行到最大执行步骤时,程序结束。
[0107]S203:确定是否满足预设的网络训练触发条件,若否,则执行S204,若是,则执行S212。
[0108]例如,满足预设的网络训练触发条件为32,即智能体与环境完整交互32个周期。
[0109]S204:初始化智能体与环境完整交互周期,初始化第一抽象特征,初始化第二抽象特征。
[0110]初始化设置交互周期时,首先随机确定第一智能体的第一初始抽象特征和第一智能体的第二抽象特征,并获取此时每个智能体的初始观测值和初始环境全局状态值,将初始观测值和初始环境全局状态值放入经验重放缓存中。例如,以8个智能体为例来说,8个智能体的第一初始抽象特征分别为{0、1、3、0、2、1、3、2},8个智能体的第二初始抽象特征分别为{0、0、0、1、0、1、1、1}。
[0111]S205:确定是否满足第一更新条件,若满足,则执行S207,若不满足,则执行S206。
[0112]第一更新条件根据第一预设周期确定,当交互周期为第一预设周期时,则满足第一更新条件。例如,第一预设周期为7,则当交互周期为7时,则满足第一更新条件。当交互周期不是7的倍数时,则不满足第一更新条件,也就是说当交互周期是第一预设周期的整数倍时也满足第一更新条件。
[0113]S206:确定是否满足第二更新条件,若满足,则执行S209。
[0114]第二更新条件根据第二预设周期确定,当交互周期为第二预设周期时,则满足第二更新条件,第二预设周期时第一预设周期的整数倍。例如,第一预设周期为7,第二预设周期为第一预设周期的2倍,即14。当交互周期到14时,则满足第二更新条件。当交互周期不是14的倍数时,则不满足第二更新条件。
[0115]S207:更新第一抽象特征。
[0116]第一智能体将时变对比序列集合中的元素输入门控循环单元,得到时变对比序列对应的第一时序特征。将第一时序特征输入编码器网络,得到隐层高斯分布,对隐层高斯分布进行采样,得到第一智能体的第一抽象特征。也就是说交互周期从0开始,当交互周期满足第一更新条件7时,第一智能体将这7个时刻收集到的时变对比序列集合中的元素输入门控循环单元,得到时变对比序列对应的第一时序特征hu,然后将第一时序特征hu输入编码器网络,得到隐层高斯分布z,并将隐层高斯分布z放入集合Ze中,对隐层高斯分布z进行采样,得到第一智能体的第一抽象特征。例如,当交互周期满足第一更新条件7时,得到更新后的第一智能体的第一抽象特征为{0、1、1、3、2、2、3、0}。
[0117]S208:在第一Q网络池中选择与第一智能体的第一抽象特征匹配的第一Q网络,得到第一智能体的第一Q网络。
[0118]以8个智能体为例来说,当交互周期小于第一预设周期7时,此时第一抽象特征没有更新,则此时需用第一初始抽象特征为{0、1、3、0、2、1、3、2}进行分组,选择对应的Q网络,并对相同分组的智能体进行Q网络参数共享,即第一个智能体和第四个智能体同组,可以进行Q网络参数共享;第二个智能体和第六个智能体同组,可以进行Q网络参数共享;第三个智能体和第七个智能体同组,可以进行Q网络参数共享;第五个智能体和第八个智能体同组,可以进行Q网络参数共享。
[0119]可选的,当交互周期等于第一预设周期时,此时第一抽象特征已经更新,则此时需要对更新后的第一抽象特征进行分组,选择对应的Q网络,并对相同分组的智能体进行Q网络参数共享,并清空时变对比序列集合。需要说明的是,当交互周期为第一预设周期的整数倍时,此时根据重新收集时变对比序列,进而获取更新后的第一抽象特征,后续以更新后的第一抽象特征进行分组,选择对应的Q网络,并对相同分组的智能体进行Q网络参数共享。
[0120]可选的,当交互周期不是第一预设周期的整数倍时,此时第一抽象特征为上一次更新时的第一抽象特征。
[0121]S209:更新第二抽象特征。
[0122]第一智能体将第一时序特征输入编码器网络,得到隐层高斯分布之后,将隐层高斯分布收集至隐层高斯分布集合中,将隐层高斯分布集合中的元素输入门控循环单元,得到第一智能体的第二时序特征,将第二时序特征输入图注意力机制网络,生成价值分布,利用强化学习方法对价值分布进行采样,得到第一智能体的第二抽象特征。也就是说,当满足第二更新条件时,将收集到的隐层高斯分布集合Ze,将隐层高斯分布集合中的元素输入门控循环单元,得到第一智能体的第二时序特征hv,将第二时序特征输入图注意力机制网络,进一步提取第二时序特征hv,生成价值分布,利用强化学习方法对价值分布进行采样,得到第一智能体的第二抽象特征。例如,当交互周期满足第二预设周期14时,得到更新后的第一智能体的第一抽象特征为{0、0、0、0、1、1、1、1}。
[0123]需要说明的是,满足第二更新条件时同时也满足第一更新条件,也就是说更新第二抽象特征时同时更新第一抽象特征。
[0124]S210:在第二Q网络池中选择与第一智能体的第二抽象特征匹配的第二Q网络,得到第一智能体的第二Q网络。
[0125]以8个智能体为例来说,当交互周期小于第二预设周期14时,此时第二抽象特征没有更新,则此时需用第二初始抽象特征为{0、0、0、1、0、1、1、1}进行分组,选择对应的Q网络,并对相同分组的智能体进行Q网络参数共享,即第一个智能体、第二智能体、第三智能体和第五个智能体同组,可以进行Q网络参数共享;第四个智能体、第六智能体、第七智能体和第八个智能体同组,可以进行Q网络参数共享。
[0126]可选的,当交互周期等于第二预设周期时,此时第二抽象特征已经更新,则此时需要对更新后的第二抽象特征进行分组,选择对应的Q网络,并对相同分组的智能体进行Q网络参数共享,并清空隐层高斯分布集合。需要说明的是,当交互周期为第二预设周期的整数倍时,此时根据重新收集的隐层高斯分布集合,进而获取更新后的第二抽象特征,后续以更新后的第二抽象特征进行分组,选择对应的Q网络,并对相同分组的智能体进行Q网络参数共享。
[0127]图4是本申请实施例提供的一例多智能体参数共享方法的结构示意图,如图4所示,图4中的(a)图表示获取第一抽象特征的示意图,第一智能体将时变对比序列集合中的元素输入门控循环单元(GRU),得到时变对比序列对应的第一时序特征。将第一时序特征输入编码器网络(Encoder),得到隐层高斯分布,对隐层高斯分布进行采样,得到第一智能体的第一抽象特征。图4中的(b)图表示获取第二抽象特征的示意图,第一智能体将第一时序特征输入编码器网络,得到隐层高斯分布之后,将隐层高斯分布收集至隐层高斯分布集合中,将隐层高斯分布集合中的元素输入门控循环单元(GRU),得到第一智能体的第二时序特征,将第二时序特征输入图注意力机制网络(例如可以为k-head),生成价值分布,利用强化学习方法对价值分布进行采样,得到第一智能体的第二抽象特征。图4中的(c)图表示参数共享的示意图,通过第一抽象特征的Q网络和第二抽象特征的Q网络进行Q网络参数共享。
[0128]可选的,当交互周期不是第二预设周期的整数倍时,此时第二抽象特征为上一次更新时的第二抽象特征。
[0129]S211:获取下一步观测值、环境全局状态值。
[0130]智能体可以获取下一步的观测值和下一步的环境全局状态值,需要说明的是,每一个交互周期,智能体都会获取新的观测值和新的环境全局状态值。
[0131]需要说明的是,在一个交互周期内,多智能体系统会收集初始观测值、初始环境全局状态值、第一抽象特征、第二抽象特征、下一步的观测值、下一步的环境全局状态值、每个智能体的动作值和每个动作的全局奖励值放入一个集合中,即交互轨迹数据。当在环境终止时,将该集合放入经验重放缓存,用于后续的网络训练。
[0132]S212:判断多智能体是否完全死亡或环境终止,若否,则返回S205,若是,则返回S203。
[0133]S213:训练并更新网络,返回S202。
[0134]多智能体系统从经验重放缓存中取出多个交互周期收集到的交互轨迹数据,根据收集到的交互数据训练并更新网络。
[0135]1)计算采样结果的内在奖励。
[0136]计算采样结果的内在奖励可以参见公式(1):
[0137]Cu i 表示智能体的采样结果为i的第二抽象特征对应的不同第一抽象特征的数量,i表示智能体采样的第二抽象特征,Cv i 表示智能体采样结果为i的第二抽象特征的数量,K为第一抽象特征最大可采样数量。
[0138]以第一抽象特征为{1、1、2、3、2、2、3、0},第二抽象特征为{0、1、1、0、1、0、1、1}为例,智能体的第二抽象特征为0时,此时智能体的第一抽象特征为{1、3、2},不同的第一抽象特征的数量为3个,即Cu 0 =3;智能体的第二抽象特征为1时,此时智能体的第一抽象特征为{1、2、3、3、0},不同的第一抽象特征的数量为4,即Cu 1 =4;第二抽象特征为0时的数量为3,即Cv 0 =3,第二抽象特征为1时的数量为5,即Cv 1 =5,则根据公式(1),可以计算得到采样结果的内在奖励ri=max{3,4}-[3-4+5-4]=4。
[0139]通过计算采样结果的内在奖励,使得多个智能体的协作性更强。
[0140]2)使用强化学习方法,利用该内在奖励和收集到的全局奖励训练第一抽象特征的Q网络。
[0141]第一抽象特征的Q网络为
[0142]3)使用强化学习方法,利用该内在奖励和收集到的全局奖励训练第二抽象特征的Q网络。
[0143]第二抽象特征的Q网络为
[0144]4)使用强化学习方法,利用收集到的全局奖励训练多智能体系统的策略网络。
[0145]智能体的策略网络为
[0146]5)判断是否需要更新目标网络参数,如果不需要则跳过,如果需要更新则
[0147]图5是本申请实施例提供的一例多智能体参数共享方法的代码示意图。如图5所示。
[0148]本申请实施例提供的多智能体参数共享方法,通过对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征,利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到多个智能体的第二抽象特征,根据第一抽象特征为多个智能体分别选择匹配的第一Q网络,其中所匹配的第一Q网络相同的智能体参数共享;根据第二抽象特征为多个智能体分别选择匹配的第二Q网络,其中,所匹配的第二Q网络相同的智能体参数共享。首先,该方法多智能体提供了多样化策略选择,能够更加精准的辨别智能体之间的差异。其次,该方法在进行参数共享时,Q网络不是固定的,智能体能够根据环境变化适时选择恰当的合作伙伴,同时设置的第一抽象特征和第二抽象特征的最大可采样种类远小于智能体数量,因此本案提出的参数共享机制不容易受到智能体数量增大造成的影响,从而提高了策略网络的可靠性,进而提高了多智能体之间的协作性。另外,该方法中,第二抽象特征是对第一抽象特征进行连接组合得到的,也即,第一抽象特征与第二抽象特征之间存在关联关系,因而基于第一抽象特征与第二抽象特征得到的分组之间也存在关联协作关系,进而提高了多智能体的协作能力,进而提高了整体系统的能力上限,使系统可以处理更为复杂的任务。且该方法进行参数共享时,不受实验场景复杂程度的限制,因而,具有更好的动态性。
[0149]图6示出了本申请提供的一种多智能体参数共享装置的结构示意图。装置600包括:
[0150]第一抽象特征模块601;用于对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征。
[0151]第二抽象特征模块602:用于利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到多个智能体的第二抽象特征;第二抽象特征相较于第一抽象特征为高层抽象特征。
[0152]参数共享模块603:用于根据第一抽象特征为多个智能体分别选择匹配的第一Q网络;其中,所匹配的第一Q网络相同的智能体参数共享。
[0153]参数共享模块603:还用于根据第二抽象特征为多个智能体分别选择匹配的第二Q网络;其中,所匹配的第二Q网络相同的智能体参数共享。
[0154]在一些实施例中,第一抽象特征模块601,还用于第一智能体与环境处于交互状态的情况下,若当前时刻不满足第一更新条件,则收集第一智能体的时变对比序列至时变对比序列集合中;第一智能体为多个智能体中的任一个;若当前时刻满足第一更新条件,则对时变对比序列集合中的元素进行编码,得到第一智能体的第一抽象特征。
[0155]在一些实施例中,第一抽象特征模块601,还用于将时变对比序列集合中的元素输入门控循环单元,得到时变对比序列对应的第一时序特征;将第一时序特征输入编码器网络,得到隐层高斯分布;对隐层高斯分布进行采样,得到第一智能体的第一抽象特征;清空时变对比序列集合。
[0156]在一些实施例中,第二抽象特征模块602,还用于第一智能体与环境处于交互状态的情况下,若当前时刻满足第二更新条件,则利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到第一智能体的第二抽象特征。
[0157]在一些实施例中,第二抽象特征模块602,将第一时序特征输入编码器网络,得到隐层高斯分布之后,方法还包括:将隐层高斯分布收集至隐层高斯分布集合中;利用图注意力机制网络对多个智能体的第一抽象特征进行连接组合,得到第一智能体的第二抽象特征,包括:将隐层高斯分布集合中的元素输入门控循环单元,得到第一智能体的第二时序特征;将第二时序特征输入图注意力机制网络,生成价值分布;利用强化学习方法对价值分布进行采样,得到第一智能体的第二抽象特征;清空隐层高斯分布集合。
[0158]在一些实施例中,参数共享模块603,还用于在第一Q网络池中选择与第一智能体的第一抽象特征匹配的第一Q网络,得到第一智能体的第一Q网络;第一智能体为多个智能体中的任一个。
[0159]在一些实施例中,参数共享模块603,还用于在第二Q网络池中选择与第一智能体的第二抽象特征匹配的第二Q网络,得到第一智能体的第二Q网络;第一智能体为多个智能体中的任一个。
[0160]在一些实施例中,第一抽象特征模块601,还用于确定是否满足预设的网络训练触发条件;若满足网络训练触发条件,则训练并更新神经网络;若不满足网络训练触发条件,则执行步骤:对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征;将多个智能体的第二抽象特征作为差异判别依据,对多个智能体进行分组,得到第二分组结果之后,方法还包括:若不满足预设循环终止条件,则返回执行步骤:对多个智能体的时变对比序列进行编码,确定多个智能体的第一抽象特征;若满足预设循环终止条件,则返回执行步骤:确定是否满足预设的网络训练触发条件。
[0161]装置600执行多智能体参数共享方法的具体方式以及产生的有益效果可以参见方法实施例中的相关描述,此处不再赘述。
[0162]图7为本申请实施例提供的一种多智能体系统的结构示意图。如图7所示,多智能体系统700包括:处理器710、存储器720以及存储在存储器720中并可在处理器710上运行的计算机程序721,处理器710执行计算机程序721时实现上述实施例中的多智能体参数共享方法中的步骤。
[0163]本领域技术人员可以理解,图7仅仅是多智能体系统700的举例,并不构成对多智能体系统700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
[0164]处理器710可以是中央处理单元(Central Processing Unit,CPU),处理器710还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
[0165]存储器720在一些实施例中可以是多智能体系统700的内部存储单元,比如多智能体系统700的硬盘或内存。存储器720在另一些实施例中也可以是多智能体系统700的外部存储设备,比如多智能体系统700上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器720还可以既包括多智能体系统700的内部存储单元也包括外部存储设备。存储器720用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等。存储器720还可以用于暂时地存储已经输出或者将要输出的数据。
[0166]本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
[0167]本申请实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例中的步骤。
[0168]集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
[0169]应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
[0170]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0171]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0172]在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0173]作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0174]以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。