一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于CNN-GRU模型的实时策略游戏中稀疏指令的预测方法与流程

2021-11-05 23:23:00 来源:中国专利 TAG:

一种基于cnn

gru模型的实时策略游戏中稀疏指令的预测方法
技术领域
1.本发明属于计算机技术领域,具体涉及一种基于cnn

gru模型的实时策略游戏中稀疏指令的预测方法。


背景技术:

2.rts游戏属于一种实时进行的而非回合制游戏。其中,agent需要完成包括侦查敌方信息、检查己方剩余资源以及与敌方进行作战等操作。由于rts游戏中存在环境的部分可观测性、状态动作空间巨大以及需要控制大量的作战单位等特点,要使ai同时周全的考虑到上述多个方面会面临许多挑战。因此在给作战单位下达行动指令的时候会考虑将一个指令拆分成不同的组成部分,然后用基于规则的方法或者使用机器学习的方法去预测指令的不同部分。
3.在构成指令的组成部分当中,指令类型重要而且不可或缺的,下达一条正确的游戏指令前ai首先应该对当前的情况进行分析,并做出比较正确的预测,才能使得将要发出的指令足够有效,进而才有机会在后续的对战中赢得对手。
4.进一步的,在一场rts游戏回合中,会存在需要稠密操作的情况,也会存在需要稀疏操作的情况,在指令较为稀疏的情况下,在游戏进行过程中只有在少数的时间点ai才会发出一条行动指令,而其余时间是没有指令下发的。
5.在现有技术中,rts游戏中的ai往往针对稠密操作情况下进行了优化,例如针对星际争霸游戏提出的alphastar、针对dota游戏提出的openai five等,它们已经达到了人类顶尖选手的水平,但是它们都是在状态动作对比较稠密的情况下运行的。然而对于状态动作对稀疏的条件下,这种算法存在一定的不足。
6.所以,针对如何在rts游戏中指令稀疏的条件下进行指令类型的预测的问题,本文提出了一种基于改进的gru神经网络模型进行指令类型的预测方法。


技术实现要素:

7.本发明的目的是为了使ai在rts游戏中在状态动作对稀疏的情况下,在下达一条作战指令前较为可靠的对指令类型进行预测,而提供的一种基于cnn

gru模型的实时策略游戏中稀疏指令的预测方法。
8.一种基于cnn

gru模型的实时策略游戏中稀疏指令的预测方法,它包括以下步骤:
9.步骤1:收集游戏平台产生的对战数据;
10.步骤2:对收集到的对战数据进行清理,剔除冗余数据;
11.步骤3:提取出数据中己方、敌方信息相关特征因素,并对获取到的数据进行数据处理;
12.步骤4:进行cnn

gru预测模型的构建,并采用所构建的模型进行指令类型的预测;
13.在步骤1中,所述对战数据平台是通过人工编写的硬编码策略和游戏平台内置的
机器人进行对战产生的。
14.在步骤2中,具体包括以下步骤:
15.1)将从步骤1获取到的对战数据中的信息进行提取,同时提取标签信息,其中标签分为两大类一类是空白指令,一类是有效指令;
16.2)剔除掉不符合规范的推演数据,如推演数据不完整等;
17.3)删除掉不必要的特征,如游戏中明确规定无用的特征以及冗余的特征,比如本发明所用实验平台规定,飞机的坐标由(x,y,z)组成,但是平台使用说明书上明确规定了z轴坐标没有作用,以及一些特征重复出现,比如飞机的载弹量等。
18.在步骤3中,对获取到的数据进行min

max归一化,然后采用pca主成分分析法对输入的特征向量进行降维处理;具体的,包括以下步骤:
19.步骤1)构建每一个时间步的输入,所有的时间步组成一个完整的时间序列也就是一场完整的游戏推演的过程;
20.步骤2)把按时间顺序提取到的信息进行补齐操作,使用手工的方式将每一个时间点的向量维度补成相同的长度,这里设置一个最大长度,不足最大长度的使用e
‑9一个不为0但接近于0的数进行补齐;
21.步骤3)进行数据进行归一化处理,归一化的公式如下:
[0022][0023]
x'
ij
为x
ij
归一化之后的数值,x
ij
是第i列第j维特征,x
i
是第i列特征,min(x
i
)是第i列的所有维度中的数值的最小值,max(x
i
)是第i列所有维度中的数值最大值;
[0024]
步骤4)对上述数据使用pca主成分分析法对数据进行降维处理。
[0025]
在步骤3中的步骤2)中,每一个时间点的向量由以下几类组成:1)游戏时间,2)己方单位的信息,3)已获得的敌方单位的信息。
[0026]
在步骤4中,具体包括以下步骤:
[0027]
步骤4.1)提取游戏状态特征,生成特征矩阵,这里卷积神经网络使用多个卷积核,不同的卷积核关注不同的特征,其特征提取公式如下:
[0028]
x
t
=σ
cnn
(w
cnn

x
t
b
cnn
)
[0029]
x
t
表示当前状态和动作特征,w
cnn
表示过滤器的权重,b
cnn
表示偏差参数,σ
cnn
是激活函数;
[0030]
步骤4.2)使用门控循环网络(gru)提取时间序列的依赖特征:
[0031]
gru重置门:
[0032]
r
t
=σ(w
r
x
t
u
r
h
t
‑1 b
r
)
[0033]
gru更新门:
[0034]
z
t
=σ(w
z
x
t
u
z
h
t
‑1 b
z
)
[0035]
σ为sigmoid函数,w、u和b为权重和偏置项,x
t
即为卷积神经网络的输出,h
t
‑1为上一个状态所传递下来的信息;更新门和重置门确定历史节点信息对当前节点信息的贡献程度;
[0036]
上一状态信息经过重置门后,通过权重和偏置项与当前输入进行聚合更新以形成当前时刻状态:
[0037][0038]
为当前时刻t的候选隐藏状态;w、u和b为权重和偏置项,x
t
为卷积神经网络的输出,r
t
为重置门,h
t
‑1为上一状态的信息;tanh激活函数将数据缩放至

1到1的范围内;
[0039]
最后计算出当前时刻的隐藏状态:
[0040][0041]
h
t
为当前隐藏状态信息,z
t
为更新门,h
t
‑1为上一个状态所传递下来的信息;
[0042]
步骤4.3)使用dropout对隐藏层节点进行随机丢弃,从而防止过拟合,其计算公式如下:
[0043][0044][0045]
bernoulli函数是随机生成一个概率的向量,也就是以一个概率为p的伯努利分布随机地生成与节点数相同的0、1值;
[0046]
步骤4.4)将经过dropout层之后的gru网络的输出映射到线性空间时,采用以下公式:
[0047][0048]
f1为多层感知机(mlp)
[0049]
步骤4.5)将多层感知机的输出作为softmax函数的输入来进行标签预测;
[0050][0051]
w为权重,b为偏置项,h
v
为多层感知机的输出,为预测的标签;
[0052]
步骤4.6)使用带权重的交叉熵函数最小化损失;
[0053]
计算公式如下:
[0054][0055][0056]
w
j
是权重;m为类别的数量,y
ij
为指示变量,取值为0或1,如果样本i的真实类别与j相同,此时y
ij
取值为1,否则取值为0;为样本i属于类别j的预测概率;是第j类样本类型的样本数量;其中w
j
的计算公式如下:
[0057][0058]
w
j
为第j类类别的权重,n
classes
是数据集中所有类型种类数量,n
samples
是数据集中的样本总数。
[0059]
它还包括步骤5:将数据分成多份进行交叉验证,从而选择出更好的超参数;
[0060]
具体的:把收集到的数据集分成6份,每次选择其中4组作为训练集,1组作为验证
集,另外1组作为测试集。用这种方法来选择更好的参数,包括batch_size的大小,gru隐藏层的大小,学习率的大小,以及选择出合适损失函数和优化函数。
[0061]
它还包括步骤6:对网络模型进行综合评价。
[0062]
一种cnn

gru网络模型的构建方法,它包括以下步骤:
[0063]
步骤一:构建卷积神经网络,提取游戏状态特征,生成特征矩阵,这里卷积神经网络使用多个卷积核,不同的卷积核关注不同的特征;
[0064]
步骤二:使用门控循环网络(gru)提取时间序列的依赖特征;
[0065]
步骤三:使用dropout技术防止过拟合现象;
[0066]
步骤四:使用多层感知器将门控循环神经网络的输出映射到线性空间;
[0067]
步骤五:使用softmax函数进行标签的预测;
[0068]
步骤六:使用带权重的交叉熵函数最小化损失;
[0069]
采用以上步骤建立cnn

gru网络模型。
[0070]
在步骤一中,构建卷积神经网络,提取游戏状态特征,生成特征矩阵,其计算公式如下:
[0071]
x
t
=σ
cnn
(w
cnn

x
t
b
cnn
);
[0072]
x
t
表示当前状态和动作特征,w
cnn
表示过滤器的权重,b
cnn
表示偏差参数,σ
cnn
是激活函数;
[0073]
在步骤二中,使用门控循环网络(gru)提取时间序列的依赖特征:
[0074]
gru重置门:
[0075]
r
t
=σ(w
r
x
t
u
r
h
t
‑1 b
r
)
[0076]
gru更新门:
[0077]
z
t
=σ(w
z
x
t
u
z
h
t
‑1 b
z
)
[0078]
σ为sigmoid函数,w、u和b为权重和偏置项,x
t
即为卷积神经网络的输出,h
t
‑1为上一个状态所传递下来的信息;更新门和重置门确定历史节点信息对当前节点信息的贡献程度;
[0079]
上一状态信息经过重置后,通过权重和偏置项与当前输入进行聚合更新以形成当前时刻状态:
[0080][0081]
为当前时刻t的候选隐藏状态;w、u和b为权重和偏置项,x
t
为卷积神经网络的输出,r
t
为重置门,h
t
‑1为上一状态的信息;tanh激活函数将数据缩放至

1到1的范围内;
[0082][0083]
h
t
为当前隐藏状态信息,z
t
为更新门,h
t
‑1为上一个状态所传递下来的信息。
[0084]
在步骤三中,使用dropout对隐藏层节点进行随机丢弃,从而防止过拟合时,采用以下步骤:
[0085]
使用dropout防止过拟合:
[0086][0087]
[0088]
bernoulli函数是随机生成一个概率的向量,也就是以一个概率为p的伯努利分布随机地生成与节点数相同的0、1值。
[0089]
在步骤四中,将经过dropout层之后的gru网络的输出映射到线性空间时,采用以下公式:
[0090][0091]
f1为多层感知机(mlp)。
[0092]
在步骤五中,将多层感知机的输出作为softmax函数的输入来进行标签预测时,采用以下方式:
[0093][0094]
w为权重,b为偏置项,h
v
为多层感知机的输出,为预测的标签;
[0095]
在步骤六中,在使用带权重的交叉熵函数最小化损失时;
[0096]
计算公式如下:
[0097][0098][0099]
w
j
是权重;m为类别的数量,y
ij
为指示变量,取值为0或1,如果样本i的真实类别与j相同,此时y
ij
取值为1,否则取值为0;为样本i属于类别j的预测概率;是第j类样本类型的样本数量;其中w
j
的计算公式如下:
[0100][0101]
w
j
为第j类类别的权重,n
classes
是数据集中所有类型种类数量,n
samples
是数据集中的样本总数。
[0102]
与现有技术相比,本发明具有如下技术效果:
[0103]
1)与传统的机器学习方法相比,如:《空中决战决策行为树建模与仿真》论文中使用的行为树模型,在大数据量的问题中,深度学习的方法具有更好的学习和泛化能力。传统的硬编码bot非常依赖开发者的领域知识和经验,不够智能,很难取得很好的预测效果;
[0104]
2)人工设计特征需要花费较长的时间,且不能够在多种情况下通用,相比于人工设计特征,cnn模型可以自动提取特征;
[0105]
3)gru相比简单的循环神经网络,更易于学习长期的依赖,能够很好的解决序列相关的预测问题。通过多层的非线性转换,gru能够很好的适应复杂任务的建模。通过足够的样本数据的训练,该模型能挖掘出混乱数据中的大量的有价值的信息。在智能体发出指令时,需要参考历史状态动作信息,有些指令影响持续时间较长有些指令影响持续时间较短,而gru能够很好地应对长短期依赖问题,从而取得很好的预测效果;
[0106]
4)本发明对cnn

gru网络模型进行了改进,首先体现在神经网络输入特征的处理,
对构建的特征进行归一化处理然后进行了pca的主成分分析,降低了数据的维度。然后我们改进了损失函数,使该模型能够取得更好的性能,提高了模型的鲁棒性,本发明提出了适合实时策略游戏中稀疏指令预测的深度学习架构。
附图说明
[0107]
下面结合附图和实施例对本发明作进一步说明:
[0108]
图1为本发明所使用的n2n的gru网络架构图。
[0109]
图2是本发明所提出的cnn

gru网络模型架构图。
具体实施方式
[0110]
一种基于cnn

gru模型的实时策略游戏中稀疏指令的预测方法,它包括以下步骤:
[0111]
步骤1:收集游戏平台产生的对战数据;
[0112]
步骤2:对收集到的对战数据进行清理,剔除冗余数据;
[0113]
步骤3:提取出数据中己方、敌方信息相关特征因素,并对获取到的数据进行数据处理;
[0114]
步骤4:进行cnn

gru预测模型的构建,并采用所构建的预测模型模型进行指令类型的预测;
[0115]
步骤5:将数据分成多份进行交叉验证,从而选择出更好的超参数;
[0116]
步骤6:将训练好的智能体放入仿真平台进行对战查看效果;
[0117]
采用上述步骤,进行ai的训练。
[0118]
本发明重点研究在实时策略游戏中指令稀疏的条件下如何预测指令类型的问题,本专利把没有指令的时间点指定为一个空白的指令,即哑元指令,此时在实时策略游戏中会存在指令不平衡的现象,也就是大部分时间为空白指令只有少数情况下会出现有效指令。
[0119]
在步骤1中,所述对战数据平台为通过人工编写的硬编码策略和游戏平台内置的机器人进行对战产生的,这里产生的对战数据是以json文件的形式保存的,其中每一个json文件包含了一场完整的推演信息。
[0120]
在步骤2中,具体包括以下步骤:
[0121]
1)将从步骤1获取到的对战数据中进行信息的提取,同时提取标签信息,其中标签分为两大类一类是空白指令,一类是有效指令;
[0122]
2)删除不规范的数据。
[0123]
在步骤3中,对获取到的数据进行min

max归一化,然后采用pca主成分分析法对输入的特征向量进行降维处理;具体的,包括以下步骤:
[0124]
步骤1)构建每一个时间步的输入,所有的时间步组成一个完整的时间序列也就是一场游戏对战的过程;
[0125]
步骤2)把按时间顺序提取到的信息进行补齐操作,由于在每一个时间点提取到的己方单位的数量和敌方单位的数量可能是不相同的,所以每一个时间点的向量维度可能不相同。使用手工的方式将每一个时间点的向量维度补成相同的长度,每一个时间点的向量大致由以下几类组成:1)游戏时间,2)己方单位的信息,3)已获得的敌方单位的信息;
[0126]
步骤3)对于上述数值型的特征为了消除不同特征之间的量纲影响,需要对数据进行归一化处理,归一化的公式如下:
[0127][0128]
x'
ij
为x
ij
归一化之后的数值,x
ij
是第i列第j维特征,x
i
是第i列特征,min(x
i
)是第i列的所有维度中的数值的最小值,max(x
i
)是第i列所有维度中的数值最大值;
[0129]
步骤4)对上述数据使用pca主成分分析法对数据进行降维处理,使用降维处理主要是加快计算速度,在计算资源不足的情况下,可以人为删除不必要的特征之后再进行降维操作。
[0130]
在步骤4中,具体包括以下步骤:
[0131]
步骤4.1),从游戏对战数据中提取出胜利一方的推演数据,用于训练胜利的一方的cnn

gru神经网络模型,如本次推演红方胜利则本场数据只用来训练红方的ai,而不用来训练蓝方的ai;
[0132]
步骤4.2),构建卷积神经网络,对当前态势信息进行卷积操作,提取游戏状态特征,生成特征矩阵,使用多个卷积核,不同的卷积核关注不同的特征,比如卷积核a关注位置坐标,卷积核b关注剩余的血量等,其特征提取公式如下:
[0133]
x
t
=σ
cnn
(w
cnn

x
t
b
cnn
)
[0134]
x
t
表示当前状态信息,即当前各种单位信息包括己方单位以及已经识别到的敌方单位的信息,w
cnn
表示过滤器的权重,b
cnn
表示偏差参数,σ
cnn
是激活函数;
[0135]
步骤4.3),使用门控循环单元(gru)对提取时间依赖特征,具体操作按照下式计算:
[0136]
gru重置门:
[0137]
r
t
=σ(w
r
x
t
u
r
h
t
‑1 b
r
)
[0138]
gru更新门:
[0139]
z
t
=σ(w
z
x
t
u
z
h
t
‑1 b
z
)
[0140]
σ为sigmoid函数,w、u和b为权重和偏置项,x
t
即为卷积神经网络的输出,代表了当前的态势信息,h
t
‑1为上一个状态所传递下来的信息,其中包括历史状态信息以及动作信息,在本发明中一个动作就是下达了一条作战指令;更新门和重置门确定历史节点信息对当前节点信息的贡献程度,即判断过去发出的指令以及过去作战单位的移动位置对当前时刻发出指令有多大程度的影响;
[0141]
上一状态信息经过重置门后,通过权重和偏置项与当前输入进行聚合更新以形成当前时刻状态:
[0142][0143]
为当前时间点t的候选隐藏状态;w、u和b为权重和偏置项,x
t
为卷积神经网络的输出,r
t
为重置门,h
t
‑1为上一时刻状态的信息;tanh激活函数将数据缩放至

1到1的范围内;
[0144]
最后计算出当前时刻的隐藏状态:
[0145]
[0146]
h
t
为当前隐藏状态信息,当前时刻的隐藏状态信息h
t
综合考虑了历史信息以及当前读取到的状态信息,h
t
‑1为上一个状态所传递下来的隐藏状态信息,它包含了历史信息,这些历史信息由作战单位的信息包括作战单位的移动信息、攻击信息等,以及过去已经发出的指令信息组成,在这里还可以设置考虑之前多少个时间步的信息,如果认为当前时间步下达的指令无需考虑很长的时间步,可以使用截断操作,以加快计算速度。比如只考虑前10步或者前20步的状态和动作信息,即认为,当前指令只和前10步或20步有关系,而与更远的时间步是无关的;
[0147]
步骤4.4),使用dropout技术对隐藏层节点进行随机丢弃,防止过拟合,其计算公式如下:
[0148][0149][0150]
bernoulli函数是随机生成一个概率的向量,也就是以一个概率为p的伯努利分布随机地生成与节点数相同的0、1值;
[0151]
步骤4.5),将经过dropout层之后的gru网络的输出映射到线性空间,采用以下公式进行计算:
[0152][0153]
f1为多层感知机(mlp)
[0154]
步骤4.6),将多层感知机的输出作为softmax函数的输入来进行指令类型的预测;
[0155][0156]
w为权重,b为偏置项,h
v
为多层感知机的输出,为预测的标签,即为当前时刻预测的指令类型,确定了当前时间点应该发出一个什么类型的指令;
[0157]
步骤4.7),使用带权重的交叉熵函数最小化损失;
[0158]
计算公式如下:
[0159][0160][0161]
w
j
是权重;m为类别的数量,y
ij
为指示变量,取值为0或1,如果样本i的真实类别与j相同,此时y
ij
取值为1,否则取值为0;为样本i属于类j的预测概率;是第j类样本类型的样本数量;其中w
j
的计算公式如下:
[0162][0163]
w
j
为第j类类别的权重,n
classes
是数据集中所有类型种类数量,n
samples
是数据集中的样本总数,在这里由于我们引入了哑元指令,即空指令,此时空指令的数量要远多于其他
指令类型数量的总和,但是经过权重的计算此时空指令的权重比较小,此时神经网络模型可以更加精准的预测当前的指令类型,而不会倾向于将所有的指令类型都预测为空指令。
[0164]
如果训练的数据集较大,则可以采用小批量的随机梯度下降法进行模型的训练,以节省计算资源,同时损失函数的下降会更加稳定
[0165]
它还包括步骤6:对网络模型进行综合评价。
[0166]
为了评价模型的性能,采用accuracy、precision、recall、f1等指标进行综合评价,下面给出各种评价指标的具体计算公式。
[0167]
表1混淆矩阵
[0168][0169]
表1中tp表示实则为正类且预测为正类的样本数目,fn表示实则为正类且预测为负类的样本数目,tn表示实则为负类且预测为负类的样本数目,fp表示实则为负类且预测为正类的样本数目。
[0170][0171][0172][0173][0174]
本发明还包括一种cnn

gru网络模型的构建方法,它包括以下步骤:
[0175]
步骤一:构建卷积神经网络,提取游戏状态特征,生成特征矩阵,这里卷积神经网络使用多个卷积核,不同的卷积核关注不同的特征;
[0176]
步骤二:使用门控循环网络(gru)提取时间序列的依赖特征;
[0177]
步骤三:使用dropout技术防止过拟合现象;
[0178]
步骤四:使用多层感知器将门控循环神经网络的输出映射到线性空间;
[0179]
步骤五:使用softmax函数进行标签的预测;
[0180]
步骤六:使用带权重的交叉熵函数最小化损失;
[0181]
采用以上步骤建立cnn

gru网络模型。
[0182]
在步骤一中,构建卷积神经网络,提取游戏状态特征,生成特征矩阵,其计算公式如下:
[0183]
x
t
=σ
cnn
(w
cnn

x
t
b
cnn
);
[0184]
x
t
表示当前状态和动作特征,w
cnn
表示过滤器的权重,b
cnn
表示偏差参数,σ
cnn
是激活函数;
[0185]
在步骤二中,使用门控循环网络(gru)提取时间序列的依赖特征:
[0186]
gru重置门:
[0187]
r
t
=σ(w
r
x
t
u
r
h
t
‑1 b
r
)
[0188]
gru更新门:
[0189]
z
t
=σ(w
z
x
t
u
z
h
t
‑1 b
z
)
[0190]
σ为sigmoid函数,w、u和b为权重和偏置项,x
t
即为卷积神经网络的输出,h
t
‑1为上一个状态所传递下来的信息;更新门和重置门确定历史节点信息对当前节点信息的贡献程度;
[0191]
上一状态信息经过重置后,通过权重和偏置项与当前输入进行聚合更新以形成当前时刻状态:
[0192][0193]
为当前时刻t的候选隐藏状态;w、u和b为权重和偏置项,x
t
为卷积神经网络的输出,r
t
为重置门,h
t
‑1为上一状态的信息;tanh激活函数将数据缩放至

1到1的范围内;
[0194][0195]
h
t
为当前隐藏状态信息,z
t
为更新门,h
t
‑1为上一个状态所传递下来的信息。
[0196]
在步骤三中,使用dropout对隐藏层节点进行随机丢弃,从而防止过拟合时,采用以下步骤:
[0197]
使用dropout防止过拟合:
[0198][0199][0200]
bernoulli函数是随机生成一个概率的向量,也就是以一个概率为p的伯努利分布随机地生成与节点数相同的0、1值。
[0201]
在步骤四中,将经过dropout层之后的gru网络的输出映射到线性空间时,采用以下公式:
[0202][0203]
f1为多层感知机(mlp)。
[0204]
在步骤五中,将多层感知机的输出作为softmax函数的输入来进行标签预测时,采用以下方式:
[0205][0206]
w为权重,b为偏置项,h
v
为多层感知机的输出,为预测的标签;
[0207]
在步骤六中,在使用带权重的交叉熵函数最小化损失时;
[0208]
计算公式如下:
[0209]
[0210][0211]
w
j
是权重;m为类别的数量,y
ij
为指示变量,取值为0或1,如果样本i的真实类别与j相同,此时y
ij
取值为1,否则取值为0;为样本i属于类别j的预测概率;是第j类样本类型的样本数量;其中w
j
的计算公式如下:
[0212][0213]
w
j
为第j类类别的权重,n
classes
是数据集中所有类型种类数量,n
samples
是数据集中的样本总数。
[0214]
实施例:
[0215]
一种基于cnn

gru模型的实时策略游戏中稀疏指令的预测方法,包括以下步骤:收集数据、样本数据整理与预处理、构建时序输入、网络模型的预测和网络模型的评价。
[0216]
步骤1:为了训练深度学习模型首先需要运行游戏平台产生大量的对战数据,这些对战数据可以是通过人工编写的硬编码策略和游戏平台内置的机器人进行对战产生的。
[0217]
步骤2:对收集到的对战数据进行整理,由于这些数据可能会存在冗余,通过分析数据,可以将冗余数据删除。另外采用在游戏对战中胜利的一方的数据,来训练胜利的一方的网络模型,比如在红蓝双方对战中,当前场次红方胜利,我们用当前场次的对战数据去训练红方的模型,而不使用当前数据去训练蓝方模型。
[0218]
红蓝双方的各自拥有的兵力如表2表3所示:
[0219]
表2红方兵力
[0220][0221]
表3蓝方兵力
[0222][0223]
步骤3:提取出数据中己方信息、敌方信息等相关特征因素,并对获取到的数据进行min

max归一化,然后采用pca主成分分析法对输入的特征向量进行降维处理。
[0224]
以己方是红方为例,己方单位包括侦察机、轰炸机等,其特征包括坐标,剩余油量,剩余弹药等。
[0225]
步骤4:构建模型进行预测
[0226]
cnn

gru模型由六部分组成:第一部分为输入层,输入观测的状态和动作信息;第二部分为归一化操作;第三部分为pca降维处理;第四部分为cnn网络,用于提取状态动作特征;第五部分为gru网络用于提取历史信息;第六部分为全连接层用于指令的预测。
[0227]
本发明使用了cnn

gru模型架构,其网络架构如图2所示。
[0228]
cnn网络模型的特征提取公式如下:
[0229]
x
t
=σ
cnn
(w
cnn

x
t
b
cnn
)
[0230]
x
t
表示当前的状态和动作特征,w
cnn
表示过滤器的权重,b
cnn
表示偏差参数,σ
cnn
是激活函数。
[0231]
gru网络模型的计算公式如下:
[0232]
r
t
=σ(w
r
x
t
u
r
h
t
‑1 b
r
)
[0233]
z
t
=σ(w
z
x
t
u
z
h
t
‑1 b
z
)
[0234][0235][0236]
r
t
为重置门,z
t
为更新门,σ为激活函数,w、u为权重b为偏置项,x
t
即为cnn的输出,h
t
‑1为上一个状态所传递下来的历史动作状态信息,是候选隐藏状态,h
t
是当前时刻的隐藏状态。
[0237]
本问题是给定一个输入序列x1,x2,...,x
t
,需要学习一个模型能够生成真实结果的预测值这里y
t
表示的是第t个时间点的指令类型。对于本发明要解决的问题(基于时序的指令选择问题),可以有很多种gru模型的构造方式,本文选取最合适本问题的一种方式n2n的网络模型,如图1所示。n2n的网络模型在每一个时间点都可以得到一个预测值然后通过改的进损失函数最小化损失。
[0238][0239][0240][0241]
在本实验中classes为15种指令,包括空白指令和其他指令,如攻击和返航等指令,w
j
为第j个类别的权重。在本文中j的取值为空白指令和其他指令,n
samples
是对战数据中的样本的数量,是第j类指令的样本数量。
[0242]
为了防止模型的过拟合,本发明在cnn

gru网络模型中采用了dropout技术。模型的过拟合会导致模型在训练集上有很好的表现效果,但是在测试集上表现会很差,使用dropout技术可以缓解该问题。
[0243]
综上所述模型的训练过程如下表所示
[0244]
表4模型的训练流程
[0245][0246]
步骤5:
[0247]
为了评价模型的好坏,以及超参数的设置是否合理,需要选取适合本发明的性能评价指标,然后采用交叉验证的方法进行对比。本模型需要考虑的性能指标分别为accuracy、precision、recall、f1,在数据不平衡问题中f1是很重要的评价指标。
[0248]
步骤6:
[0249]
将训练好的ai嵌入到仿真平台中进行对战。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献