基于值函数监督的合作式多智能体控制方法与装置与流程

文档序号:33371937发布日期:2023-03-08 02:37阅读:32来源:国知局
基于值函数监督的合作式多智能体控制方法与装置与流程

1.本发明属于多智能体强化学习技术领域,更具体地,涉及一种基于值函数监督的合作式多智能体控制方法与装置。


背景技术:

2.近年来,随着单智能体深度强化学习技术广泛取得的突破性进展,也推动了多智能体强化学习的发展和研究,在实际情形中,往往存在多个独立自主决策的智能体,因此,多智能体强化学习的研究具有十分重要的应用价值。
3.完全合作式多智能体与环境的交互过程如附图1所示,环境中一共有n个独立自主决策的智能体,过程主要如下:(1)在时刻t,智能体i感知当前的环境状态s
t
,得到自身的局部观测信息(2)智能体根据当前的局部观测信息及当前采取的策略从动作空间a中选择一个动作组成联合动作(3)当多智能体的联合动作作用于环境时,环境转移到新状态s
t+1
,并给出一个全局奖励回报值r
t
;如此循环。其中,奖励回报指的是智能体在与环境的交互中获得的来自环境的评价性质的反馈信号。智能体通过强化学习方法,确定如何在环境中采取一系列行为动作,使长期的累积回报最大化。
4.多智能体强化学习按照训练架构的方式可以分为集中学习、独立学习以及二者结合的集中式训练-分布式执行三种方式。独立式学习指的是对每个智能体单独使用强化学习算法,将其他智能体看做环境的一部分,这类方法的代表有iql(independent q-learning),在学习过程中,每个智能体独立的执行q学习算法,这类算法实现起来较为容易,并且在离散状态-动作空间下的小规模问题中具有一定的效果,但是由于没有考虑智能体之间的相互影响无法适应大规模的复杂问题。集中式学习指的是将所有智能体的状态和动作集中在一起,构成一个全局状态空间和联合动作空间来整体使用单智能体的强化学习方法。此类方法由于能够进行全局考虑,解决了环境不稳定性的问题,易于训练和使得多智能体能够较好的协作。但是此类方法需要假设智能体之间信息交互不存在障碍,且在执行过程中需要先收集全局态势做出决策后发送给每个智能体进行执行,存在效率延迟的问题。
[0005]“集中式训练-分布式执行”是当前最常用的一种多智能体强化学习算法训练架构,它结合了集中式学习与独立式学习二者的优点,在训练时所有的智能体采用集中式架构进行训练,每个智能体可以通过无限制开放的信道获得其他智能体的信息,在训练结束后的执行阶段每个智能体智能根据自身的局部观测信息和有限的通信来进行行动决策。然而这类方法由于在训练时引入了全局信息,导致在分布式执行时存在性能不稳定的问题。


技术实现要素:

[0006]
本发明针对上述问题,本发明提供了一种基于值函数监督的合作式多智能体控制方法,提出在分布式执行阶段引入编队级智能体,通过编队级智能体指导智能体选择动作,
提高稳定性。同时,由于在执行阶段引入了编队级宏观决策动作,能够提高多智能体的适应能力,减小对集中式训练时平台级智能体值函数准确度的依赖性。
[0007]
为实现上述目的,按照本发明的一个方面,提供了一种基于值函数监督的合作式多智能体控制方法,包括如下步骤:
[0008]
s1初始化仿真环境,加载编队级控制器模型参数,加载平台级控制器的模型参数,每个平台共享同一个平台级控制器模型参数;
[0009]
s2使用编队级控制器进行编队级决策动作指令选择;
[0010]
s3使用平台级控制器在编队级决策动作指令的监督下选择平台级决策动作指令;
[0011]
s4仿真环境执行多个智能体的联合动作指令u=(u1,
……
,un),n为平台级智能体的个数,重复上述步骤s2至s4,完成对多智能体的控制。
[0012]
本发明的一个实施例中,所述步骤s2具体包括:
[0013]
s21每隔时间步长k,获取编队级状态向量o;
[0014]
s22输入编队级状态向量o,由编队级控制器输出编队级决策动作指令,即平台级智能体值函数监督向量为编队级控制器的策略函数,是其参数,m为平台级智能体可执行动作的个数。
[0015]
本发明的一个实施例中,所述步骤s3具体包括:
[0016]
s31每个时间步长,对每一个平台级智能体i,获取智能体i观察到的环境状态oi;
[0017]
s32对每一个平台级智能体i,输入智能体局部观测状态oi,由平台级控制器输出平台级智能体的局部状态-动作值向量qi=(q(oi,a1),

,q(oi,aj),

,q(oi,am)),其中,a1~am为平台级智能体可执行的动作;m为平台级智能体可执行动作的个数;q(oi,aj)=q(o=oi,a=aj|θ),为状态oi时选择动作aj时的状态-动作值;q(o,a|θ)为平台级控制器的值函数,θ为其参数;
[0018]
s33使用编队级决策动作指令w更新平台级智能体的局部状态-动作值向量qi值为
[0019]
s34根据贪心策略选取中值最大的动作作为平台级智能体i的动作指令
[0020]
本发明的一个实施例中,所述步骤s3中的平台级控制器的值函数网络使用现有多智能体强化学习方法vdn(value decomposition networks,值函数分解网络)算法进行训练,更新网络参数。
[0021]
本发明的一个实施例中,所述平台级控制器的值函数网络的训练方法具体包括:
[0022]
步骤1.1初始化仿真环境,初始化平台级控制器值函数网络q(o,a|θ)的参数θ;
[0023]
步骤1.2每个时间步长,对每一个平台级智能体i,获取智能体i观察到的环境状态oi;
[0024]
步骤1.3输入智能体局部观测状态oi,由平台级控制器输出平台级智能体的状态-动作值函数qi=(q(oi,a1),
……
,q(oi,am)),q(oi,aj)=q(o=oi,a=aj|θ),m为平台级智能体可执行动作的个数;
[0025]
步骤1.4使用编队级决策动作指令w更新平台级智能体的局部状态-动作值向量qi值为
[0026]
步骤1.5根据贪心策略选取中值最大的动作作为平台级智能体i的动作指令
[0027]
步骤1.6仿真环境执行多个智能体的联合动作u=(u1,
……
,un),n为平台级智能体的个数,并返回全局奖励r,下一时刻状态每个智能体的观测状态o

=(o1′
,
……
,n′
),下一时刻保存(o,u,r,o

)元组到训练数据缓冲区d中,重复步骤1.2至步骤1.6,收集数据放入d中,到达终止条件或者最大次数后停止;
[0028]
步骤1.7训练数据缓冲区d存储一定数量后,从d中随机取出m个样本数据,使用vdn方法更新值函数网络q
l
的参数θ;
[0029]
步骤1.8:学习过程收敛或者达到最大迭代次数则结束,否则返回步骤1.2。
[0030]
本发明的一个实施例中,所述步骤1.7中使用vdn方法更新值函数网络q
l
的参数θ,具体包括:
[0031]
根据如下公式计算全局值函数:
[0032][0033]
其中q
total
(s,u)全局值函数,s为全局环境状态向量,u为联合动作,qi(oi,ui)为智能体i的局部状态-动作值函数,qi(oi,ui)=q(o=oi,aj=ui|θ);
[0034]
构建损失函数如下:
[0035][0036]
其中,yj=rj+γargmaxu′qtotal
(s

,u

),其中s

为下一时刻的全局状态,u

为下一时刻联合动作,通过如下公式更新θ,其中η为学习率:
[0037][0038]
本发明的一个实施例中,在步骤s3中的平台级控制器训练好后,对步骤s2中的编队级控制器的策略网络使用ac(actor-critic,演员评论家)算法训练,更新网络参数。
[0039]
本发明的一个实施例中,所述对编队级控制器的策略网络的训练方法具体包括:
[0040]
步骤2.1初始化仿真环境,初始化编队级控制器的策略网络的参数初始化评价网络加载已训练好的平台级控制器值函数网络q(oi,aj|θ)的参数θ;
[0041]
步骤2.2每隔时间步长k,获取编队级状态向量o,输入到编队级控制器的策略网络πh,输出编队级决策动作指令w=(w1,w2,
……
,wm);
[0042]
步骤2.3:每个时间步长,对每一个智能体i,获取智能体i观察到的环境状态oi,输入到平台级控制器值函数网络,输出平台级智能体的状态-动作值函数qi=(q(oi,a1),
……
,q(oi,am));
[0043]
步骤2.4:根据编队级决策结果计算监督后的q值:根据贪心策略选取中值最大的动作作为平台级智能体i的动作指令
[0044]
步骤2.5:将所有智能体产生的联合动作u=(u1,
……
,un),输入到环境中执行并返回奖励r;
[0045]
重复步骤2.1-2.5,每隔时间步长k,更新评价网络v(ψ)的参数ψ,直到本轮仿真环境结束;
[0046][0047]
其中:l(ψ)=(rk+v(o

|ψ)-v(o|ψ))2,o

为下一时刻编队级状态向量;
[0048]
步骤2.6:更新编队级控制器的策略网络的参数
[0049][0050]
其中,η为学习率;
[0051]
步骤2.7:学习过程收敛或者达到最大迭代次数则结束,否则返回步骤2.2。
[0052]
本发明的一个实施例中,所述仿真环境为星际争霸ii中的5sv6z的场景。
[0053]
按照本发明的另一方面,还提供了一种基于值函数监督的合作式多智能体控制装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成所述的基于值函数监督的合作式多智能体控制方法。
[0054]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
[0055]
(1)本发明在分布式执行阶段,引入编队级决策智能体指导平台级智能体的决策,提高了稳定性;
[0056]
(2)本发明编队级智能体的决策隐藏着学习到的宏观策略,更符合实际指挥决策过程;
[0057]
(3)本发明在执行阶段引入了编队级宏观决策动作,能够提高多智能体的适应能力,减小对集中式训练时平台级智能体值函数准确度的依赖性。
附图说明
[0058]
附图1为完全合作式多智能体强化学习中交互过程示意图;
[0059]
附图2本发明中基于值函数监督的合作式多智能体控制方法的流程示意图;
[0060]
附图3本发明实施例中多智能体仿真环境示意图-星际争霸ii 5sv6z。
具体实施方式
[0061]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0062]
为了解决现有技术存在的问题,如图2所示,本发明提供了一种基于值函数监督的合作式多智能体控制方法,包括如下步骤:
[0063]
s1初始化仿真环境,加载编队级控制器模型参数,加载平台级控制器的模型参数,每个平台共享同一个平台级控制器模型参数;
[0064]
s2使用编队级控制器进行编队级决策动作指令选择;
[0065]
所述步骤s2具体包括:
[0066]
s21每隔时间步长k,获取编队级状态向量o;
[0067]
s22输入编队级状态向量o,由编队级控制器输出编队级决策动作指令,即平台级智能体值函数监督向量为编队级控制器的策略函数,是其参数,m为平台级智能体可执行动作的个数。
[0068]
s3使用平台级控制器在编队级决策动作指令的监督下选择平台级决策动作指令;
[0069]
所述步骤s3具体包括:
[0070]
s31每个时间步长,对每一个平台级智能体i,获取智能体i观察到的环境状态oi;
[0071]
s32对每一个平台级智能体i,输入智能体局部观测状态oi,由平台级控制器输出平台级智能体的局部状态-动作值向量qi=(q(oi,a1),

,q(oi,aj),

,q(oi,am)),其中,a1~am为平台级智能体可执行的动作;m为平台级智能体可执行动作的个数;q(oi,aj)=q(o=oi,a=aj|θ),为状态oi时选择动作aj时的状态-动作值;q(o,a|θ)为平台级控制器的值函数,θ为其参数;
[0072]
s33使用编队级决策动作指令w更新平台级智能体的局部状态-动作值向量qi值为
[0073]
s34根据贪心策略选取中值最大的动作作为平台级智能体i的动作指令
[0074]
具体地,所述步骤s3中的平台级控制器的值函数网络使用现有多智能体强化学习方法vdn(value decomposition networks,值函数分解网络)算法进行训练,更新网络参数。
[0075]
s4仿真环境执行多个智能体的联合动作指令u=(u1,
……
,un),n为平台级智能体的个数,重复上述步骤s2至s4,完成对多智能体的控制。
[0076]
进一步地,所述平台级控制器的值函数网络的训练方法具体包括:
[0077]
步骤1.1初始化仿真环境,初始化平台级控制器值函数网络q(o,a|θ)的参数θ;
[0078]
步骤1.2每个时间步长,对每一个平台级智能体i,获取智能体i观察到的环境状态oi;
[0079]
步骤1.3输入智能体局部观测状态oi,由平台级控制器输出平台级智能体的状态-动作值函数qi=(q(oi,a1),
……
,q(oi,am)),q(oi,aj)=q(o=oi,a=aj|θ),m为平台级智能体可执行动作的个数;
[0080]
步骤1.4使用编队级决策动作指令w更新平台级智能体的局部状态-动作值向量qi值为
[0081]
步骤1.5根据贪心策略选取中值最大的动作作为平台级智能体i的动作指令
[0082]
步骤1.6仿真环境执行多个智能体的联合动作u=(u1,
……
,un),n为平台级智能体的个数,并返回全局奖励r,下一时刻状态每个智能体的观测状态o

=(o1′
,
……
,on′
),下一时刻保存(o,u,r,o

)元组到训练数据缓冲区d中,重复步骤1.2至步骤1.6,收集数据放入d中,到达终止条件或者最大次数后停止;
[0083]
步骤1.7训练数据缓冲区d存储一定数量后,从d中随机取出m个样本数据,使用vdn方法更新值函数网络q
l
的参数θ;
[0084]
步骤1.8:学习过程收敛或者达到最大迭代次数则结束,否则返回步骤1.2。
[0085]
进一步地,所述步骤1.7中使用vdn方法更新值函数网络q
l
的参数θ,具体包括:
[0086]
根据如下公式计算全局值函数:
[0087][0088]
其中q
total
(s,u)全局值函数,s为全局环境状态向量,u为联合动作,qi(oi,ui)为智能体i的局部状态-动作值函数,qi(oi,ui)=q(o=oi,aj=ui|θ);
[0089]
构建损失函数如下:
[0090][0091]
其中,yj=rj+γargmaxu′qtotal
(s

,u

),其中s

为下一时刻的全局状态,u

为下一时刻联合动作,通过如下公式更新θ,其中η为学习率:
[0092][0093]
进一步地,在步骤s3中的平台级控制器训练好后,对步骤s2中的编队级控制器的策略网络使用ac(actor-critic,演员评论家)算法训练,更新网络参数。
[0094]
进一步地,所述对编队级控制器的策略网络的训练方法具体包括:
[0095]
步骤2.1初始化仿真环境,初始化编队级控制器的策略网络的参数初始化评价网络v(ψ),加载已训练好的平台级控制器值函数网络q(oi,aj|θ)的参数θ;
[0096]
步骤2.2每隔时间步长k,获取编队级状态向量o,输入到编队级控制器的策略网络πh,输出编队级决策动作指令w=(w1,w2,
……
,wm);
[0097]
步骤2.3:每个时间步长,对每一个智能体i,获取智能体i观察到的环境状态oi,输入到平台级控制器值函数网络,输出平台级智能体的状态-动作值函数qi=(q(oi,a1),
……
,q(oi,am));
[0098]
步骤2.4:根据编队级决策结果计算监督后的q值:根据贪心
策略选取中值最大的动作作为平台级智能体i的动作指令
[0099]
步骤2.5:将所有智能体产生的联合动作u=(u1,
……
,un),输入到环境中执行并返回奖励r;
[0100]
重复步骤2.1-2.5,每隔时间步长k,更新评价网络v(ψ)的参数ψ,直到本轮仿真环境结束;
[0101][0102]
其中:l(ψ)=(rk+v(o

|ψ)-v(o|ψ))2,o

为下一时刻编队级状态向量;
[0103]
步骤2.6:更新编队级控制器的策略网络的参数
[0104][0105]
其中,η为学习率;
[0106]
步骤2.7:学习过程收敛或者达到最大迭代次数则结束,否则返回步骤2.2。
[0107]
下面结合具体实施例对本发明提出的一种基于值函数监督的合作式多智能体控制方法进行详细说明。如图3所示,对于一个典型的多智能体控制任务,如星际争霸ii中的5sv6z的场景,该任务的目的从零开始学习控制我方5个兵力协作配合攻击敌方6个兵力,图3是该仿真环境的具体场景。对于该仿真环境中被控制的智能体一共有5个,对于每个智能体输入是104维的局部观测状态量,输出动作是离散的12个动作。在编队级决策过程中,输入是5个智能体的状态量的综合状态量,输出是编队级决策动作;在平台级决策过程中,输入是每个智能体的局部观测状态量,输出是离散的12个动作之一。
[0108]
进一步地,本发明还提供了一种基于值函数监督的合作式多智能体控制装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成所述的基于值函数监督的合作式多智能体控制方法。
[0109]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1