本发明涉及人工智能领域,尤其涉及一种多智能体群组协作策略自动生成方法。
背景技术:
maddpg为基于深度确定性策略梯度算法的多智能体强化学习框架,可用于多智能体协作策略自动生成。
在多智能体系统中,每个智能体通过与环境进行交互获取奖励值(reward)来学习改善自己的策略,从而获得该环境下最优策略的过程就多智能体强化学习。
在单智能体强化学习中,智能体所在的环境是稳定不变的,但是在多智能体强化学习中,环境是复杂的、动态的,因此给学习过程带来很大的困难。
维度爆炸:在单体强化学习中,需要存储状态值函数或动作-状态值函数。在多体强化学习中,状态空间变大,联结动作空间(联结动作是指每个智能体当前动作组合而成的多智能体系统当前时刻的动作)随智能体数量指数增长,因此多智能体系统维度非常大,计算复杂。
目标奖励确定困难:多智能体系统中每个智能体的任务可能不同,但是彼此之间又相互耦合影响。奖励设计的优劣直接影响学习到的策略的好坏。
不稳定性:在多智能体系统中,多个智能体是同时学习的。当同伴的策略改变时,每个智能体自身的最优策略也可能会变化,这将对算法的收敛性带来影响。
探索-利用:探索不光要考虑自身对环境的探索,也要对同伴的策略变化进行探索,可能打破同伴策略的平衡状态。每个智能体的探索都可能对同伴智能体的策略产生影响,这将使算法很难稳定,学习速度慢。
在多智能体系统中智能体之间可能涉及到合作与竞争等关系,使用到强化学习,强化学习作为机器学习的方法之一,又称为再励学习、增强学习,来源于生物学中的条件反射理论,其基本思想是对所希望的结果予以奖励,对不希望的结果予以惩罚,逐渐形成一种趋向于好结果的条件反射。如本系统中的通过不断学习经验,最小化经验损失,更新神经网络参数,最后达到输出得到好结果的动作,就是在不断的迭代学习过程中,智能体能够学到完成相应任务的最有动作,也称最优策略。
技术实现要素:
有鉴于现有技术的上述缺陷,本发明的目的是提供一种多智能体群组协作策略自动生成方法,应用于多智能体协作的策略生成,在原有maddpg算法上进行优化,以减少无效搜索,提高学习效率,以提高多智能体协作的效果评估效率。
为实现上述目的,本发明提供了一种多智能体群组协作策略自动生成方法,包括以下步骤:
步骤s1:定义并初始化多智能体协作策略的策略网络、目标策略网络和网络参数;
步骤s2:定义并初始化多智能体协作策略的评估网络、目标评估网络和网络参数;
步骤s3:定义并初始化每个智能体的经验缓存池和动作探索噪声,所述经验包括智能体的当前状态、信息微量、动作、奖励和下一个状态;
步骤s4:在所述策略网络的确定性行为策略中加入各智能体的信息微量;策略网络通过确定性行为策略和信息微量选择行为;
步骤s5:在每一时刻,对行为进行评估,在所述评估网络构建中采用分组策略:在每一时刻,智能体选择最和自己相关的智能体进行组队,更新分组矩阵;
步骤s6:在每一个回合,对每个智能体进行生灭判断,在环境中学习能力优秀的智能体通过子代遗传到自己全部信息继续训练,而在环境中学习较差的智能体则通过死亡回到初始点重新训练。
进一步的,所述步骤s4中在所述策略网络的确定性行为策略中加入各智能体的信息微量,具体表现为策略网络通过确定性行为策略μθ和信息微量xi选择行为ai,公式为
进一步的,所述步骤s4中在所述策略网络的确定性行为策略中加入各智能体的信息微量,具体包括以下步骤:
步骤s4-1:首先在环境x=rn*n中,更新每一个智能体agenti的信息微量,智能体i若到达坐标(i,j),则智能体agenti的信息微量设为1,否则为0,构建智能体agenti在环境x的信息微量,其中n*n表示环境大小;
步骤s4-2:获取汇总信息微量表xall,通过智能体agenti的信息微量xi,将所有智能体的信息微量通过公式xall=λ1x1 λ2x2 …… λnxn进行加权求和形成汇总信息微量表xall,其中权重λi为1或0,当智能体agenti在一回合结束时完成目标,则权重λi置为1,否则权重λi置为0;
步骤s4-3:对得到的汇总信息微量表xall进行归一化,使用公式
进一步的,所述步骤s5具体为:
步骤s5-1:在t时刻,构建分组矩阵gt(i),分组矩阵表示t时刻智能体agenti和其他智能体的组队情况,其中gt(i,j)表示智能体agenti和智能体agentj是否为一组,若在一组则gt(i,j)置为1,否则gt(i,j)置为0;
步骤5-2:训练rnn网络:缓存智能体agenti在一回合中每一时刻的经验buffer(s,x,a,r,s',done),存放到智能体agenti的经验库di中di={bufferi.1,bufferi.2^bufferi.t},在此基础上构造rnn网络的训练集dtrain:ftrain、ltrain,其中ftrain是自变量,ltrain是因变量;使用训练集dtrain训练rnn网络,通过训练结果和真实结果更新网络参数,并构造测试集ftext,测试集ftext的构造方式和训练集ftrain构造方式一致;
步骤s5-3:使用训练好的rnn网络,逐条输入t时刻的分组矩阵gt的组队信息,预测t 1时刻的分组矩阵gt 1的组队状态,最后汇总为t 1时刻的分组矩阵gt 1。
进一步的,
ftrain的构造:遍历智能体agenti,遍历1~t时刻与智能体agenti组队的智能体的经验bufferi.t构造ftrain;
ltrain的构造:根据ftrain的经验如果有其中任何一条经验没有完成任务,则ltrain设为1;只有所有经验都完成任务,ltrain才置为0。
进一步的,所述步骤s6具体为:
步骤s6-1:在每一回合中,使用公式
步骤s6-2:汇总每一回合所有智能体轨迹的损失值∑l(θ):∑l(θ)=l(θ1)mean l(θ2)mean …… l(θn)mean;
步骤s6-3:计算智能体agenti的生灭概率:
步骤s6-4:选出适应度高的智能体衍生出子代,子代继承父亲的状态、信息微量;适应度不好的智能体则会死亡而且会回到初始状态,只继承父亲的神经网络参数和经验库。
进一步的,所述多智能体群组协作策略自动生成方法用于多交通信号机的协作控制,其中,智能体表示为交通信号机;确定性行为策略为交通灯控制策略;策略网络表示为交通信号机每次对交通灯的控制策略,评估网络表示为交通信号机对交通灯的控制策略的评估,所述经验中,当前状态的观测值表示交通信号机观察到的交通环境的实时信息;下一个状态表示交通信号机对交通环境的预测值;动作表示交通信号机的交通控制的动作;信息微量表示环境信息,至少包括当前车流量信息;奖励表示节省车辆的延误时间;
在每一时刻,对行为进行评估,在所述评估网络构建中采用分组策略:在每一时刻,交通信号机选择与相邻路口的交通信号机进行组队,更新分组矩阵;
在每一个回合,对每个交通信号机进行生灭判断,在与相邻路口的交通信号机关联紧密的交通信号机通过子代遗传到自己全部信息继续训练,而在交通信号机关联不高的智能体则通过死亡回到初始点重新训练。
本发明实现了如下技术效果:
本发明的多智能体群组协作策略自动生成方法,根据具体应用环境定义智能体及其策略网络、评估网络和经验,实现多智能体协作策略的自动生成,其采用的算法在原有maddpg算法上提出了三大创新:信息微量、多智能体协同组队、生灭训练。智能体在环境中的学习历史会在环境中留下自己的信息微量,通过信息微量智能体可以学习别人的经验避免走弯路;通过多智能体协同组队,可提高训练效率;最后通过生灭训练来使在环境中学习能力优秀的智能体通过子代遗传到自己全部信息继续训练,在环境中学习较差的智能体通过死亡回到初始点重新训练大大提高多智能体协作策略的生成和评估效率。
附图说明
图1为本发明实施例给出的算法的结构流程训练示意图;
图2为本发明实施例给出的多智能体分组训练结构流程示意图;
图3为本发明实施例给出的maddpg算法和ttl-maddpg的实验结果对比图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例1
本发明公开了一种maddpg(基于深度确定性策略梯度算法的多智能体强化学习框架)的多智能体群组协作策略自动生成方法,以下简称ttl-maddpg算法,该算法以maddpg算法为基础,在原有maddpg算法上提出了三大创新:信息微量、多智能体协同组队、生灭训练。发明以maddpg算法为主体,将maddpg算法的策略网络(actor网络)加入信息微量,改为ai=μθi(oi,xi) nnoise,其中用xi表示智能体agenti的信息微量,智能体agenti在环境中的学习历史会在环境中留下自己的信息微量,通过信息微量,智能体可以学习别人的经验避免走弯路。在评估网络(critic网络)构建中,采用分组策略:智能体选择最和自己相关的智能体进行组队,以替代原有maddpg算法采用所有智能体进行交互来构建评估网络,提高训练效率。最后通过生灭训练来使环境中学习能力优秀的智能体通过子代遗传到自己全部信息继续训练,而使环境中学习较差的智能体死亡回到初始点重新训练大大提高效率。如图1和图2所示。
为方便说明,首先定义算法所需要的输入输出字符的缩写,以便之后叙述:用xi表示智能体agenti的信息微量,智能体所有信息微量汇总使用的λ1~n为xi的权重,组队使用g模型,其中gt(i,j)的值表示表示智能体agenti和agentj是否为一组,gt(i)矩阵表示t时刻agenti和其他智能体的组队情况,组队g模型包括训练集dtrain:ftrain、ltrain,测试集ftext,经验库di。
buffer(s,x,a,r,s',done)表示智能体获得的经验,其中:s表示当前状态,为观测值;x表示信息微量,为引入的环境信息;a表示智能体的行为;r表示智能体获得的奖励,s'表示下一个状态,为预测值。
ttl-maddpg算法,具体步骤如下:
步骤s1:初始化每个智能体agenti的策略网络πi(oi,θπi)和评估网络qi(s,a1,a2^an,θqi)以及网络参数θπi和θqi;
步骤s2:初始化每个智能体agenti的目标策略网络πi'(oi,θπi')和目标评估网络qi'(s,a1,a2^an,θqi')以及网络参数θπi'和θqi';
步骤s3:初始化每个智能体agenti的经验缓存池ri和动作探索噪声。
步骤s4:在策略网络的确定性行为策略中加入各智能体的信息微量,策略网络通过确定性行为策略μθ和信息微量xi选择行为ai,公式为
步骤s4具体包括以下步骤:
步骤s4-1:首先在环境x=rn*n中,其中n*n表示环境大小,更新每一个智能体agenti的信息微量xi,智能体agenti若到达(i,j)坐标,则agenti的信息微量设为1,否则为0,构建智能体agenti在环境x的信息微量。
步骤s4-2:通过智能体agenti的信息微量xi,将所有智能体的信息微量通过公式xall=λ1x1 λ2x2 …… λnxn进行加权求和形成汇总信息微量表xall,其中权重λi为1或0,当智能体agenti在一回合结束时完成目标则权重λi置为1,否则权重λi置为0。
步骤s4-3:对得到的汇总信息微量表xall进行归一化,使用公式
步骤s5:在每一时刻,对行为进行评估,在评估网络构建中采用分组策略:在每一个时刻,智能体选择最和自己相关的智能体进行组队,更新分组矩阵。
步骤s5具体包括以下步骤:
步骤s5-1:在t时刻,构建分组矩阵gt(i),分组矩阵gt(i)表示t时刻agenti和其他智能体的组队情况,其中gt(i,j)表示智能体agenti和智能体agentj是否为一组,若在一组则gt(i,j)置为1,否则gt(i,j)置为0。
步骤s5-2:训练rnn网络:缓存智能体agenti在一回合中每一时刻的经验buffer(s,x,a,r,s',done),存放到智能体agenti的经验库di中di={bufferi.1,bufferi.2^bufferi.t},在此基础上构造用于rnn网络训练的训练集dtrain:ftrain、ltrain,其中ftrain是自变量,ltrain是因变量。ftrain的构造:遍历智能体agenti,遍历1~t时刻与智能体agenti组队的智能体的经验bufferi.t构造ftrain。ltrain的构造:根据ftrain的经验如果有其中任何一条经验没有完成任务,即done仍保持true,那么ltrain设为1。只有done都是false,ltrain才是0。done表示任务执行情况,done的状态为true(真),表示任务正在执行;done的状态为false(假),表示任务执行完毕。如图2为例,在1时刻,智能体agent3和智能体agent1为一队,则ftrain的经验为buffer3.1和buffer1.1,此时两智能体经验的任务均已完成,done均为false,则ltrain设为0,之后同理。
步骤s5-3:使用训练集dtrain训练rnn网络,通过训练结果和真实结果更新网络参数,并构造测试集ftext,测试集的构造和训练集ftrain构造方式一致。
步骤s5-4:使用训练好的rnn网络,逐条输入t时刻的分组矩阵gt的组队信息,预测t 1时刻的分组矩阵gt 1的组队状态,最后汇总为t 1时刻的分组矩阵gt 1。
步骤s6:在每一个回合,对每个智能体进行生灭判断,在环境中学习能力优秀的智能体通过子代遗传到自己全部信息继续训练,而在环境中学习较差的智能体则通过死亡回到初始点重新训练。
步骤s6具体包括以下步骤:
步骤s6-1:在每一回合中,使用公式
步骤s6-2:汇总每一回合所有智能体轨迹的损失值∑l(θ):∑l(θ)=l(θ1)mean l(θ2)mean …… l(θn)mean;
步骤s6-3:计算智能体agenti的生灭概率:
步骤s6-4:选出适应度高的智能体衍生出子代,子代继承父亲的状态、信息微量表;适应度不好的智能体就会死亡而且会回到初始状态,只继承父亲的神经网络参数和经验库。
实施例2:
多智能体群组协作策略自动生成算法在交通灯控制的应用。
以每个路口的交通信号机为智能体,表示为agenti;
输入:多个交通信号机的集合agents={agent0,agent1,agent2,...,agenti}。
输入:初始化每个交通信号机agenti的策略网络πi(o,θπi)和评估网络qi(s,a1,a2^an,θqi)以及网络参数θπi和θqi;其中o表示交通信号机观察交通环境的实时信息;策略网络πi表示第i个交通信号机每次对交通灯的控制策略,评估网络qi表示第i个交通信号机对交通灯的控制策略的评估,s表示交通信号机的状态信息,a表示交通信号机的交通控制的动作;信息微量xi包含当前车流量信息、当前气候环境信息等信息;奖励表示节省车辆的延误时间;
输入:初始化每个交通信号机agenti的目标策略网络πi′(o,θπi′)和目标评估网络qi'(s,a1,a2^an,θqi')以及网络参数θπi'和θqi';
输入:初始化每个交通信号机agenti的经验缓存池ri和动作探索噪声ra;
重复训练:
1:策略网络通过确定性行为策略μθ和信息微量xi选择行为ai,公式由
2:通过分组策略优化评估网络,多个交通信号机的控制策略通常只针对相邻、相近的几个路口,当交通信号机控制某一个方向的交通灯动作时,会影响相邻几个路口的车流量变化,且对相邻各路口的车流量变化的影响是不同的,从而可以通过分组策略选取相邻的几个路口进行优化,以提高训练效率。具体的,如实施例1,分组模型采用rnn网络,构建gt(i)矩阵,通过gt(i,j)表示agenti和agentj是否在一组,若在一组则为1,若不在0,缓存每一步交通信号机agenti的经验buffer(s,x,a,r,s',done),构造经验库di={bufferi.1,bufferi.2^bufferi.t},构造训练集、测试集训练rnn网络,并通过rnn网络预测下一时刻的组队情况gt 1,其中gt(i)表示交通信号机agenti在t时刻的组队情况。
即在每一时刻,对行为进行评估,在所述评估网络构建中采用分组策略:在每一时刻,交通信号机选择与相邻路口的交通信号机进行组队,更新分组矩阵。
3:交通信号机生灭训练,首先使用公式
即在每一个回合,对每个交通信号机进行生灭判断,在与相邻路口的交通信号机关联紧密的交通信号机通过子代遗传到自己全部信息继续训练,而在交通信号机关联不高的智能体则通过死亡回到初始点重新训练。
4:循环训练直到模型在验证集上面没有提升。
输出:所有交通信号机对应的策略π1,π2,π3,...,πi,根据相邻路口的车流量和交通灯变化进行实时优化控制交通灯控制。
实施例3
通过仿真试验对本发明采用的多智能体群组协作策略自动生成方法中的算法进行评估。
实验内容:
(1)环境:本实验是基于starcraft2游戏进行的实验;
(2)游戏设置:具体游戏中,以3个凤凰战斗机智能体对战starcraft2难度为7级难度(最高难度)游戏内置的3个凤凰战斗机;
(3)训练设置:本实验分别,使用maddpg和ttl-maddpg进行实验,使用中训练的迭代次数epoch都设置250次,分别统计了训练的战斗胜率battle_won_mean(等于:胜利游戏局数/总游戏局数)和模型的损失值loss变化。
实验结果数据:
如图3所示,其中(1)maddpg算法;(2)et-maddpg算法。曲线①为损失函数(loss);曲线②为战斗胜率(battle_won_mean)。
实验中,maddpg和maddpg相比随机游走智能体在75epoch之后基本处于稳定状态,而maddpg在125次迭代(epoch)还未有出于稳定状态的表现,说明ttl-maddpg训练的智能体其学习效率更高,而且稳定性更好。
由此可见,本发明提出的多智能体群组协作策略自动生成方法,根据具体应用环境定义智能体及其策略网络、评估网络和经验,实现多智能体协作策略的自动生成,其采用的ttl-maddpg算法在原有maddpg算法上提出了三大创新:信息微量、多智能体协同组队、生灭训练。智能体在环境中的学习历史会在环境中留下自己的信息微量,通过信息微量智能体可以学习别人的经验避免走弯路;通过多智能体协同组队,可提高训练效率;最后通过生灭训练,在环境中学习能力优秀的智能体通过子代遗传到自己全部信息继续训练,而在环境中学习较差的智能体通过死亡回到初始点重新训练,可大大提高多智能体协作策略的生成和评估效率。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
1.一种多智能体群组协作策略自动生成方法,其特征在于:包括以下步骤:
步骤s1:定义并初始化多智能体协作策略的策略网络、目标策略网络和网络参数;
步骤s2:定义并初始化多智能体协作策略的评估网络、目标评估网络和网络参数;
步骤s3:定义并初始化每个智能体的经验缓存池和动作探索噪声,所述经验包括智能体的当前状态、信息微量、动作、奖励和下一个状态;
步骤s4:在所述策略网络的确定性行为策略中加入各智能体的信息微量;策略网络通过确定性行为策略和信息微量选择行为;
步骤s5:在每一时刻,对行为进行评估,在所述评估网络构建中采用分组策略:在每一时刻,智能体选择最和自己相关的智能体进行组队,更新分组矩阵;
步骤s6:在每一个回合,对每个智能体进行生灭判断,在环境中学习能力优秀的智能体通过子代遗传到自己全部信息继续训练,而在环境中学习较差的智能体则通过死亡回到初始点重新训练。
2.如权利要求1所述的多智能体群组协作策略自动生成方法,其特征在于,所述步骤s4中在所述策略网络的确定性行为策略中加入各智能体的信息微量,具体表现为策略网络通过确定性行为策略μθ和信息微量xi选择行为ai,公式为
3.如权利要求2所述的多智能体群组协作策略自动生成方法,其特征在于,所述步骤s4中在所述策略网络的确定性行为策略中加入各智能体的信息微量,具体包括以下步骤:
步骤s4-1:首先在环境x=rn*n中,更新每一个智能体agenti的信息微量xi,智能体agenti若到达坐标(i,j),则智能体agenti的信息微量设为1,否则为0,构建智能体agenti在环境x的信息微量,其中r表示噪声,n*n表示环境大小;
步骤s4-2:将所有智能体的信息微量通过公式xall=λ1x1 λ2x2 …… λnxn进行加权求和形成汇总信息微量表xall,其中权重λi为1或0,当智能体agenti在一回合结束时完成目标,则权重λi置为1,否则权重λi置为0;
步骤s4-3:对得到的汇总信息微量表xall进行归一化,使用公式
4.如权利要求1所述的多智能体群组协作策略自动生成方法,其特征在于,所述步骤s5具体为:
步骤s5-1:在t时刻,构建分组矩阵gt(i),分组矩阵gt(i)表示t时刻智能体agenti和其他智能体的组队情况,其中gt(i,j)表示智能体agenti和智能体agentj是否为一组,若在一组则gt(i,j)置为1,否则gt(i,j)置为0;
步骤5-2:训练rnn网络:缓存智能体agenti在一回合中每一时刻的经验buffer(s,x,a,r,s',done),存放到智能体agenti的经验库di中,di={bufferi.1,bufferi.2^bufferi.t},在此基础上构造rnn网络的训练集dtrain:ftrain、ltrain,其中ftrain是自变量,ltrain是因变量;使用训练集dtrain训练rnn网络,通过训练结果和真实结果更新网络参数,并构造测试集ftext,测试集ftext的构造方式和训练集ftrain构造方式一致;
步骤s5-3:使用训练好的rnn网络,逐条输入t时刻的分组矩阵gt的组队信息,预测t 1时刻的分组矩阵gt 1的组队状态,最后汇总为t 1时刻的分组矩阵gt 1。
5.如权利要求4所述的多智能体群组协作策略自动生成方法,其特征在于,
ftrain的构造:遍历智能体agenti,遍历1~t时刻与智能体agenti组队的智能体的经验bufferi.t构造ftrain;
ltrain的构造:根据ftrain的经验如果有其中任何一条经验没有完成任务,则ltrain置为1;只有所有经验都完成任务,ltrain才置为0。
6.如权利要求1所述的多智能体群组协作策略自动生成方法,其特征在于:所述步骤s6具体为:
步骤s6-1:在每一回合中,使用公式
步骤s6-2:汇总每一回合所有智能体轨迹的损失值∑l(θ):∑l(θ)=l(θ1)mean l(θ2)mean …… l(θn)mean;
步骤s6-3:计算智能体agenti的生灭概率:
步骤s6-4:选出适应度高的智能体衍生出子代,子代继承父亲的状态、信息微量;适应度不好的智能体则会死亡而且会回到初始状态,只继承父亲的神经网络参数和经验库。
7.如权利要求1-6任一项所述的多智能体群组协作策略自动生成方法,其特征在于:用于多交通信号机的协作控制,其中,智能体表示为交通信号机;确定性行为策略为交通灯控制策略;策略网络表示为交通信号机每次对交通灯的控制策略,评估网络表示为交通信号机对交通灯的控制策略的评估,所述经验中,当前状态的观测值表示交通信号机观察到的交通环境的实时信息;下一个状态表示交通信号机对交通环境的预测值;行为表示交通信号机的交通控制的动作;信息微量表示环境信息,至少包括当前车流量信息;奖励表示节省车辆的延误时间;
在每一时刻,对行为进行评估,在所述评估网络构建中采用分组策略:在每一时刻,交通信号机选择与相邻路口的交通信号机进行组队,更新分组矩阵;
在每一个回合,对每个交通信号机进行生灭判断,在与相邻路口的交通信号机关联紧密的交通信号机通过子代遗传到自己全部信息继续训练,而在交通信号机关联不高的智能体则通过死亡回到初始点重新训练。
技术总结