一种面向无人系统模拟对抗的智能体训练方法及系统与流程
2021-01-11 12:01:19|308|起点商标网
本发明涉及智能体训练领域,特别是涉及一种面向无人系统模拟对抗的智能体训练方法及系统。
背景技术:
:美国国防部高级研究计划局(darpa),计划在5年内推出了其革命性的“gremlin”(小精灵)无人机系统,项目旨在实现其先进的无人机群集系统和自主战斗管理能力,战斗无人机能在飞行母舰上进行“空中发射”以及“空中回收”。该系统与暴雪游戏《星际争霸》中的神族航母相似,如果日后真的能蜕变成游戏中的航母,那么这样一个可在空中移动的巨型“蜂巢”,只怕将成为人类史上的又一大超级武器。目前对于该系统,美军已经在“lockheedc-130”(洛克希德c-130“大力神”)运输机上进行实验,每个可部署的“gremlin”无人驾驶飞机大小与小型巡航导弹相似,可以通过擒纵钩发射和回收。darpa表示,目前单个c-130可以同时运行四架无人机。一旦该系统实现,这些无人机可以协同工作,编队飞行,同时使用网络数据链路共享信息,完成空中协调情报、监视和侦查(isr)任务。而且由于它们是空中发射的,一群“gremlins”还可以在定点打击前(配合f-35战斗机)消除战争迷雾,进一步提升指挥官对战场的把控,同时也可以支援深入敌后的特种作战小队。在进行低成本研发量产后,“gremlins”可被大量部署,但同时空中恢复技术也意味着它们能被通过击败母舰而坠毁,就像击毁了《星际争霸》中的神族航母,它周围所施放的拦截机也会随之消失。在未来智能化时代,军事战争中将大量采用上述此类的无人系统机器人,战场中的数据特点海量异构,这对于指挥控制无人系统的精确性、时效性、有效性提出了很高的要求,指挥控制智能化为大势所趋。一个智能的大脑对于打赢战争的重要性是不言而喻的,智能指挥官的贡献度将超越任何一型智能武器,2018年6月的一份最新报道中提到,目前美军作战训练数据库中已有的数据并不支持机器学习和其他人工智能算法。基于此,我们计划用《星级争霸》游戏训练智能指挥官,成功后会尝试迁移到现实中执行类似作战指控任务,对现代军事行动提出新型战术。技术实现要素:本发明的目的是提供一种面向无人系统模拟对抗的智能体训练方法及系统,训练出的智能体能够充分模拟无人系统作战。为实现上述目的,本发明提供了如下方案:一种面向无人系统模拟对抗的智能体训练方法,包括:获取暴雪公司发布的游戏录像,记为第一数据集;对所述第一数据集进行预处理,得到第二数据集;使用pysc2将所述第二数据集解析到数据库中存储;从所述数据库中获取预设数量的动作字段和状态字段;根据所述动作字段构建动作特征向量,根据所述状态字段构建状态特征向量;将所述动作特征向量和状态特征向量构成(a,s)二元组,其中,a为动作特征向量,s为状态特征向量;对所述(a,s)二元组进行归一化,得到第三数据集;根据所述第三数据集得到第一训练集;对所述第三数据集,抽取部分(a,s)二元组构建出第二训练集;利用所述第一训练集对多层全卷积lstm网络进行训练,得到第一智能体;利用所述第二训练集对多层全卷积lstm网络进行训练,得到第二智能体;采用强化学习算法利用所述第二智能体训练所述第一智能体,得到第三智能体,所述第三智能体用于模拟人类指挥官指挥无人系统的模拟对抗。可选的,采用公式对所述(a,s)二元组的每一列进行归一化,其中,yi为归一化之后的值,xi为所述二元组中任意一个值,min(x)为xi所在列的最小值,max(x)为xi所在列的最大值。可选的,对所述第三数据集按照6:2:2的比例划分成第一训练集、验证集和测试集。一种面向无人系统模拟对抗的智能体训练系统,包括:第一数据获取模块,用于获取暴雪公司发布的游戏录像,记为第一数据集;预处理模块,用于对所述第一数据集进行预处理,得到第二数据集;解析模块,用于使用pysc2将所述第二数据集解析到数据库中存储;第二数据获取模块,用于从所述数据库中获取预设数量的动作字段和状态字段;特征向量构建模块,用于根据所述动作字段构建动作特征向量,根据所述状态字段构建状态特征向量;特征向量合成模块,用于将所述动作特征向量和状态特征向量构成(a,s)二元组,其中,a为动作特征向量,s为状态特征向量;归一化模块,用于对所述(a,s)二元组进行归一化,得到第三数据集;第一训练集构建模块,用于根据所述第三数据集得到第一训练集;第二训练集构建模块,用于对所述第三数据集,抽取部分(a,s)二元组构建出第二训练集;第一训练模块,用于利用所述第一训练集对多层全卷积lstm网络进行训练,得到第一智能体;第二训练模块,用于利用所述第二训练集对多层全卷积lstm网络进行训练,得到第二智能体;第三训练模块,用于采用强化学习算法利用所述第二智能体训练所述第一智能体,得到第三智能体,所述第三智能体用于模拟人类指挥官指挥无人系统的模拟对抗。可选的,所述归一化模块采用公式对所述(a,s)二元组的每一列进行归一化,其中,yi为归一化之后的值,xi为所述二元组中任意一个值,min(x)为xi所在列的最小值,max(x)为xi所在列的最大值。根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明公开了一种面向无人系统模拟对抗的智能体训练方法及系统,利用《星级争霸》游戏数据对多层全卷积lstm网络进行训练,将训练后的神经网络作为智能体,该智能体能够充分模拟无人系统作战。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明一种面向无人系统模拟对抗的智能体训练方法流程图;图2为本发明一种面向无人系统模拟对抗的智能体训练系统模块图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的目的是提供一种面向无人系统模拟对抗的智能体训练方法及系统,训练出的智能体能够充分模拟无人系统作战。为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的基本参数设置包括:系统环境cpu:intel(r)xeon(r)silver4110cpu@2.10ghz;操作系统:ubuntu16.04;显卡:geforce2080ti;内存:32g;开发框架:pysc2;语言:python3.6;游戏版本:星际争霸2;sc2le是deepmind针对与星际争霸2开发的环境,包含三个子组件:一个linux星际争霸2二进制文件、星际争霸iiapi和pysc2,pysc2是一个python环境,它封装了starcraftiiapi,以简化智能体和starcraftii之间的交互。pysc2定义了一个操作和观察规范,包括一个随机代理和一些脚本化代理作为示例。图1为本发明面向无人系统模拟对抗的智能体训练方法流程图,如图1所示,一种面向无人系统模拟对抗的智能体训练方法,包括:步骤101:获取暴雪公司发布的游戏录像,记为第一数据集;步骤102:对所述第一数据集进行预处理,得到第二数据集;步骤103:使用pysc2将所述第二数据集解析到数据库中存储;步骤104:从所述数据库中获取预设数量的动作字段和状态字段;步骤105:根据所述动作字段构建动作特征向量,根据所述状态字段构建状态特征向量;步骤106:将所述动作特征向量和状态特征向量构成(a,s)二元组,其中,a为动作特征向量,s为状态特征向量;步骤107:对所述(a,s)二元组进行归一化,得到第三数据集;步骤108:根据所述第三数据集得到第一训练集;步骤109:对所述第三数据集,抽取部分(a,s)二元组构建出第二训练集;步骤110:利用所述第一训练集对多层全卷积lstm网络进行训练,得到第一智能体;步骤111:利用所述第二训练集对多层全卷积lstm网络进行训练,得到第二智能体;步骤112:采用强化学习算法利用所述第二智能体训练所述第一智能体,得到第三智能体,所述第三智能体用于模拟人类指挥官指挥无人系统的模拟对抗。利用所述第二训练集对第一智能体进行训练,得到第二智能体,所述第二智能体用于无人系统的模拟对抗。具体的,步骤101中,第一数据集v为从公网收集下载sc2le发布的游戏录像v约50g;游戏录像是专业玩家和业余玩家都使用的重要资源,从中可以学习新的策略,发现关键错误,并且“战争迷雾”会隐藏所有敌人的单位,因此,在职业球员中,回顾和分析他们所玩的每一场比赛是标准做法。使用游戏录像作为监督数据被用于星际争霸2训练中,它一般用来发现构建命令。步骤102的预处理过程使用pysc2,对第一数据集v按照以下规则进行预处理,得到v0,约30g;预处理过程即筛选满足以下三个条件的数据:(1)每个玩家的比赛等级得分在40%以内;(2)每个玩家的每分钟操作数都在10以上;(3)录像时长大于5分钟,小于2小时;然后再将v0按照人族胜利、神族胜利、虫族胜利分为三组v1,v2,v3;步骤103中为了高效管理数据,使用pysc2,解析v1,v2,v3文件,得到字段数据,并将字段数据输入到sql数据库db0中进行保存,部分数据库字段如表1所示:表1解析后部分数据库字段id字段名称描述1building建造的建筑2armynumber军队数量3tech发展的科技4resouce资源数量5distroy_army被摧毁的军队6distroy_building被摧毁的建筑7enemy_army敌人的军队8enemy_building敌人的建筑步骤104-107具体为:从数据库中选择部分字段构成(a,s)二元组(act动作,status状态),动作对应于玩家产生的下一次操作动作,状态描述当前的游戏状态。选取数据库中的部分动作字段,定义动作特征向量a:定义多个基本操作序列,形式(a0,a1,a2,a3,a4,...)。a0基本操作,如移动,而“a1,a2…”是操作参数,比如:“把当前选中的单位移到a处”,可以分成2步:1)鼠标左键选定操作对象决定移动;2)鼠标右键点击某个地图位置。上述操作也可以分解为“按m键;松开m键;决定是否按shift键;地图a处按下鼠标左键;松开鼠标左键”。选取数据库中的部分状态字段,定义状态特征向量s,包括:1、建造的建筑;2、军队数量;3、发展的科技;4、资源数量;5、被摧毁的军队;6、被摧毁的建筑;7、敌人的军队和建筑。步骤108具体包括:将得到的(a,s)二元组特征向量进行归一化。(a,s)二元组特征向量例如:(0211:0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1)(1112:0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2)(2222:0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3)其中,向量的行数取决于游戏录像的时长,时长单位为秒,比如第一个视频时长为20秒,若5秒为一个计时周期,那么这个特征向量就有4行;也就是每个视频都会对应一个二元组特征向量。向量的各列代表含义如下:0211数字串代表动作操作编号序列;0列:动作标签;1-31列:各种建筑;32-38列:各种军队;39-57列:游戏中研究的科技类型的数量;58-115列:资源数量,使用的补给数量和可用补给的最大数量。另一个附加值是剩余供应量,即已用供应量和最大可用供应量之间的差额。116-173列:被摧毁的军队;174-206列:被摧毁的建筑;207-209列:观察到的每种类型的敌人单位/建筑的数量。然后对每一列采用公式进行归一化,其中,yi为归一化之后的值,xi为所述二元组中任意一个值,min(x)为xi所在列的最小值,max(x)为xi所在列的最大值,即得到第三数据集。步骤110-步骤112具体包括:循环神经网络(recurrentneuralnetwork)就是一类用于处理序列数据的神经网络,但是传统的rnn网络存在梯度消失和爆炸问题,当我们增加了需要捕获关系时间跨度,基于梯度的优化将变得越来越困难,因此传统rnn无法解决长期依赖问题,而lstm(longshort-termmemory,lstm)网络比传统的rnn更易于学习长期依赖,因此发明选择使用lstm网络作为智能体网络模型。我们将预测下一步生产动作任务建模成时间序列预测任务。先获取当前游戏状态,据此衡量并选择一次操作,然后提交给星际争霸2环境。具体的,首先使用排名在20%以内的录像数据,使用较高的学习率(大于千分之一)对lstm进行训练,得到第一智能体;然后使用排名在5%的录像数据(或者单独学习人类前20个建造物),使用较低的学习率(小于万分之一)对上述得到的lstm进行训练,得到训练好的网络,即第二智能体;不同于其他普通游戏,星际争霸的特点是长期策略,对于游戏初期的初始状态很敏感,联系密切,采用第二智能体训练第一智能体,可以大大减小可能的状态动作空间,可以加速收敛,得到训练好的网络,即第三智能体。本发明将第三智能体在星际争霸2内置ai难度级别1-10的条件下做了评估测试。在每个难度条件下进行了100场比赛。在难度1-7的条件下,智能体的表现非常良好。在难度8、难度9和难度10条件下,内置机器人具有不同的作弊技巧,所以它们对智能体的泛化性要求很高。然而,可以看出智能体在与他们的战斗中仍然有很好的表现。结果证明,本发明中的第三智能体接近了人类玩家排名系统中前40%的水平。此外,本发明还公开了一种面向无人系统模拟对抗的智能体训练系统,其模块图如图2所示,具体包括:第一数据获取模块201,用于获取暴雪公司发布的游戏录像,记为第一数据集;预处理模块202,用于对所述第一数据集进行预处理,得到第二数据集;解析模块203,用于使用pysc2将所述第二数据集解析到数据库中存储;第二数据获取模块204,用于从所述数据库中获取预设数量的动作字段和状态字段;特征向量构建模块205,用于根据所述动作字段构建动作特征向量,根据所述状态字段构建状态特征向量;特征向量合成模块206,用于将所述动作特征向量和状态特征向量构成(a,s)二元组,其中,a为动作特征向量,s为状态特征向量;归一化模块207,用于对所述(a,s)二元组进行归一化,得到第三数据集;第一训练集构建模块208,用于根据所述第三数据集得到第一训练集;第二训练集构建模块209,用于对所述第三数据集,抽取部分(a,s)二元组构建出第二训练集;第一训练模块210,用于利用所述第一训练集对多层全卷积lstm网络进行训练,得到第一智能体;第二训练模块211,用于利用所述第二训练集对多层全卷积lstm网络进行训练,得到第二智能体;第三训练模块212:用于采用强化学习算法利用所述第二智能体训练所述第一智能体,得到第三智能体,所述第三智能体用于模拟人类指挥官指挥无人系统的模拟对抗。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
热门咨询
tips