掌桥专利:专业的专利平台
掌桥专利
首页

一种元奖励分配的多智能体协同方法

文献发布时间:2023-06-19 19:30:30


一种元奖励分配的多智能体协同方法

技术领域

本发明属于多智能体协同技术领域,特别是一种元奖励分配的多智能体协同方法。

背景技术

多智能体强化学习是强化学习领域的重要分支之一,由此衍生出一系列的多智能体强化学习算法,大致可分为以下三种类型:独立学习,协同学习以及通讯学习。

奖励分配一直是多智能体协同学习中的难点问题,如何将全局奖励准确分配给每一个智能体是调控多智能体有效学习的关键。以VDN,Q-mix,Q-tran为首的多智能体强化学习算法,通过将奖励分配问题转化为值函数分解问题间接调控多智能体协同策略,通过构建每一个个体值函数与全局值函数的函数关系来分配奖励,其中,VDN认为全局值函数为个体值函数之和;Q-mix在此基础上进行改进采用神经网络对全局值函数与个体值函数关系进行拟合,拥有能更强的表达能力;Q-tran则是在Q-mix的基础上进一步改进,认为直接通过局部Q函数采用神经网络拟合联合Q函数是十分困难的,继而采用拟合加权局部Q函数与联合Q函数的差值来实现值函数的精确分解。除了值函数分解实现多智能体奖励分配之外,MeRL,LIIR等算法通过元学习为每一个智能体拟合一个伪奖励函数实现多智能体之间的奖励分配,在学习全局奖励的同时每个智能体也会受到伪奖励的影响。

VDN与Q-mix等值函数分解多智能体强化学习算法致力于直接构建局部Q函数与联合Q函数之间的关系,但实际中局部Q函数与联合Q函数关系可能较为复杂(并不是简单的线性加和,例如VDN),并且由于所设计的网络结构本身所引入的特性导致拟合误差(例如,Q-mix在网络设计中引入单调性限制了网络的表达能力),使得训练过早的陷入局部最优,最终多智能体网络性能较差,效果欠佳。

Q-tran虽然并没有直接对局部Q与联合Q的函数关系进行构建,采用两个网络分别拟合并缩小局部Q与联合Q之间的差异,解放了网络的表达能力,但是由于要同时优化多个网络损失,训练限制较大造成网络训练很不稳定,网络波动性很大。

LIIR,MeRL等引入元学习的多智能体强化学习算法通过对每一个智能体分别构建出一个伪奖励函数来辅助奖励分配,但伪奖励的设计独立于环境奖励之外,导致伪奖励的构建较为困难,参数较难控制。

因此,如何在保持网络表达能力的同时,提高网络训练的鲁棒性,成为当前研究的关键问题。

发明内容

鉴于上述问题,本发明提供一种至少解决上述部分技术问题的一种元奖励分配的多智能体协同方法,该方法在保持网络表达能力的同时,将分配奖励与环境奖励直接挂钩,保证了网络训练的鲁棒性。

本发明实施例提供了一种元奖励分配的多智能体协同方法,包括:

S1、采取transformer网络结构,初始化上层奖励权重分配网络参数以及下层值函数分解网络参数,同时初始化仿真环境;

S2、将上层奖励权重分配网络和下层值函数分解网络部署至相应的仿真环境中,并执行所述下层值函数分解网络的前向网络与仿真交互推演,收集仿真轨迹样本;

S3、构建经验回放池,将所述仿真轨迹样本存入所述经验回放池中,并对所述经验回放池进行维护;

S4、从所述经验回放池中抽取预设批次的仿真轨迹样本作为训练集,输入至上层奖励权重分配网络和下层值函数分解网络;采用时间差分计算下层值函数网络的损失函数,并对所述下层值函数分解网络的参数进行更新,同时保存所述下层值函数分解网络参数更新梯度信息;

S5、从所述经验回放池中抽取预设批次的仿真轨迹样本作为验证集,基于所述下层值函数分解网络参数更新梯度信息,通过元学习方法对所述上层奖励权重分配网络参数进行更新;

S6、判断当前时刻下所述下层值函数分解网络是否收敛;若收敛,则获得Q价值与奖励分配权重,此时终止训练;若没有收敛,则返回步骤S2。

进一步地,所述下层值函数分解网络包括联合Q函数网络和局部Q函数网络。

进一步地,对所述经验回放池进行维护,具体包括:

优先剔除所述经验回放池中存放时间最久的历史仿真轨迹样本;

优化选择所述经验回放池中采样次数最少的历史仿真轨迹样本。

进一步地,所述上层奖励权重分配网络和下层值函数分解网络通过公式描述为以下的双层优化问题:

其中,

进一步地,所述下层值函数分解网络的参数更新过程如下:

通过所述联合Q函数网络获得全局联合价值;

通过所述上层奖励权重分配网络获得多智能体奖励分配权重系数向量;

基于所述全局联合价值和所述多智能体奖励分配权重系数向量,获得单智能体目标局部Q价值;

通过所述局部Q函数网络获得局部单智能体Q价值向量;

基于所述单智能体目标局部Q价值和所述局部单智能体Q价值向量,获得局部Q函数网络的损失函数。

进一步地,在通过所述联合Q函数网络获得全局联合价值过程中,引入所述联合Q函数网络的损失函数。

进一步地,所述通过所述联合Q函数网络获得全局联合价值,具体包括:

将t时刻下全局的仿真环境状态、局部的单智能体在t时刻下的观测状态组,以及局部的单智能体在t时刻下的动作组输入至所述联合Q函数网络中,输出t时刻下的全局联合价值。

进一步地,所述通过所述上层奖励权重分配网络获得多智能体奖励分配权重系数向量,具体包括:

将t时刻下全局的仿真环境状态、局部的单智能体在t时刻下的观测状态组,以及局部的单智能体在t时刻下的动作组输入至所述上层奖励权重分配网络中,输出t时刻下的多智能体奖励分配权重系数向量。

进一步地,所述通过所述局部Q函数网络获得局部单智能体Q价值向量,具体包括:

将局部的单智能体在t时刻下的自身观测状态,以及局部的单智能体在t时刻下的自身动作输入至所述局部Q函数网络中,输出t时刻下的局部单智能体Q价值向量。

进一步地,所述上层奖励权重分配网络参数更新过程如下:

其中,

与现有技术相比,本发明记载的一种元奖励分配的多智能体协同方法,具有如下有益效果:本发明在保持网络表达能力的同时,将分配奖励与环境奖励直接挂钩,保证了网络训练的鲁棒性。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例提供的元奖励分配的多智能体协同方法流程示意图。

图2为本发明实施例提供的下层值函数分解网络的前向网络及损失计算示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

参见图1所示,本发明实施例提供了一种元奖励分配的多智能体协同方法,具体包括如下步骤:

S1、采取transformer网络结构,初始化上层奖励权重分配网络参数以及下层值函数分解网络参数,同时初始化仿真环境;

S2、将上层奖励权重分配网络和下层值函数分解网络部署至相应的仿真环境中,并执行所述下层值函数分解网络的前向网络与仿真交互推演,收集仿真轨迹样本;

S3、构建经验回放池,将所述仿真轨迹样本存入所述经验回放池中,并对所述经验回放池进行维护;

S4、从所述经验回放池中抽取预设批次的仿真轨迹样本作为训练集,输入至上层奖励权重分配网络和下层值函数分解网络;采用时间差分计算下层值函数网络的损失函数,并对所述下层值函数分解网络的参数进行更新,同时保存所述下层值函数分解网络参数更新梯度信息;

S5、从所述经验回放池中抽取预设批次的仿真轨迹样本作为验证集,基于所述下层值函数分解网络参数更新梯度信息,通过元学习方法对所述上层奖励权重分配网络参数进行更新;

S6、判断当前时刻下所述下层值函数分解网络是否收敛;若收敛,则获得Q价值与奖励分配权重,此时终止训练;若没有收敛,则返回步骤S2。

本发明实施例主要包含两大部分,即上层奖励权重分配网络和下层值函数分解网络;其中:

上层奖励权重分配网络输入为环境状态、多智能体状态、多智能体动作,输出为每一个智能体的奖励分配权重。

下层值函数分解网络包括联合Q函数网络与局部Q函数网络;其中,联合Q函数的损失函数是联合Q价值与环境累积奖励的L2 loss,通过对损失函数的优化从而实现对环境奖励的拟合;而局部Q函数的损失函数是局部Q函数价值与联合Q函数价值的L2 loss,通过对损失函数的优化从而实现对联合Q函数的拟合;通过上层奖励权重分配网络输出的奖励分配权重构建联系。其中,联合Q函数网络输入为环境状态、多智能体动作,输出为全局联合价值;局部Q函数网络输入为单智能体状态、单智能体动作,输出为局部单智能体Q价值。

本发明实施例中,上层奖励权重分配网络和下层值函数分解网络可以通过公式描述为以下的双层优化问题:

其中,

图2为下层值函数分解网络的前向网络及损失计算示意图。参见图二所示,下层值函数分解网络的参数更新过程如下:

步骤一:通过联合Q函数网络获得全局联合价值;具体包括:将t时刻下全局的仿真环境状态

其中,L表示L1/2损失函数算子;

步骤二:通过上层奖励权重分配网络获得多智能体奖励分配权重系数向量;包括:将t时刻下全局的仿真环境状态

步骤三:通过局部Q函数网络获得局部单智能体Q价值向量;具体包括:将局部的单智能体i在t时刻下的自身观测状态

其中,

通过以上三个步骤,求解出下层值函数分解网络的损失函数并对相应的网络参数进行反向传播更新。同时,保留下层网络参数更新梯度信息,用于上层网络参数更新,上层奖励权重分配网络参数更新过程如下:

其中,

通过以上公式推导,将不易求得的验证集上层奖励权重分配网络对参数

本发明实施例所提供的一种元奖励分配的多智能体协同方法具体可以在星际争霸与PettingZoo等多智能体仿真环境中实施;接下来以星际争霸中5v5多智能体对抗仿真为例进行具体说明。

步骤一:安装星际争霸客户端以及相应的仿真调用python包,初始化星际争霸5v5多智能体对抗仿真环境;同时初始化上层奖励权重分配网络参数以及下层值函数分解网络参数;在该步骤中,无论是上层奖励权重分配网络,还是下层值函数分解网络,均采用transformer网络结构中的encoder部分作为初始化网络结构;

步骤二:星际争霸5v5多智能体对抗仿真环境初始化完成后,获取当前时刻下,5v5环境状态以及5v5中预设数量个智能体的观测状态(在本发明实施例中,获取5v5中10个智能体的观测状态),并将获取到的状态信息返回,通过值函数分解网络的价值输出,采用贪婪算法(这里贪婪算法的设计是随训练时间迁移而不断线性变化的,最开始随机选择多智能体动作空间中的一种动作向量,随着模型不断训练收敛,以某一单调递增的概率选择价值最高的动作向量,直到概率为1)选择相应的动作输出,并将动作输入到星际争霸5v5仿真环境中进行推演。重复以上操作直到仿真结束,收集仿真轨迹作为训练样本。

步骤三:构建大小固定的经验回放池,在本发明实施例中,选择经验池大小为5000。最开始时,以随机动作的形式收集5000相应的仿真轨迹样本存入经验回放池中。然后,对经验回放池抽样进行网络训练。对于新的轨迹样本,剔除经验回放池中最先进入的轨迹样本,新的样本放置队列的最后。

步骤四:每次从经验回放池中抽取32个样本作为训练样本,输入至上层奖励权重分配网络以及下层联合Q函数网络、局部Q函数网络,通过时间差分法求取下层值函数分解网络模块的损失函数并对下层值函数分解网络参数进行更新。

步骤五:每次从经验回放池中抽取32个样本作为验证样本,通过元学习的方法,求解验证样本对下层值函数分解模块网络参数

步骤六:判断当前下层值函数分解网络是否收敛(即下层网络梯度模值是否小于1e-6),若是,则终止网络训练;若否,则返回步骤二。

本发明实施例针对多智能体强化学习中多智能体之间奖励分配困难、奖励溯源难的问题,结合元奖励强化学习与多智能体强化学习值函数分解两种思想,提供了一种元奖励分配的多智能体协同方法,具体为双层架构和三种网络(上层奖励权重分配网络、联合Q函数网络以及局部Q函数网络),分别求解每一时刻多智能体之间的贡献权重系数以及当前时刻联合Q价值与局部单智能体Q价值,通过奖励权重系数对联合Q价值进行值函数分解,自上而下地为每一个智能体赋予相应的局部价值真值,进而实现对下层网络(联合Q函数网络与局部Q函数网络)损失函数的计算与网络参数更新,同时保存下层更新梯度信息,通过元学习的方法实现对上层网络参数的更新,交替更新上下双层网络直到收敛。通过以上设计,利用奖励权重分配网络直接拟合联合Q价值与局部Q价值的函数关系,同时移除了网络硬性单调增的限制,通过元学习在训练过程中引入网络梯度信息,提升上层奖励权重分配网络的表达能力,减少联合Q函数与局部Q函数的拟合误差。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术分类

06120115937634